diff --git a/src/lib/tvgLoaderMgr.cpp b/src/lib/tvgLoaderMgr.cpp index 1bb5f07e..3b8f26b6 100644 --- a/src/lib/tvgLoaderMgr.cpp +++ b/src/lib/tvgLoaderMgr.cpp @@ -91,10 +91,10 @@ bool LoaderMgr::term() unique_ptr LoaderMgr::loader(const string& path) { - auto loader = _find(path); - - if (loader && loader->open(path)) return unique_ptr(loader); - + if (auto loader = _find(path)) { + if (loader->open(path)) return unique_ptr(loader); + else delete(loader); + } return nullptr; } @@ -103,7 +103,10 @@ unique_ptr LoaderMgr::loader(const char* data, uint32_t size) { for (int i = 0; i < static_cast(FileType::Unknown); i++) { auto loader = _find(static_cast(i)); - if (loader && loader->open(data, size)) return unique_ptr(loader); + if (loader) { + if (loader->open(data, size)) return unique_ptr(loader); + else delete(loader); + } } return nullptr; } @@ -113,7 +116,10 @@ unique_ptr LoaderMgr::loader(uint32_t *data, uint32_t w, uint32_t h, boo { for (int i = 0; i < static_cast(FileType::Unknown); i++) { auto loader = _find(static_cast(i)); - if (loader && loader->open(data, w, h, copy)) return unique_ptr(loader); + if (loader) { + if (loader->open(data, w, h, copy)) return unique_ptr(loader); + else delete(loader); + } } return nullptr; } diff --git a/src/loaders/raw/tvgRawLoader.cpp b/src/loaders/raw/tvgRawLoader.cpp index 4ed475d0..2fd57d8d 100644 --- a/src/loaders/raw/tvgRawLoader.cpp +++ b/src/loaders/raw/tvgRawLoader.cpp @@ -34,7 +34,6 @@ RawLoader::RawLoader() { - } diff --git a/src/loaders/svg/tvgSvgLoader.cpp b/src/loaders/svg/tvgSvgLoader.cpp index 85f86cbf..d876a7bf 100644 --- a/src/loaders/svg/tvgSvgLoader.cpp +++ b/src/loaders/svg/tvgSvgLoader.cpp @@ -2427,7 +2427,6 @@ static bool _svgLoaderParserForValidCheck(void* data, SimpleXMLType type, const SvgLoader::SvgLoader() { - }