You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2023/07/02 08:16:56 UTC

svn commit: r1910736 - in /pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf: MaximumProfileTable.java TTFSubsetter.java

Author: lehmi
Date: Sun Jul  2 08:16:56 2023
New Revision: 1910736

URL: http://svn.apache.org/viewvc?rev=1910736&view=rev
Log:
PDFBOX-5631: added support for version 0.5 of MaximumProfileTable with a reduced amount of values

Modified:
    pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/MaximumProfileTable.java
    pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubsetter.java

Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/MaximumProfileTable.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/MaximumProfileTable.java?rev=1910736&r1=1910735&r2=1910736&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/MaximumProfileTable.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/MaximumProfileTable.java Sun Jul  2 08:16:56 2023
@@ -274,19 +274,22 @@ public class MaximumProfileTable extends
     {
         version = data.read32Fixed();
         numGlyphs = data.readUnsignedShort();
-        maxPoints = data.readUnsignedShort();
-        maxContours = data.readUnsignedShort();
-        maxCompositePoints = data.readUnsignedShort();
-        maxCompositeContours = data.readUnsignedShort();
-        maxZones = data.readUnsignedShort();
-        maxTwilightPoints = data.readUnsignedShort();
-        maxStorage = data.readUnsignedShort();
-        maxFunctionDefs = data.readUnsignedShort();
-        maxInstructionDefs = data.readUnsignedShort();
-        maxStackElements = data.readUnsignedShort();
-        maxSizeOfInstructions = data.readUnsignedShort();
-        maxComponentElements = data.readUnsignedShort();
-        maxComponentDepth = data.readUnsignedShort();
+        if (version >= 1.0f)
+        {
+            maxPoints = data.readUnsignedShort();
+            maxContours = data.readUnsignedShort();
+            maxCompositePoints = data.readUnsignedShort();
+            maxCompositeContours = data.readUnsignedShort();
+            maxZones = data.readUnsignedShort();
+            maxTwilightPoints = data.readUnsignedShort();
+            maxStorage = data.readUnsignedShort();
+            maxFunctionDefs = data.readUnsignedShort();
+            maxInstructionDefs = data.readUnsignedShort();
+            maxStackElements = data.readUnsignedShort();
+            maxSizeOfInstructions = data.readUnsignedShort();
+            maxComponentElements = data.readUnsignedShort();
+            maxComponentDepth = data.readUnsignedShort();
+        }
         initialized = true;
     }
 }

Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubsetter.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubsetter.java?rev=1910736&r1=1910735&r2=1910736&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubsetter.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubsetter.java Sun Jul  2 08:16:56 2023
@@ -380,20 +380,22 @@ public final class TTFSubsetter
         MaximumProfileTable p = ttf.getMaximumProfile();
         writeFixed(out, 1.0);
         writeUint16(out, glyphIds.size());
-        writeUint16(out, p.getMaxPoints());
-        writeUint16(out, p.getMaxContours());
-        writeUint16(out, p.getMaxCompositePoints());
-        writeUint16(out, p.getMaxCompositeContours());
-        writeUint16(out, p.getMaxZones());
-        writeUint16(out, p.getMaxTwilightPoints());
-        writeUint16(out, p.getMaxStorage());
-        writeUint16(out, p.getMaxFunctionDefs());
-        writeUint16(out, p.getMaxInstructionDefs());
-        writeUint16(out, p.getMaxStackElements());
-        writeUint16(out, p.getMaxSizeOfInstructions());
-        writeUint16(out, p.getMaxComponentElements());
-        writeUint16(out, p.getMaxComponentDepth());
-
+        if (p.getVersion() >= 1.0f)
+        {
+            writeUint16(out, p.getMaxPoints());
+            writeUint16(out, p.getMaxContours());
+            writeUint16(out, p.getMaxCompositePoints());
+            writeUint16(out, p.getMaxCompositeContours());
+            writeUint16(out, p.getMaxZones());
+            writeUint16(out, p.getMaxTwilightPoints());
+            writeUint16(out, p.getMaxStorage());
+            writeUint16(out, p.getMaxFunctionDefs());
+            writeUint16(out, p.getMaxInstructionDefs());
+            writeUint16(out, p.getMaxStackElements());
+            writeUint16(out, p.getMaxSizeOfInstructions());
+            writeUint16(out, p.getMaxComponentElements());
+            writeUint16(out, p.getMaxComponentDepth());
+        }
         out.flush();
         return bos.toByteArray();
     }