Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1748)

Unified Diff: src/utils/debugger/SkDebugCanvas.cpp

Issue 821663003: Change DebugCanvas API to not encourage memory leaks (Closed) Base URL: https://skia.googlesource.com/skia.git@debugger-raster-black-bg
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/utils/debugger/SkDebugCanvas.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/utils/debugger/SkDebugCanvas.cpp
diff --git a/src/utils/debugger/SkDebugCanvas.cpp b/src/utils/debugger/SkDebugCanvas.cpp
index f2f92b8492bff3de5ebd9c3cb1e2ae538fa947a8..7a1c3b3a4b5306eceda4a8e63d081e19fc5648ad 100644
--- a/src/utils/debugger/SkDebugCanvas.cpp
+++ b/src/utils/debugger/SkDebugCanvas.cpp
@@ -388,25 +388,24 @@ SkTDArray <SkDrawCommand*>& SkDebugCanvas::getDrawCommands() {
return fCommandVector;
}
-// TODO(chudy): Free command string memory.
-SkTArray<SkString>* SkDebugCanvas::getDrawCommandsAsStrings() const {
- SkTArray<SkString>* commandString = new SkTArray<SkString>(fCommandVector.count());
+void SkDebugCanvas::getDrawCommandsAsStrings(SkTArray<SkString>* outCommands) const {
+ outCommands->resize_back(fCommandVector.count());
if (!fCommandVector.isEmpty()) {
for (int i = 0; i < fCommandVector.count(); i ++) {
- commandString->push_back() = fCommandVector[i]->toString();
+ (*outCommands)[i] = fCommandVector[i]->toString();
}
}
robertphillips 2014/12/22 15:25:36 else { outCommands->reset(); } ??
Kimmo Kinnunen 2014/12/29 07:23:13 it tried to do that with resize_back(count), in ca
- return commandString;
}
-SkTDArray<size_t>* SkDebugCanvas::getDrawCommandOffsets() const {
- SkTDArray<size_t>* commandOffsets = new SkTDArray<size_t>;
+void SkDebugCanvas::getDrawCommandOffsets(SkTDArray<size_t>* outCommandOffsets) const {
if (!fCommandVector.isEmpty()) {
+ outCommandOffsets->setCount(fCommandVector.count());
for (int i = 0; i < fCommandVector.count(); i ++) {
- *commandOffsets->push() = fCommandVector[i]->offset();
+ (*outCommandOffsets)[i] = fCommandVector[i]->offset();
}
+ } else {
+ outCommandOffsets->reset();
}
- return commandOffsets;
}
void SkDebugCanvas::overrideTexFiltering(bool overrideTexFiltering, SkPaint::FilterLevel level) {
« no previous file with comments | « src/utils/debugger/SkDebugCanvas.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698