Index: debugger/QT/SkDebuggerGUI.cpp |
diff --git a/debugger/QT/SkDebuggerGUI.cpp b/debugger/QT/SkDebuggerGUI.cpp |
index d444152eabe9007d3849a0249422d53df886accb..e8701a8ddf2b6edde27ab65ac60f19a1731ffa1a 100644 |
--- a/debugger/QT/SkDebuggerGUI.cpp |
+++ b/debugger/QT/SkDebuggerGUI.cpp |
@@ -147,10 +147,10 @@ void SkDebuggerGUI::showDeletes() { |
// offsets to individual commands. |
class SkTimedPicturePlayback : public SkPicturePlayback { |
public: |
- SkTimedPicturePlayback(SkStream* stream, const SkPictInfo& info, |
+ SkTimedPicturePlayback(SkStream* stream, const SkPictInfo& info, bool* isValid, |
SkPicture::InstallPixelRefProc proc, |
const SkTDArray<bool>& deletedCommands) |
- : INHERITED(stream, info, proc) |
+ : INHERITED(stream, info, isValid, proc) |
, fSkipCommands(deletedCommands) |
, fTot(0.0) |
, fCurCommand(0) { |
@@ -249,8 +249,13 @@ public: |
SkTimedPicturePlayback* playback; |
// Check to see if there is a playback to recreate. |
if (stream->readBool()) { |
+ bool isValid = false; |
playback = SkNEW_ARGS(SkTimedPicturePlayback, |
- (stream, info, proc, deletedCommands)); |
+ (stream, info, &isValid, proc, deletedCommands)); |
+ if (!isValid) { |
+ SkDELETE(playback); |
+ return NULL; |
+ } |
} else { |
playback = NULL; |
} |