diff options
author | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-06-14 17:46:07 +0000 |
---|---|---|
committer | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-06-14 17:46:07 +0000 |
commit | 079813e2da59f35e2744af7a785d01d9f490e280 (patch) | |
tree | 324225786afe45649c38faa629dc8f021737cee9 /samplecode/TransitionView.cpp | |
parent | 07a052484f684056d87eb13229d80011e9985e95 (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.cpp | 6 |
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")) { |