Fix compilation with poppler version >= 24.12.
authorAlessandro Astone <alessandro.astone@canonical.com>
Wed, 15 Jan 2025 17:08:55 +0000 (18:08 +0100)
committerBastian Germann <bage@debian.org>
Sat, 18 Jan 2025 12:47:39 +0000 (13:47 +0100)
Forwarded: https://gitlab.com/gambas/gambas/-/merge_requests/383

Gbp-Pq: Name Fix-compilation-with-poppler-version-24.12.patch

gb.pdf/configure.ac
gb.pdf/src/CPdfDocument.cpp

index bbb4fe6bc53a870d5d5b8edf217d03ffa6baee95..ca36347c8989aa5b8b85a3d4754618b0acf6f3da 100644 (file)
@@ -40,6 +40,8 @@ if test "$have_poppler" = "yes"; then
   AC_DEFINE_UNQUOTED(POPPLER_VERSION_24_05_0, $((1-$?)), Poppler version >= 24.05.0)
   $PKG_CONFIG --atleast-version=24.11.0 poppler
   AC_DEFINE_UNQUOTED(POPPLER_VERSION_24_11_0, $((1-$?)), Poppler version >= 24.11.0)
+  $PKG_CONFIG --atleast-version=24.12.0 poppler
+  AC_DEFINE_UNQUOTED(POPPLER_VERSION_24_12_0, $((1-$?)), Poppler version >= 24.12.0)
 fi
 
 AC_CONFIG_FILES([\
index 979254efa8c879550989245b15cf3a9575d6cf82..d66b4a82b049c73b0abf924ab6207e5de46f5356 100644 (file)
@@ -31,6 +31,7 @@
 #include <stdio.h>
 #include <stdint.h>
 #include <math.h>
+#include <memory>
 
 #include <PDFDoc.h>
 #include <Stream.h>
@@ -1028,6 +1029,9 @@ BEGIN_METHOD(PDFPAGE_select, GB_INTEGER X; GB_INTEGER Y; GB_INTEGER W; GB_INTEGE
 
        TextOutputDev *dev;
        GooString *str;
+#if POPPLER_VERSION_24_12_0
+       std::unique_ptr<Gfx> _gfx;
+#endif
        Gfx *gfx;
        int32_t x,y,w,h;
 
@@ -1037,7 +1041,10 @@ BEGIN_METHOD(PDFPAGE_select, GB_INTEGER X; GB_INTEGER Y; GB_INTEGER W; GB_INTEGE
        h = VARGOPT(H, (int32_t)THIS->page->getMediaHeight());
 
        dev = new TextOutputDev (NULL, true, 0, false, false);
-#if POPPLER_VERSION_24_11_0
+#if POPPLER_VERSION_24_12_0
+       _gfx = THIS->page->createGfx(dev,72.0,72.0,0,false,true,-1, -1, -1, -1, NULL, NULL);
+       gfx = _gfx.get();
+#elif POPPLER_VERSION_24_11_0
        gfx = THIS->page->createGfx(dev,72.0,72.0,0,false,true,-1, -1, -1, -1, NULL, NULL);
 #else
        gfx = THIS->page->createGfx(dev,72.0,72.0,0,false,true,-1, -1, -1, -1, false, NULL, NULL);
@@ -1048,7 +1055,9 @@ BEGIN_METHOD(PDFPAGE_select, GB_INTEGER X; GB_INTEGER Y; GB_INTEGER W; GB_INTEGE
 
        str=dev->getText((double)x,(double)y,(double)(w+x),(double)(h+y));
 
+#if !(POPPLER_VERSION_24_12_0)
        delete gfx;
+#endif
        delete dev;
 
        if (!str)