From 96e735f2d2bc786c1cd1006abaa9a0c0418cd410 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Wed, 23 Sep 2020 20:51:40 +0900 Subject: [PATCH] optimization: cut off file dependencies. we should avoid code insertion during file dependencies, such as #include "xxx.h" which has implementations. This could increase binary size, we can avoid it as possible. Current patch improves binary size like this: From: file(2059008) = text(120360) data(8096) bss(80) dec(128536) To : file(1921832) = text(118429) data(7872) bss(56) dec(126357) More additional patches will come in to optmize binary size. Change-Id: Iae826752bc80c161c075b5980a485fd27f42e896 --- src/lib/sw_engine/tvgSwCommon.h | 1 + src/lib/sw_engine/tvgSwFill.cpp | 2 ++ src/lib/sw_engine/tvgSwRaster.cpp | 1 + src/lib/sw_engine/tvgSwRenderer.cpp | 1 + src/lib/sw_engine/tvgSwRenderer.h | 3 +++ src/lib/sw_engine/tvgSwRle.cpp | 1 + src/lib/sw_engine/tvgSwShape.cpp | 2 ++ src/lib/sw_engine/tvgSwStroke.cpp | 2 ++ src/lib/tvgBezier.cpp | 5 +++-- src/lib/tvgBezier.h | 2 ++ src/lib/tvgCanvas.cpp | 1 - src/lib/tvgCanvasImpl.h | 1 + src/lib/tvgCommon.h | 15 --------------- src/lib/tvgFill.h | 1 + src/lib/tvgGlCanvas.cpp | 1 - src/lib/tvgInitializer.cpp | 1 + src/lib/tvgLinearGradient.cpp | 2 ++ src/lib/tvgLoader.h | 2 ++ src/lib/tvgLoaderMgr.cpp | 2 +- src/lib/tvgLoaderMgr.h | 2 ++ src/lib/tvgPaint.h | 4 +++- src/lib/tvgPictureImpl.h | 1 + src/lib/tvgRadialGradient.cpp | 1 + src/lib/tvgRender.cpp | 4 +++- src/lib/tvgRender.h | 2 ++ src/lib/tvgSceneImpl.h | 1 + src/lib/tvgShape.cpp | 1 - src/lib/tvgShapePath.h | 1 + src/lib/tvgSwCanvas.cpp | 1 - src/lib/tvgTaskScheduler.cpp | 3 ++- src/lib/tvgTaskScheduler.h | 1 + src/loaders/svg/tvgSimpleXmlParser.cpp | 4 ++++ src/loaders/svg/tvgSimpleXmlParser.h | 4 +--- src/loaders/svg/tvgSvgLoader.cpp | 6 +++++- src/loaders/svg/tvgSvgLoader.h | 2 +- src/loaders/svg/tvgSvgLoaderCommon.h | 1 - src/loaders/svg/tvgSvgPath.cpp | 3 ++- src/loaders/svg/tvgSvgPath.h | 3 ++- src/loaders/svg/tvgSvgSceneBuilder.cpp | 2 ++ src/loaders/svg/tvgSvgSceneBuilder.h | 1 - 40 files changed, 60 insertions(+), 34 deletions(-) diff --git a/src/lib/sw_engine/tvgSwCommon.h b/src/lib/sw_engine/tvgSwCommon.h index 37a40c5..f90f44b 100644 --- a/src/lib/sw_engine/tvgSwCommon.h +++ b/src/lib/sw_engine/tvgSwCommon.h @@ -23,6 +23,7 @@ #define _TVG_SW_COMMON_H_ #include "tvgCommon.h" +#include "tvgRender.h" #ifdef THORVG_AVX_VECTOR_SUPPORT #include diff --git a/src/lib/sw_engine/tvgSwFill.cpp b/src/lib/sw_engine/tvgSwFill.cpp index ecb3394..c421371 100644 --- a/src/lib/sw_engine/tvgSwFill.cpp +++ b/src/lib/sw_engine/tvgSwFill.cpp @@ -19,6 +19,8 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ +#include +#include #include "tvgSwCommon.h" diff --git a/src/lib/sw_engine/tvgSwRaster.cpp b/src/lib/sw_engine/tvgSwRaster.cpp index 7b5b986..d75bc2b 100644 --- a/src/lib/sw_engine/tvgSwRaster.cpp +++ b/src/lib/sw_engine/tvgSwRaster.cpp @@ -20,6 +20,7 @@ * SOFTWARE. */ #include "tvgSwCommon.h" +#include "tvgRender.h" /************************************************************************/ /* Internal Class Implementation */ diff --git a/src/lib/sw_engine/tvgSwRenderer.cpp b/src/lib/sw_engine/tvgSwRenderer.cpp index ff1055f..8c6ee95 100644 --- a/src/lib/sw_engine/tvgSwRenderer.cpp +++ b/src/lib/sw_engine/tvgSwRenderer.cpp @@ -20,6 +20,7 @@ * SOFTWARE. */ #include "tvgSwCommon.h" +#include "tvgTaskScheduler.h" #include "tvgSwRenderer.h" /************************************************************************/ diff --git a/src/lib/sw_engine/tvgSwRenderer.h b/src/lib/sw_engine/tvgSwRenderer.h index 016e444..5b39990 100644 --- a/src/lib/sw_engine/tvgSwRenderer.h +++ b/src/lib/sw_engine/tvgSwRenderer.h @@ -22,6 +22,9 @@ #ifndef _TVG_SW_RENDERER_H_ #define _TVG_SW_RENDERER_H_ +#include +#include "tvgRender.h" + struct SwSurface; struct SwTask; diff --git a/src/lib/sw_engine/tvgSwRle.cpp b/src/lib/sw_engine/tvgSwRle.cpp index 545237d..de20d61 100644 --- a/src/lib/sw_engine/tvgSwRle.cpp +++ b/src/lib/sw_engine/tvgSwRle.cpp @@ -22,6 +22,7 @@ #include #include #include + #include "tvgSwCommon.h" /************************************************************************/ diff --git a/src/lib/sw_engine/tvgSwShape.cpp b/src/lib/sw_engine/tvgSwShape.cpp index 49bcd12..0c6391c 100644 --- a/src/lib/sw_engine/tvgSwShape.cpp +++ b/src/lib/sw_engine/tvgSwShape.cpp @@ -19,7 +19,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ +#include #include "tvgSwCommon.h" +#include "tvgBezier.h" /************************************************************************/ /* Internal Class Implementation */ diff --git a/src/lib/sw_engine/tvgSwStroke.cpp b/src/lib/sw_engine/tvgSwStroke.cpp index e87ec4c..9f2dfe1 100644 --- a/src/lib/sw_engine/tvgSwStroke.cpp +++ b/src/lib/sw_engine/tvgSwStroke.cpp @@ -19,6 +19,8 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ +#include +#include #include "tvgSwCommon.h" diff --git a/src/lib/tvgBezier.cpp b/src/lib/tvgBezier.cpp index db4d58b..4129e71 100644 --- a/src/lib/tvgBezier.cpp +++ b/src/lib/tvgBezier.cpp @@ -19,8 +19,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -#include "tvgCommon.h" - +#include +#include +#include "tvgBezier.h" /************************************************************************/ /* Internal Class Implementation */ diff --git a/src/lib/tvgBezier.h b/src/lib/tvgBezier.h index df21719..89c8049 100644 --- a/src/lib/tvgBezier.h +++ b/src/lib/tvgBezier.h @@ -22,6 +22,8 @@ #ifndef _TVG_BEZIER_H_ #define _TVG_BEZIER_H_ +#include "tvgCommon.h" + namespace tvg { diff --git a/src/lib/tvgCanvas.cpp b/src/lib/tvgCanvas.cpp index 0720e04..eb08768 100644 --- a/src/lib/tvgCanvas.cpp +++ b/src/lib/tvgCanvas.cpp @@ -19,7 +19,6 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -#include "tvgCommon.h" #include "tvgCanvasImpl.h" /************************************************************************/ diff --git a/src/lib/tvgCanvasImpl.h b/src/lib/tvgCanvasImpl.h index 8131284..e2de033 100644 --- a/src/lib/tvgCanvasImpl.h +++ b/src/lib/tvgCanvasImpl.h @@ -22,6 +22,7 @@ #ifndef _TVG_CANVAS_IMPL_H_ #define _TVG_CANVAS_IMPL_H_ +#include #include "tvgPaint.h" /************************************************************************/ diff --git a/src/lib/tvgCommon.h b/src/lib/tvgCommon.h index ecacc82..5eb5743 100644 --- a/src/lib/tvgCommon.h +++ b/src/lib/tvgCommon.h @@ -23,15 +23,6 @@ #define _TVG_COMMON_H_ #include "config.h" - -#include -#include -#include -#include -#include -#include -#include - #include "thorvg.h" using namespace std; @@ -42,10 +33,4 @@ using namespace tvg; #define TVG_UNUSED __attribute__ ((__unused__)) -#include "tvgBezier.h" -#include "tvgLoader.h" -#include "tvgLoaderMgr.h" -#include "tvgRender.h" -#include "tvgTaskScheduler.h" - #endif //_TVG_COMMON_H_ diff --git a/src/lib/tvgFill.h b/src/lib/tvgFill.h index 5036337..a0db584 100644 --- a/src/lib/tvgFill.h +++ b/src/lib/tvgFill.h @@ -22,6 +22,7 @@ #ifndef _TVG_FILL_H_ #define _TVG_FILL_H_ +#include #include "tvgCommon.h" template diff --git a/src/lib/tvgGlCanvas.cpp b/src/lib/tvgGlCanvas.cpp index 85bcd1d..416ed44 100644 --- a/src/lib/tvgGlCanvas.cpp +++ b/src/lib/tvgGlCanvas.cpp @@ -19,7 +19,6 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -#include "tvgCommon.h" #include "tvgCanvasImpl.h" #ifdef THORVG_GL_RASTER_SUPPORT diff --git a/src/lib/tvgInitializer.cpp b/src/lib/tvgInitializer.cpp index 7dcc8b9..bc0a65f 100644 --- a/src/lib/tvgInitializer.cpp +++ b/src/lib/tvgInitializer.cpp @@ -20,6 +20,7 @@ * SOFTWARE. */ #include "tvgCommon.h" +#include "tvgTaskScheduler.h" #include "tvgLoaderMgr.h" #ifdef THORVG_SW_RASTER_SUPPORT diff --git a/src/lib/tvgLinearGradient.cpp b/src/lib/tvgLinearGradient.cpp index f647d44..ffd9a00 100644 --- a/src/lib/tvgLinearGradient.cpp +++ b/src/lib/tvgLinearGradient.cpp @@ -19,6 +19,8 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ +#include +#include #include "tvgFill.h" /************************************************************************/ diff --git a/src/lib/tvgLoader.h b/src/lib/tvgLoader.h index 9c7279e..c02baff 100644 --- a/src/lib/tvgLoader.h +++ b/src/lib/tvgLoader.h @@ -22,6 +22,8 @@ #ifndef _TVG_LOADER_H_ #define _TVG_LOADER_H_ +#include "tvgCommon.h" + namespace tvg { diff --git a/src/lib/tvgLoaderMgr.cpp b/src/lib/tvgLoaderMgr.cpp index 6ec3213..6ed2d3e 100644 --- a/src/lib/tvgLoaderMgr.cpp +++ b/src/lib/tvgLoaderMgr.cpp @@ -19,7 +19,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -#include "tvgCommon.h" +#include "tvgLoaderMgr.h" #ifdef THORVG_SVG_LOADER_SUPPORT #include "tvgSvgLoader.h" diff --git a/src/lib/tvgLoaderMgr.h b/src/lib/tvgLoaderMgr.h index 95a0676..81623f2 100644 --- a/src/lib/tvgLoaderMgr.h +++ b/src/lib/tvgLoaderMgr.h @@ -22,6 +22,8 @@ #ifndef _TVG_LOADER_MGR_H_ #define _TVG_LOADER_MGR_H_ +#include "tvgLoader.h" + struct LoaderMgr { static bool init(); diff --git a/src/lib/tvgPaint.h b/src/lib/tvgPaint.h index 071a45f..4b49520 100644 --- a/src/lib/tvgPaint.h +++ b/src/lib/tvgPaint.h @@ -22,7 +22,9 @@ #ifndef _TVG_PAINT_H_ #define _TVG_PAINT_H_ -#include "tvgCommon.h" +#include +#include +#include "tvgRender.h" namespace tvg { diff --git a/src/lib/tvgPictureImpl.h b/src/lib/tvgPictureImpl.h index 9b742aa..0f07ed1 100644 --- a/src/lib/tvgPictureImpl.h +++ b/src/lib/tvgPictureImpl.h @@ -23,6 +23,7 @@ #define _TVG_PICTURE_IMPL_H_ #include "tvgPaint.h" +#include "tvgLoaderMgr.h" /************************************************************************/ /* Internal Class Implementation */ diff --git a/src/lib/tvgRadialGradient.cpp b/src/lib/tvgRadialGradient.cpp index 03164ae..7353350 100644 --- a/src/lib/tvgRadialGradient.cpp +++ b/src/lib/tvgRadialGradient.cpp @@ -19,6 +19,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ +#include #include "tvgFill.h" /************************************************************************/ diff --git a/src/lib/tvgRender.cpp b/src/lib/tvgRender.cpp index 10a23e8..84413f0 100644 --- a/src/lib/tvgRender.cpp +++ b/src/lib/tvgRender.cpp @@ -19,7 +19,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -#include "tvgCommon.h" +#include +#include +#include "tvgRender.h" /************************************************************************/ /* Internal Class Implementation */ diff --git a/src/lib/tvgRender.h b/src/lib/tvgRender.h index 9beb72b..f710a0f 100644 --- a/src/lib/tvgRender.h +++ b/src/lib/tvgRender.h @@ -22,6 +22,8 @@ #ifndef _TVG_RENDER_H_ #define _TVG_RENDER_H_ +#include "tvgCommon.h" + namespace tvg { diff --git a/src/lib/tvgSceneImpl.h b/src/lib/tvgSceneImpl.h index 8073a70..c384d8c 100644 --- a/src/lib/tvgSceneImpl.h +++ b/src/lib/tvgSceneImpl.h @@ -22,6 +22,7 @@ #ifndef _TVG_SCENE_IMPL_H_ #define _TVG_SCENE_IMPL_H_ +#include #include "tvgPaint.h" /************************************************************************/ diff --git a/src/lib/tvgShape.cpp b/src/lib/tvgShape.cpp index a68c085..0a0a622 100644 --- a/src/lib/tvgShape.cpp +++ b/src/lib/tvgShape.cpp @@ -20,7 +20,6 @@ * SOFTWARE. */ #include - #include "tvgShapeImpl.h" /************************************************************************/ diff --git a/src/lib/tvgShapePath.h b/src/lib/tvgShapePath.h index f3b1f6e..bfbdcf5 100644 --- a/src/lib/tvgShapePath.h +++ b/src/lib/tvgShapePath.h @@ -22,6 +22,7 @@ #ifndef _TVG_SHAPE_PATH_H_ #define _TVG_SHAPE_PATH_H_ +#include #include "tvgCommon.h" /************************************************************************/ diff --git a/src/lib/tvgSwCanvas.cpp b/src/lib/tvgSwCanvas.cpp index 1a2261a..03337a7 100644 --- a/src/lib/tvgSwCanvas.cpp +++ b/src/lib/tvgSwCanvas.cpp @@ -19,7 +19,6 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -#include "tvgCommon.h" #include "tvgCanvasImpl.h" #ifdef THORVG_SW_RASTER_SUPPORT diff --git a/src/lib/tvgTaskScheduler.cpp b/src/lib/tvgTaskScheduler.cpp index bdf6edc..d4c21f1 100644 --- a/src/lib/tvgTaskScheduler.cpp +++ b/src/lib/tvgTaskScheduler.cpp @@ -21,7 +21,8 @@ */ #include #include -#include "tvgCommon.h" +#include +#include "tvgTaskScheduler.h" /************************************************************************/ /* Internal Class Implementation */ diff --git a/src/lib/tvgTaskScheduler.h b/src/lib/tvgTaskScheduler.h index 31d1ee1..d94a318 100644 --- a/src/lib/tvgTaskScheduler.h +++ b/src/lib/tvgTaskScheduler.h @@ -22,6 +22,7 @@ #ifndef _TVG_TASK_SCHEDULER_H_ #define _TVG_TASK_SCHEDULER_H_ +#include #include "tvgCommon.h" namespace tvg diff --git a/src/loaders/svg/tvgSimpleXmlParser.cpp b/src/loaders/svg/tvgSimpleXmlParser.cpp index d287ba7..3918af1 100644 --- a/src/loaders/svg/tvgSimpleXmlParser.cpp +++ b/src/loaders/svg/tvgSimpleXmlParser.cpp @@ -20,6 +20,10 @@ * SOFTWARE. */ +#include +#include +#include + #include "tvgSimpleXmlParser.h" static const char* _simpleXmlFindWhiteSpace(const char* itr, const char* itrEnd) diff --git a/src/loaders/svg/tvgSimpleXmlParser.h b/src/loaders/svg/tvgSimpleXmlParser.h index a9f999d..9c19547 100644 --- a/src/loaders/svg/tvgSimpleXmlParser.h +++ b/src/loaders/svg/tvgSimpleXmlParser.h @@ -23,9 +23,7 @@ #ifndef _TVG_SIMPLE_XML_PARSER_H_ #define _TVG_SIMPLE_XML_PARSER_H_ -#include -#include -#include +#include "tvgSvgLoaderCommon.h" enum class SimpleXMLType { diff --git a/src/loaders/svg/tvgSvgLoader.cpp b/src/loaders/svg/tvgSvgLoader.cpp index f86f9df..3495fca 100644 --- a/src/loaders/svg/tvgSvgLoader.cpp +++ b/src/loaders/svg/tvgSvgLoader.cpp @@ -21,9 +21,13 @@ */ #include #include +#include +#include +#include +#include "tvgLoaderMgr.h" +#include "tvgSimpleXmlParser.h" #include "tvgSvgLoader.h" - /************************************************************************/ /* Internal Class Implementation */ /************************************************************************/ diff --git a/src/loaders/svg/tvgSvgLoader.h b/src/loaders/svg/tvgSvgLoader.h index 3cf4cf2..cd04d7d 100644 --- a/src/loaders/svg/tvgSvgLoader.h +++ b/src/loaders/svg/tvgSvgLoader.h @@ -22,7 +22,7 @@ #ifndef _TVG_SVG_LOADER_H_ #define _TVG_SVG_LOADER_H_ -#include "tvgSvgLoaderCommon.h" +#include "tvgTaskScheduler.h" #include "tvgSvgSceneBuilder.h" class SvgLoader : public Loader, public Task diff --git a/src/loaders/svg/tvgSvgLoaderCommon.h b/src/loaders/svg/tvgSvgLoaderCommon.h index 91896bc..3cbe22d 100644 --- a/src/loaders/svg/tvgSvgLoaderCommon.h +++ b/src/loaders/svg/tvgSvgLoaderCommon.h @@ -23,7 +23,6 @@ #define _TVG_SVG_LOADER_COMMON_H_ #include "tvgCommon.h" -#include "tvgSimpleXmlParser.h" enum class SvgNodeType { diff --git a/src/loaders/svg/tvgSvgPath.cpp b/src/loaders/svg/tvgSvgPath.cpp index e3ea03e..3ede0e0 100644 --- a/src/loaders/svg/tvgSvgPath.cpp +++ b/src/loaders/svg/tvgSvgPath.cpp @@ -19,9 +19,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ +#include +#include #include "tvgSvgPath.h" - static char* _skipComma(const char* content) { while (*content && isspace(*content)) { diff --git a/src/loaders/svg/tvgSvgPath.h b/src/loaders/svg/tvgSvgPath.h index 9d853d1..5324a04 100644 --- a/src/loaders/svg/tvgSvgPath.h +++ b/src/loaders/svg/tvgSvgPath.h @@ -23,7 +23,8 @@ #ifndef _TVG_SVG_PATH_H_ #define _TVG_SVG_PATH_H_ -#include "tvgCommon.h" +#include +#include "tvgSvgLoaderCommon.h" tuple, vector> svgPathToTvgPath(const char* svg_path_data); diff --git a/src/loaders/svg/tvgSvgSceneBuilder.cpp b/src/loaders/svg/tvgSvgSceneBuilder.cpp index 0f1f80b..f3922cb 100644 --- a/src/loaders/svg/tvgSvgSceneBuilder.cpp +++ b/src/loaders/svg/tvgSvgSceneBuilder.cpp @@ -19,7 +19,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ +#include #include "tvgSvgSceneBuilder.h" +#include "tvgSvgPath.h" unique_ptr _applyLinearGradientProperty(SvgStyleGradient* g, Shape* vg, float rx, float ry, float rw, float rh) { diff --git a/src/loaders/svg/tvgSvgSceneBuilder.h b/src/loaders/svg/tvgSvgSceneBuilder.h index 0f93d96..79f111b 100644 --- a/src/loaders/svg/tvgSvgSceneBuilder.h +++ b/src/loaders/svg/tvgSvgSceneBuilder.h @@ -24,7 +24,6 @@ #define _TVG_SVG_SCENE_BUILDER_H_ #include "tvgSvgLoaderCommon.h" -#include "tvgSvgPath.h" class SvgSceneBuilder { -- 2.7.4