diff options
author | Heather Miller <hcm@google.com> | 2016-11-10 21:25:30 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2016-11-10 21:25:44 +0000 |
commit | b613c266df48cf45296ecc23d1bd7098c84bb7ba (patch) | |
tree | 50f7d84a4238918bf5869ee760ed78332b2db946 /tests | |
parent | fac8db2df8b5cf6fd62189315bad0726d8e51f6d (diff) |
Revert "Change SkCanvas to *not* inherit from SkRefCnt"
This reverts commit 824075071885b6b741c141cbe2134d8345d34589.
Reason for revert: Breaking WebView (chromium:663959)
Original change's description:
> Change SkCanvas to *not* inherit from SkRefCnt
>
> Definitely tricky for classes like SkNWayCanvas, where the caller (today)
> need not pay attention to ownership of the canvases it gave the NWay
> (after this CL, the caller *must* managed ownership)
>
> BUG=skia:
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4441
>
> DOCS_PREVIEW= https://skia.org/?cl=4441
>
> Change-Id: Ib1ac07a3cdf0686d78e7aaa4735d45cc90bea081
> Reviewed-on: https://skia-review.googlesource.com/4441
> Commit-Queue: Mike Reed <reed@google.com>
> Reviewed-by: Florin Malita <fmalita@chromium.org>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
>
TBR=djsollen@google.com,mtklein@google.com,halcanary@google.com,robertphillips@google.com,fmalita@chromium.org,fmalita@google.com,reed@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: I5e3b3e876b7d2c09833cf841801321033b6b968b
Reviewed-on: https://skia-review.googlesource.com/4687
Commit-Queue: Heather Miller <hcm@google.com>
Reviewed-by: Heather Miller <hcm@google.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/CanvasStateHelpers.cpp | 10 | ||||
-rw-r--r-- | tests/CanvasStateTest.cpp | 3 | ||||
-rw-r--r-- | tests/CanvasTest.cpp | 12 | ||||
-rw-r--r-- | tests/PipeTest.cpp | 2 | ||||
-rw-r--r-- | tests/SVGDeviceTest.cpp | 6 |
5 files changed, 19 insertions, 14 deletions
diff --git a/tests/CanvasStateHelpers.cpp b/tests/CanvasStateHelpers.cpp index 98b5d231be..801eaead49 100644 --- a/tests/CanvasStateHelpers.cpp +++ b/tests/CanvasStateHelpers.cpp @@ -27,11 +27,12 @@ void complex_layers_draw(SkCanvas* canvas, float left, float top, extern "C" bool complex_layers_draw_from_canvas_state(SkCanvasState* state, float left, float top, float right, float bottom, int32_t spacer) { - std::unique_ptr<SkCanvas> canvas = SkCanvasStateUtils::MakeFromCanvasState(state); + SkCanvas* canvas = SkCanvasStateUtils::CreateFromCanvasState(state); if (!canvas) { return false; } - complex_layers_draw(canvas.get(), left, top, right, bottom, spacer); + complex_layers_draw(canvas, left, top, right, bottom, spacer); + canvas->unref(); return true; } @@ -51,7 +52,7 @@ void complex_clips_draw(SkCanvas* canvas, int32_t left, int32_t top, extern "C" bool complex_clips_draw_from_canvas_state(SkCanvasState* state, int32_t left, int32_t top, int32_t right, int32_t bottom, int32_t clipOp, int32_t regionRects, int32_t* rectCoords) { - std::unique_ptr<SkCanvas> canvas = SkCanvasStateUtils::MakeFromCanvasState(state); + SkCanvas* canvas = SkCanvasStateUtils::CreateFromCanvasState(state); if (!canvas) { return false; } @@ -63,7 +64,8 @@ extern "C" bool complex_clips_draw_from_canvas_state(SkCanvasState* state, rectCoords += 4; } - complex_clips_draw(canvas.get(), left, top, right, bottom, clipOp, localRegion); + complex_clips_draw(canvas, left, top, right, bottom, clipOp, localRegion); + canvas->unref(); return true; } #endif // SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG diff --git a/tests/CanvasStateTest.cpp b/tests/CanvasStateTest.cpp index 2c7c5905ef..890e85d3b8 100644 --- a/tests/CanvasStateTest.cpp +++ b/tests/CanvasStateTest.cpp @@ -278,12 +278,13 @@ DEF_TEST(CanvasState_test_draw_filters, reporter) { SkCanvasState* state = SkCanvasStateUtils::CaptureCanvasState(&canvas); REPORTER_ASSERT(reporter, state); - std::unique_ptr<SkCanvas> tmpCanvas = SkCanvasStateUtils::MakeFromCanvasState(state); + SkCanvas* tmpCanvas = SkCanvasStateUtils::CreateFromCanvasState(state); REPORTER_ASSERT(reporter, tmpCanvas); REPORTER_ASSERT(reporter, canvas.getDrawFilter()); REPORTER_ASSERT(reporter, nullptr == tmpCanvas->getDrawFilter()); + tmpCanvas->unref(); SkCanvasStateUtils::ReleaseCanvasState(state); } diff --git a/tests/CanvasTest.cpp b/tests/CanvasTest.cpp index 3f418db4ae..c062e6c847 100644 --- a/tests/CanvasTest.cpp +++ b/tests/CanvasTest.cpp @@ -542,7 +542,7 @@ static void test_newraster(skiatest::Reporter* reporter) { SkPMColor* baseAddr = storage.get(); sk_bzero(baseAddr, size); - std::unique_ptr<SkCanvas> canvas = SkCanvas::MakeRasterDirect(info, baseAddr, minRowBytes); + SkCanvas* canvas = SkCanvas::NewRasterDirect(info, baseAddr, minRowBytes); REPORTER_ASSERT(reporter, canvas); SkPixmap pmap; @@ -556,23 +556,25 @@ static void test_newraster(skiatest::Reporter* reporter) { } addr = (const SkPMColor*)((const char*)addr + pmap.rowBytes()); } + delete canvas; // now try a deliberately bad info info = info.makeWH(-1, info.height()); - REPORTER_ASSERT(reporter, nullptr == SkCanvas::MakeRasterDirect(info, baseAddr, minRowBytes)); + REPORTER_ASSERT(reporter, nullptr == SkCanvas::NewRasterDirect(info, baseAddr, minRowBytes)); // too big info = info.makeWH(1 << 30, 1 << 30); - REPORTER_ASSERT(reporter, nullptr == SkCanvas::MakeRasterDirect(info, baseAddr, minRowBytes)); + REPORTER_ASSERT(reporter, nullptr == SkCanvas::NewRasterDirect(info, baseAddr, minRowBytes)); // not a valid pixel type info = SkImageInfo::Make(10, 10, kUnknown_SkColorType, info.alphaType()); - REPORTER_ASSERT(reporter, nullptr == SkCanvas::MakeRasterDirect(info, baseAddr, minRowBytes)); + REPORTER_ASSERT(reporter, nullptr == SkCanvas::NewRasterDirect(info, baseAddr, minRowBytes)); // We should succeed with a zero-sized valid info info = SkImageInfo::MakeN32Premul(0, 0); - canvas = SkCanvas::MakeRasterDirect(info, baseAddr, minRowBytes); + canvas = SkCanvas::NewRasterDirect(info, baseAddr, minRowBytes); REPORTER_ASSERT(reporter, canvas); + delete canvas; } DEF_TEST(Canvas, reporter) { diff --git a/tests/PipeTest.cpp b/tests/PipeTest.cpp index e5d2f09a99..3b89441f32 100644 --- a/tests/PipeTest.cpp +++ b/tests/PipeTest.cpp @@ -18,7 +18,7 @@ #include "SkPictureRecorder.h" static void drain(SkPipeDeserializer* deserial, SkDynamicMemoryWStream* stream) { - std::unique_ptr<SkCanvas> canvas = SkMakeNullCanvas(); + std::unique_ptr<SkCanvas> canvas(SkCreateNullCanvas()); sk_sp<SkData> data = stream->detachAsData(); deserial->playback(data->data(), data->size(), canvas.get()); } diff --git a/tests/SVGDeviceTest.cpp b/tests/SVGDeviceTest.cpp index 715dbc7c15..b010e57909 100644 --- a/tests/SVGDeviceTest.cpp +++ b/tests/SVGDeviceTest.cpp @@ -91,7 +91,7 @@ void test_whitespace_pos(skiatest::Reporter* reporter, { SkXMLParserWriter writer(dom.beginParsing()); - std::unique_ptr<SkCanvas> svgCanvas = SkSVGCanvas::Make(SkRect::MakeWH(100, 100), &writer); + sk_sp<SkCanvas> svgCanvas(SkSVGCanvas::Create(SkRect::MakeWH(100, 100), &writer)); svgCanvas->drawText(txt, len, offset.x(), offset.y(), paint); } check_text_node(reporter, dom, dom.finishParsing(), offset, 0, expected); @@ -103,7 +103,7 @@ void test_whitespace_pos(skiatest::Reporter* reporter, } SkXMLParserWriter writer(dom.beginParsing()); - std::unique_ptr<SkCanvas> svgCanvas = SkSVGCanvas::Make(SkRect::MakeWH(100, 100), &writer); + sk_sp<SkCanvas> svgCanvas(SkSVGCanvas::Create(SkRect::MakeWH(100, 100), &writer)); svgCanvas->drawPosTextH(txt, len, xpos, offset.y(), paint); } check_text_node(reporter, dom, dom.finishParsing(), offset, 1, expected); @@ -115,7 +115,7 @@ void test_whitespace_pos(skiatest::Reporter* reporter, } SkXMLParserWriter writer(dom.beginParsing()); - std::unique_ptr<SkCanvas> svgCanvas = SkSVGCanvas::Make(SkRect::MakeWH(100, 100), &writer); + sk_sp<SkCanvas> svgCanvas(SkSVGCanvas::Create(SkRect::MakeWH(100, 100), &writer)); svgCanvas->drawPosText(txt, len, pos, paint); } check_text_node(reporter, dom, dom.finishParsing(), offset, 2, expected); |