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@12062 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
908f1270c7
commit
3843f3fc89
@ -141,7 +141,9 @@ static GrTexture* sk_gr_create_bitmap_texture(GrContext* ctx,
|
||||
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 @@ static GrTexture* sk_gr_create_bitmap_texture(GrContext* ctx,
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user