Fix build with poppler-25.07 and 25.09.1.

Partially from upstream commit b60d81745016b5f20d4c6aec6d073b8a6f3e499c.

Index: src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp
--- src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp.orig
+++ src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp
@@ -318,7 +318,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
 #endif
     char **enc;
     const char *name;
-    FoFiType1C *ff1c;
+    std::unique_ptr<FoFiType1C> ff1c;
     std::optional<FreeTypeFontFace> font_face;
     std::vector<int> codeToGID;
     bool substitute = false;
@@ -429,7 +429,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
                 FoFiTrueType *ff;
 #endif
                 if (!font_data.empty()) {
-                    ff = FoFiTrueType::make((fontchar)font_data.data(), font_data.size(), 0);
+                    ff = FoFiTrueType::make(std::span(font_data), 0);
                 } else {
                     ff = FoFiTrueType::load(fileName.c_str(), 0);
                 }
@@ -459,7 +459,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
             FoFiTrueType *ff;
 #endif
             if (!font_data.empty()) {
-                ff = FoFiTrueType::make((fontchar)font_data.data(), font_data.size(), 0);
+                ff = FoFiTrueType::make(std::span(font_data), 0);
             } else {
                 ff = FoFiTrueType::load(fileName.c_str(), 0);
             }
@@ -493,7 +493,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
         case fontCIDType0C:
             if (!useCIDs) {
                 if (!font_data.empty()) {
-                    ff1c = FoFiType1C::make((fontchar)font_data.data(), font_data.size());
+                    ff1c = FoFiType1C::make(std::span(font_data));
                 } else {
                     ff1c = FoFiType1C::load(fileName.c_str());
                 }
@@ -506,7 +506,6 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
                     codeToGID.insert(codeToGID.begin(), src, src + n);
                     gfree(src);
 #endif
-                    delete ff1c;
                 }
             }
 
@@ -542,7 +541,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
                     FoFiTrueType *ff;
 #endif
                     if (!font_data.empty()) {
-                        ff = FoFiTrueType::make((fontchar)font_data.data(), font_data.size(), 0);
+                        ff = FoFiTrueType::make(std::span(font_data), 0);
                     } else {
                         ff = FoFiTrueType::load(fileName.c_str(), 0);
                     }
@@ -629,7 +628,7 @@ static cairo_status_t _init_type3_glyph(cairo_scaled_f
 
     info = (type3_font_info_t *)cairo_font_face_get_user_data(cairo_scaled_font_get_font_face(scaled_font),
                                                               &type3_font_key);
-    const double *mat = info->font->getFontBBox();
+    const auto& mat = info->font->getFontBBox();
     extents->ascent = mat[3];   /* y2 */
     extents->descent = -mat[3]; /* -y1 */
     extents->height = extents->ascent + extents->descent;
