diff options
author | Nicolas Roard <nicolasroard@google.com> | 2011-03-19 19:01:15 -0700 |
---|---|---|
committer | Nicolas Roard <nicolasroard@google.com> | 2011-03-19 19:24:29 -0700 |
commit | e1c3e59945c9789e93c417e064a9abed1057ce42 (patch) | |
tree | 032b92a04cbed89ac7f847ea61d855956a8eb746 | |
parent | a5ec3c20d40b576e2f6878c615cc7c63eebe3a3f (diff) | |
download | external_webkit-e1c3e59945c9789e93c417e064a9abed1057ce42.zip external_webkit-e1c3e59945c9789e93c417e064a9abed1057ce42.tar.gz external_webkit-e1c3e59945c9789e93c417e064a9abed1057ce42.tar.bz2 |
Fix native crash
Don't save the extras in the picture when drawing.
bug:4126884 bug:4132721
Change-Id: I52c46a33f847e64c1f8245a0bb84445a948d72a4
-rw-r--r-- | WebCore/platform/graphics/android/LayerAndroid.cpp | 14 | ||||
-rw-r--r-- | WebCore/platform/graphics/android/LayerAndroid.h | 1 |
2 files changed, 10 insertions, 5 deletions
diff --git a/WebCore/platform/graphics/android/LayerAndroid.cpp b/WebCore/platform/graphics/android/LayerAndroid.cpp index 2df63a9..dba1ceb 100644 --- a/WebCore/platform/graphics/android/LayerAndroid.cpp +++ b/WebCore/platform/graphics/android/LayerAndroid.cpp @@ -1033,6 +1033,7 @@ void LayerAndroid::paintBitmapGL() contentDraw(nCanvas); picture.endRecording(); picture.draw(canvas); + extraDraw(canvas); m_atomicSync.lock(); texture->setTextureInfoFor(this); @@ -1048,6 +1049,14 @@ void LayerAndroid::paintBitmapGL() XLOG("LayerAndroid %d paintBitmapGL UPDATING DONE", uniqueId()); } +void LayerAndroid::extraDraw(SkCanvas* canvas) +{ + m_atomicSync.lock(); + if (m_extra) + canvas->drawPicture(*m_extra); + m_atomicSync.unlock(); +} + void LayerAndroid::contentDraw(SkCanvas* canvas) { if (m_contentsImage) { @@ -1058,11 +1067,6 @@ void LayerAndroid::contentDraw(SkCanvas* canvas) canvas->drawPicture(*m_recordingPicture); } - m_atomicSync.lock(); - if (m_extra) - canvas->drawPicture(*m_extra); - m_atomicSync.unlock(); - if (TilesManager::instance()->getShowVisualIndicator()) { float w = getSize().width(); float h = getSize().height(); diff --git a/WebCore/platform/graphics/android/LayerAndroid.h b/WebCore/platform/graphics/android/LayerAndroid.h index 98a0a15..0846930 100644 --- a/WebCore/platform/graphics/android/LayerAndroid.h +++ b/WebCore/platform/graphics/android/LayerAndroid.h @@ -243,6 +243,7 @@ public: void needsRepaint() { m_pictureUsed++; } unsigned int pictureUsed() { return m_pictureUsed; } void contentDraw(SkCanvas*); + void extraDraw(SkCanvas*); virtual bool isMedia() const { return false; } virtual bool isVideo() const { return false; } |