X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fthird_party%2Fskia%2Fsrc%2Fimage%2FSkSurface.cpp;h=edc6ef5fa0e6dd225a0b22b453605f3587c52789;hb=004985e17e624662a4c85c76a7654039dc83f028;hp=ecb80427576de2ae2b99bf8235662d8820f65315;hpb=2f108dbacb161091e42a3479f4e171339b7e7623;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/third_party/skia/src/image/SkSurface.cpp b/src/third_party/skia/src/image/SkSurface.cpp index ecb8042..edc6ef5 100644 --- a/src/third_party/skia/src/image/SkSurface.cpp +++ b/src/third_party/skia/src/image/SkSurface.cpp @@ -43,11 +43,7 @@ void SkSurface_Base::onDraw(SkCanvas* canvas, SkScalar x, SkScalar y, void SkSurface_Base::aboutToDraw(ContentChangeMode mode) { this->dirtyGenerationID(); - if (NULL != fCachedCanvas) { - SkASSERT(fCachedCanvas->getSurfaceBase() == this || \ - NULL == fCachedCanvas->getSurfaceBase()); - fCachedCanvas->setSurfaceBase(NULL); - } + SkASSERT(!fCachedCanvas || fCachedCanvas->getSurfaceBase() == this); if (NULL != fCachedImage) { // the surface may need to fork its backend, if its sharing it with @@ -61,12 +57,13 @@ void SkSurface_Base::aboutToDraw(ContentChangeMode mode) { // that the next request will get our new contents. fCachedImage->unref(); fCachedImage = NULL; + } else if (kDiscard_ContentChangeMode == mode) { + this->onDiscard(); } } uint32_t SkSurface_Base::newGenerationID() { - this->installIntoCanvasForDirtyNotification(); - + SkASSERT(!fCachedCanvas || fCachedCanvas->getSurfaceBase() == this); static int32_t gID; return sk_atomic_inc(&gID) + 1; }