diff options
author | Sam James <sam@gentoo.org> | 2022-09-02 04:31:18 +0100 |
---|---|---|
committer | Michael Stahl <michael.stahl@allotropia.de> | 2022-09-13 12:32:58 +0200 |
commit | b7d63694985bbb1cf86eb71769feadb28ce68c17 (patch) | |
tree | b4de052bdabc989a5b30144ef417bd4045d46337 /sdext/source/pdfimport/xpdfwrapper | |
parent | 576ba26d09448f8bc332acdf6d17061e8ad552a3 (diff) |
Fix build with Poppler 22.09.0
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
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139249
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Diffstat (limited to 'sdext/source/pdfimport/xpdfwrapper')
-rw-r--r-- | sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx index f12478cb2f4d..3ad139b65fa3 100644 --- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx +++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx @@ -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 ) |