summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2021-02-23 21:15:28 +0100
committerMiklos Vajna <vmiklos@collabora.com>2021-02-24 08:55:35 +0100
commit32042808aa43b8a45a95ef656987189ec1807f1d (patch)
tree609c4d014d280b14434a4c679a318715f160530a
parent8c62c2fb88a7a82939ad3b5c7355c93a41b76d5b (diff)
pdfium: move PDFiumLibrary::get() impl out of the header
Otherwise vcl::pdf::PDFium can't be turned into an interface. Change-Id: I9e9030e7e7ed36ec1ed777f017c521fa64588e8d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111434 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
-rw-r--r--include/vcl/filter/PDFiumLibrary.hxx4
-rw-r--r--vcl/source/pdf/PDFiumLibrary.cxx6
2 files changed, 8 insertions, 2 deletions
diff --git a/include/vcl/filter/PDFiumLibrary.hxx b/include/vcl/filter/PDFiumLibrary.hxx
index d65658769e84..5bd7e57eec5f 100644
--- a/include/vcl/filter/PDFiumLibrary.hxx
+++ b/include/vcl/filter/PDFiumLibrary.hxx
@@ -228,9 +228,9 @@ public:
virtual std::vector<unsigned int> getTrailerEnds() = 0;
};
-struct PDFiumLibrary final : public rtl::StaticWithInit<std::shared_ptr<PDFium>, PDFiumLibrary>
+struct VCL_DLLPUBLIC PDFiumLibrary final
{
- std::shared_ptr<PDFium> operator()() { return std::make_shared<PDFium>(); }
+ static std::shared_ptr<PDFium>& get();
};
// Tools
diff --git a/vcl/source/pdf/PDFiumLibrary.cxx b/vcl/source/pdf/PDFiumLibrary.cxx
index 232ed10cb9b6..617ea16cb6eb 100644
--- a/vcl/source/pdf/PDFiumLibrary.cxx
+++ b/vcl/source/pdf/PDFiumLibrary.cxx
@@ -1307,6 +1307,12 @@ int PDFiumSearchHandleImpl::getSearchResultIndex()
int PDFiumSearchHandleImpl::getSearchCount() { return FPDFText_GetSchCount(mpSearchHandle); }
+std::shared_ptr<PDFium>& PDFiumLibrary::get()
+{
+ static auto pInstance = std::make_shared<PDFium>();
+ return pInstance;
+}
+
} // end vcl::pdf
#endif // HAVE_FEATURE_PDFIUM