From 2efdae710d0cd60daa58bb178c715b6251d7b3c9 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Tue, 19 Dec 2023 11:37:01 +0900 Subject: [PATCH] renderer: minor optimization. reduce the binary size. --- src/renderer/tvgPicture.h | 12 +++++++----- src/renderer/tvgScene.h | 7 +++---- src/renderer/tvgShape.h | 6 +++--- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/renderer/tvgPicture.h b/src/renderer/tvgPicture.h index fe1a3129..f4cd49f7 100644 --- a/src/renderer/tvgPicture.h +++ b/src/renderer/tvgPicture.h @@ -196,13 +196,15 @@ struct Picture::Impl { load(); - auto ret = Picture::gen(); + auto ret = Picture::gen().release(); + auto dup = ret->pImpl; - auto dup = ret.get()->pImpl; if (paint) dup->paint = paint->duplicate(); - dup->loader = loader; - ++dup->loader->sharing; + if (loader) { + dup->loader = loader; + ++dup->loader->sharing; + } if (surface) { dup->surface = new Surface; @@ -219,7 +221,7 @@ struct Picture::Impl memcpy(dup->rm.triangles, rm.triangles, sizeof(Polygon) * rm.triangleCnt); } - return ret.release(); + return ret; } Iterator* iterator() diff --git a/src/renderer/tvgScene.h b/src/renderer/tvgScene.h index 518571e6..0cfe4cde 100644 --- a/src/renderer/tvgScene.h +++ b/src/renderer/tvgScene.h @@ -212,9 +212,8 @@ struct Scene::Impl Paint* duplicate() { - auto ret = Scene::gen(); - - auto dup = ret.get()->pImpl; + auto ret = Scene::gen().release(); + auto dup = ret->pImpl; for (auto paint : paints) { auto cdup = paint->duplicate(); @@ -222,7 +221,7 @@ struct Scene::Impl dup->paints.push_back(cdup); } - return ret.release(); + return ret; } void clear(bool free) diff --git a/src/renderer/tvgShape.h b/src/renderer/tvgShape.h index 982152e4..af8dc167 100644 --- a/src/renderer/tvgShape.h +++ b/src/renderer/tvgShape.h @@ -338,9 +338,9 @@ struct Shape::Impl Paint* duplicate() { - auto ret = Shape::gen(); + auto ret = Shape::gen().release(); + auto dup = ret->pImpl; - auto dup = ret.get()->pImpl; dup->rs.rule = rs.rule; //Color @@ -376,7 +376,7 @@ struct Shape::Impl dup->flag |= RenderUpdateFlag::Gradient; } - return ret.release(); + return ret; } Iterator* iterator()