diff --git a/libraries/ZWidget/src/core/canvas.cpp b/libraries/ZWidget/src/core/canvas.cpp index 1e9aecc706..5712664084 100644 --- a/libraries/ZWidget/src/core/canvas.cpp +++ b/libraries/ZWidget/src/core/canvas.cpp @@ -47,7 +47,7 @@ class CanvasFont public: CanvasFont(const std::string& fontname, double height, std::vector& _data) : fontname(fontname), height(height) { - ttf = std::make_unique(_data); + ttf = std::make_unique(std::make_shared(_data)); textmetrics = ttf->GetTextMetrics(height); } diff --git a/libraries/ZWidget/src/core/truetypefont.cpp b/libraries/ZWidget/src/core/truetypefont.cpp index ccc65a26c5..3f71c058d6 100644 --- a/libraries/ZWidget/src/core/truetypefont.cpp +++ b/libraries/ZWidget/src/core/truetypefont.cpp @@ -11,7 +11,7 @@ #include #endif -TrueTypeFont::TrueTypeFont(std::shared_ptr initdata, int ttcFontIndex) : data(std::move(initdata)) +TrueTypeFont::TrueTypeFont(std::shared_ptr& initdata, int ttcFontIndex) : data(initdata) { if (data->size() > 0x7fffffff) throw std::runtime_error("TTF file is larger than 2 gigabytes!"); diff --git a/libraries/ZWidget/src/core/truetypefont.h b/libraries/ZWidget/src/core/truetypefont.h index 53d8837fc0..5fd4c50997 100644 --- a/libraries/ZWidget/src/core/truetypefont.h +++ b/libraries/ZWidget/src/core/truetypefont.h @@ -445,7 +445,7 @@ public: class TrueTypeFontFileData { public: - TrueTypeFontFileData(std::vector data) : dataVector(std::move(data)) + TrueTypeFontFileData(std::vector& data) : dataVector(std::move(data)) { dataPtr = dataVector.data(); dataSize = dataVector.size(); @@ -491,7 +491,7 @@ private: class TrueTypeFont { public: - TrueTypeFont(std::shared_ptr data, int ttcFontIndex = 0); + TrueTypeFont(std::shared_ptr& data, int ttcFontIndex = 0); static std::vector GetFontNames(const std::shared_ptr& data);