aboutsummaryrefslogtreecommitdiffstats
path: root/community/libreoffice/fix-poppler-082.patch
blob: 506bc83faf6f7c9116cd666499bad2cf7effe914 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
From 142e03e329bbd6cd2d37cb24ed18c2538eb20daa Mon Sep 17 00:00:00 2001
From: Rasmus Thomsen <oss@cogitri.dev>
Date: Sat, 26 Oct 2019 14:11:35 +0200
Subject: [PATCH] Fix build with poppler-0.82

Change-Id: I3b6b3faea7986f3e5a6ae4790580d03bc9c955fc
---
 .../pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx  | 25 +++++++++++++++++++
 .../pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx  | 16 +++++++++++-
 2 files changed, 40 insertions(+), 1 deletion(-)

--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx	2019-10-26 12:40:49.670720552 +0200
+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx	2019-10-26 12:40:52.894158294 +0200
@@ -232,10 +232,17 @@ namespace pdfi
         virtual void eoClip(GfxState *state) override;
 
         //----- text drawing
+#if POPPLER_CHECK_VERSION(0, 82, 0)
+        virtual void drawChar(GfxState *state, double x, double y,
+                              double dx, double dy,
+                              double originX, double originY,
+                              CharCode code, int nBytes, const Unicode *u, int uLen) override;
+#else
         virtual void drawChar(GfxState *state, double x, double y,
                               double dx, double dy,
                               double originX, double originY,
                               CharCode code, int nBytes, Unicode *u, int uLen) override;
+#endif
 #if POPPLER_CHECK_VERSION(0, 64, 0)
         virtual void drawString(GfxState *state, const GooString *s) override;
 #else
@@ -248,10 +255,17 @@ namespace pdfi
                                    int width, int height, poppler_bool invert,
                                    poppler_bool interpolate,
                                    poppler_bool inlineImg) override;
+#if POPPLER_CHECK_VERSION(0, 82, 0)
         virtual void drawImage(GfxState *state, Object *ref, Stream *str,
                                int width, int height, GfxImageColorMap *colorMap,
                                poppler_bool interpolate,
-                               int* maskColors, poppler_bool inlineImg) override;
+                               const int* maskColors, poppler_bool inlineImg) override;
+#else
+        virtual void drawImage(GfxState *state, Object *ref, Stream *str,
+                       int width, int height, GfxImageColorMap *colorMap,
+                       poppler_bool interpolate,
+                       int* maskColors, poppler_bool inlineImg) override;
+#endif
         virtual void drawMaskedImage(GfxState *state, Object *ref, Stream *str,
                                      int width, int height,
                                      GfxImageColorMap *colorMap,

--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx	2019-10-26 12:54:06.718793588 +0200
+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx	2019-10-26 12:55:54.338415432 +0200
@@ -863,11 +863,20 @@ void PDFOutDev::eoClip(GfxState *state)
     local offset of character (zero for horizontal writing mode). not
     taken into account for output pos updates. Used for vertical writing.
  */
+
+#if POPPLER_CHECK_VERSION(0, 82, 0)
+void PDFOutDev::drawChar(GfxState *state, double x, double y,
+                         double dx, double dy,
+                         double originX, double originY,
+                         CharCode, int /*nBytes*/, const Unicode *u, int uLen)
+{
+#else
 void PDFOutDev::drawChar(GfxState *state, double x, double y,
                          double dx, double dy,
                          double originX, double originY,
                          CharCode, int /*nBytes*/, Unicode *u, int uLen)
 {
+#endif
     assert(state);
 
     if( u == nullptr )
@@ -979,11 +988,19 @@ void PDFOutDev::drawImageMask(GfxState* pState, Object*, Stream* str,
     writeBinaryBuffer(aBuf);
 }
 
+#if POPPLER_CHECK_VERSION(0, 82, 0)
+void PDFOutDev::drawImage(GfxState*, Object*, Stream* str,
+                          int width, int height, GfxImageColorMap* colorMap,
+                          poppler_bool /*interpolate*/,
+                          const int* maskColors, poppler_bool /*inlineImg*/ )
+{
+#else
 void PDFOutDev::drawImage(GfxState*, Object*, Stream* str,
                           int width, int height, GfxImageColorMap* colorMap,
                           poppler_bool /*interpolate*/,
                           int* maskColors, poppler_bool /*inlineImg*/ )
 {
+#endif
     if (m_bSkipImages)
         return;
     OutputBuffer aBuf; initBuf(aBuf);
@@ -1004,12 +1021,12 @@ void PDFOutDev::drawImage(GfxState*, Object*, Stream* str,
         {
             GfxRGB aMinRGB;
             colorMap->getColorSpace()->getRGB(
-                reinterpret_cast<GfxColor*>(maskColors),
+                const_cast<GfxColor*>(reinterpret_cast<const GfxColor*>(maskColors)),
                 &aMinRGB );
 
             GfxRGB aMaxRGB;
             colorMap->getColorSpace()->getRGB(
-                reinterpret_cast<GfxColor*>(maskColors)+gfxColorMaxComps,
+                const_cast<GfxColor*>(reinterpret_cast<const GfxColor*>(maskColors))+gfxColorMaxComps,
                 &aMaxRGB );
 
             aMaskBuf.push_back( colToByte(aMinRGB.r) );