aboutsummaryrefslogtreecommitdiffhomepage
path: root/samplecode/TransitionView.cpp
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-06-14 17:46:07 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-06-14 17:46:07 +0000
commit079813e2da59f35e2744af7a785d01d9f490e280 (patch)
tree324225786afe45649c38faa629dc8f021737cee9 /samplecode/TransitionView.cpp
parent07a052484f684056d87eb13229d80011e9985e95 (diff)
speculative fix in TransitionView. don't validate after detachFromParent (we may have been deleted)
git-svn-id: http://skia.googlecode.com/svn/trunk@9619 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'samplecode/TransitionView.cpp')
-rw-r--r--samplecode/TransitionView.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/samplecode/TransitionView.cpp b/samplecode/TransitionView.cpp
index 1caff13c9c..e4fa38e974 100644
--- a/samplecode/TransitionView.cpp
+++ b/samplecode/TransitionView.cpp
@@ -77,12 +77,18 @@ protected:
}
virtual bool onEvent(const SkEvent& evt) {
if (evt.isType(gReplaceTransitionEvt)) {
+ SkView* prev = fPrev;
+ prev->ref();
+
fPrev->detachFromParent();
fPrev = (SkView*)SkEventSink::FindSink(evt.getFast32());
(void)SampleView::SetUsePipe(fPrev, SkOSMenu::kOffState);
//attach the new fPrev and call unref to balance the ref in onDraw
this->attachChildToBack(fPrev)->unref();
this->inval(NULL);
+
+ SkASSERT(1 == prev->getRefCnt());
+ prev->unref();
return true;
}
if (evt.isType("transition-done")) {