check texture is not NULL to aovid segmentation fault. If the texture created by GrLockAndRefCachedBitmapTexture() is NULL, ColorTableEffect::Create will cause segmentation fault by GrAssert in src/gpu/GrTextureAccess.cpp. The simple patch checked texture to avoid segment fault, and returned a NULL effect to the caller. The caller will handle NULL effect, for example, it will set default effect.

R=bsalomon@google.com, robertphillips@google.com

Author: yunchao.he@intel.com

Review URL: https://chromiumcodereview.appspot.com/15824003

git-svn-id: http://skia.googlecode.com/svn/trunk@9287 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/effects/SkTableColorFilter.cpp b/src/effects/SkTableColorFilter.cpp
index 2c452ff..cbcc6bc 100644
--- a/src/effects/SkTableColorFilter.cpp
+++ b/src/effects/SkTableColorFilter.cpp
@@ -386,15 +386,18 @@
 
 GrEffectRef* SkTable_ColorFilter::asNewEffect(GrContext* context) const {
     SkBitmap bitmap;
+    GrEffectRef* effect = NULL;
     this->asComponentTable(&bitmap);
     // passing NULL because this effect does no tiling or filtering.
     GrTexture* texture = GrLockAndRefCachedBitmapTexture(context, bitmap, NULL);
-    GrEffectRef* effect = ColorTableEffect::Create(texture, fFlags);
+    if (NULL != texture) {
+        effect = ColorTableEffect::Create(texture, fFlags);
 
-    // Unlock immediately, this is not great, but we don't have a way of
-    // knowing when else to unlock it currently. TODO: Remove this when
-    // unref becomes the unlock replacement for all types of textures.
-    GrUnlockAndUnrefCachedBitmapTexture(texture);
+        // Unlock immediately, this is not great, but we don't have a way of
+        // knowing when else to unlock it currently. TODO: Remove this when
+        // unref becomes the unlock replacement for all types of textures.
+        GrUnlockAndUnrefCachedBitmapTexture(texture);
+    }
     return effect;
 }