Partial fix for Skia issue 1769: GenerateGMs crashing (out of memory)

GenerateGMs was crashing because we were adding genID listeners for
textures even when creation failed -- in this case the key generated
is not valid, so when it comes time to purge it, it triggers an
assert and then an apparent crash. The solution is to not add
a genID listener in this case.

This doesn't solve the problem of running out of memory, it just prevents it
from causing a crash in Debug builds.

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

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/55023005

git-svn-id: http://skia.googlecode.com/svn/trunk/src@12062 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gpu/SkGr.cpp b/gpu/SkGr.cpp
index 18c54ef..c7ae0c8 100644
--- a/gpu/SkGr.cpp
+++ b/gpu/SkGr.cpp
@@ -141,7 +141,9 @@
                 GrResourceKey key;
                 GrTexture* result = ctx->createTexture(params, desc, cacheID,
                                                        storage.get(), bitmap->width(), &key);
-                add_genID_listener(key, origBitmap.pixelRef());
+                if (NULL != result) {
+                    add_genID_listener(key, origBitmap.pixelRef());
+                }
                 return result;
             } else {
                 GrTexture* result = ctx->lockAndRefScratchTexture(desc,
@@ -171,7 +173,9 @@
         GrResourceKey key;
         GrTexture* result = ctx->createTexture(params, desc, cacheID,
                                                bitmap->getPixels(), bitmap->rowBytes(), &key);
-        add_genID_listener(key, origBitmap.pixelRef());
+        if (NULL != result) {
+            add_genID_listener(key, origBitmap.pixelRef());
+        }
         return result;
    } else {
         // This texture is unlikely to be used again (in its present form) so