Index: dm/DM.cpp |
diff --git a/dm/DM.cpp b/dm/DM.cpp |
index 24808cf33ada4ff3de8b32a2331885381fd9d189..ae8d9b26545021e4cb22a9fb881c99fb7b875711 100644 |
--- a/dm/DM.cpp |
+++ b/dm/DM.cpp |
@@ -186,7 +186,7 @@ static void push_sink(const char* tag, Sink* s) { |
SkDynamicMemoryWStream stream; |
SkString log; |
Error err = sink->draw(noop, &bitmap, &stream, &log); |
- if (!err.isEmpty()) { |
+ if (err.isFatal()) { |
SkDebugf("Skipping %s: %s\n", tag, err.c_str()); |
return; |
} |
@@ -321,11 +321,18 @@ struct Task { |
SkDynamicMemoryWStream stream; |
Error err = task->sink->draw(*task->src, &bitmap, &stream, &log); |
if (!err.isEmpty()) { |
- fail(SkStringPrintf("%s %s %s: %s", |
- task->sink.tag, |
- task->src.tag, |
- name.c_str(), |
- err.c_str())); |
+ timer.end(); |
+ if (err.isFatal()) { |
+ fail(SkStringPrintf("%s %s %s: %s", |
+ task->sink.tag, |
+ task->src.tag, |
+ name.c_str(), |
+ err.c_str())); |
+ } else { |
+ name.appendf(" (skipped: %s)", err.c_str()); |
+ } |
+ done(timer.fWall, task->sink.tag, task->src.tag, name, log); |
+ return; |
} |
SkAutoTDelete<SkStreamAsset> data(stream.detachAsStream()); |