[PATCH] Fix build with Poppler 22.09.0
authorSam James <sam@gentoo.org>
Fri, 2 Sep 2022 03:31:18 +0000 (04:31 +0100)
committerRene Engelhard <rene@debian.org>
Sun, 11 Sep 2022 20:30:14 +0000 (21:30 +0100)
With Poppler 22.09.0, LO fails to build with:
```
/var/tmp/portage/app-office/libreoffice-7.3.5.2/work/libreoffice-7.3.5.2/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx:682:36: error: too many arguments to function call, expected single argument 'start', have 3 arguments
    state->getLineDash(&dashArray, &arrayLen, &startOffset);
    ~~~~~~~~~~~~~~~~~~             ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/poppler/GfxState.h:1506:32: note: 'getLineDash' declared here
    const std::vector<double> &getLineDash(double *start)
                               ^
1 error generated.
```

Poppler changed the getLineDash interface:
```
-    void getLineDash(double **dash, int *length, double *start)
+    const std::vector<double> &getLineDash(double *start)
```

Signed-off-by: Sam James <sam@gentoo.org>
Change-Id: I29e18f20d7650a7fcac1bc8ab4aaa04aaa2ab8fb

Gbp-Pq: Name poppler-22.09.diff

sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx

index f12478cb2f4d1a3c52abfe6fff7ff3ff4eed732c..3ad139b65fa3fb83453b5da9a621879ffacf79fb 100644 (file)
@@ -678,8 +678,15 @@ void PDFOutDev::updateLineDash(GfxState *state)
         return;
     assert(state);
 
-    double* dashArray; int arrayLen; double startOffset;
+    int arrayLen; double startOffset;
+#if POPPLER_CHECK_VERSION(22, 9, 0)
+    const std::vector<double> &dash = state->getLineDash(&startOffset);
+    const double* dashArray = dash.data();
+    arrayLen = dash.size();
+#else
+    double* dashArray;
     state->getLineDash(&dashArray, &arrayLen, &startOffset);
+#endif
 
     printf( "updateLineDash" );
     if( arrayLen && dashArray )