aboutsummaryrefslogtreecommitdiff
blob: 39cb13bbc7d6601a9d9b3c9e1ac93da0eabfa0c0 (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
https://bugs.gentoo.org/843311
https://cgit.freebsd.org/ports/commit/?id=d9b5ef800dbd0366eae81b03bfa89689ec73c6f7

(sam: adapt version check to 22.4.0)

From: Sam James <sam@gentoo.org>
Date: Sun, 8 May 2022 21:20:25 +0000
Subject: [PATCH 1/2] Import FreeBSD patch for Poppler 22.04.0 build

--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
@@ -474,11 +474,17 @@ int PDFOutDev::parseFont( long long nNewId, GfxFont* gfxFont, const GfxState* st
     {
         // TODO(P3): Unfortunately, need to read stream twice, since
         // we must write byte count to stdout before
+#if !POPPLER_CHECK_VERSION(22, 4, 0)
         char* pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef(), &nSize );
+#else
+        std::optional<std::vector<unsigned char>> pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef() );
+#endif
         if( pBuf )
         {
             aNewFont.isEmbedded = true;
+#if !POPPLER_CHECK_VERSION(22, 4, 0)
             gfree(pBuf);
+#endif
         }
     }
 
@@ -492,21 +498,32 @@ void PDFOutDev::writeFontFile( GfxFont* gfxFont ) const
         return;
 
     int nSize = 0;
-    char* pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef(), &nSize );
+#if !POPPLER_CHECK_VERSION(22, 4, 0)
+        char* pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef(), &nSize );
+#else
+        std::optional<std::vector<unsigned char>> pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef() );
+#endif
     if( !pBuf )
         return;
 
     // ---sync point--- see SYNC STREAMS above
     fflush(stdout);
-
+#if !POPPLER_CHECK_VERSION(22, 4, 0)
     if( fwrite(pBuf, sizeof(char), nSize, g_binary_out) != static_cast<size_t>(nSize) )
+#else
+    if( fwrite(reinterpret_cast<char*>(pBuf.value().data()), sizeof(char), nSize, g_binary_out) != static_cast<size_t>(nSize) )
+#endif
     {
-        gfree(pBuf);
+#if !POPPLER_CHECK_VERSION(22, 4, 0)
+            gfree(pBuf);
+#endif
         exit(1); // error
     }
     // ---sync point--- see SYNC STREAMS above
     fflush(g_binary_out);
-    gfree(pBuf);
+#if !POPPLER_CHECK_VERSION(22, 4, 0)
+            gfree(pBuf);
+#endif
 }
 
 #if POPPLER_CHECK_VERSION(0, 83, 0)
@@ -759,7 +776,11 @@ void PDFOutDev::updateFont(GfxState *state)
 {
     assert(state);
 
+#if !POPPLER_CHECK_VERSION(22, 4, 0)
     GfxFont *gfxFont = state->getFont();
+#else
+    GfxFont *gfxFont = state->getFont().get();
+#endif
     if( !gfxFont )
         return;