You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by je...@apache.org on 2011/11/02 08:31:33 UTC
svn commit: r1196481 - in /pdfbox/trunk/pdfbox/src:
main/java/org/apache/pdfbox/pdmodel/common/function/type4/Parser.java
test/java/org/apache/pdfbox/pdmodel/common/function/type4/TestParser.java
Author: jeremias
Date: Wed Nov 2 07:31:32 2011
New Revision: 1196481
URL: http://svn.apache.org/viewvc?rev=1196481&view=rev
Log:
PDFBOX-804:
Bugfix: "mul}" was detected as one token.
Endless loop fixed with line breaks in the function.
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/type4/Parser.java
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/common/function/type4/TestParser.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/type4/Parser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/type4/Parser.java?rev=1196481&r1=1196480&r2=1196481&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/type4/Parser.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/function/type4/Parser.java Wed Nov 2 07:31:32 2011
@@ -229,6 +229,7 @@ public class Parser
}
}
handler.newLine(buffer);
+ nextChar();
}
private void scanWhitespace()
@@ -303,6 +304,8 @@ public class Parser
case LF:
case FF:
case EOT:
+ case '{':
+ case '}':
break loop;
default:
buffer.append(ch);
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/common/function/type4/TestParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/common/function/type4/TestParser.java?rev=1196481&r1=1196480&r2=1196481&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/common/function/type4/TestParser.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/common/function/type4/TestParser.java Wed Nov 2 07:31:32 2011
@@ -62,4 +62,19 @@ public class TestParser extends TestCase
assertEquals(1.0E-5, InstructionSequenceBuilder.parseReal("1.0E-5"), 0.00001f);
}
+
+ /**
+ * Tests problematic functions from PDFBOX-804.
+ * @throws Exception if an error occurs
+ */
+ public void testJira804() throws Exception
+ {
+ //This is an example of a tint to CMYK function
+ //Problems here were:
+ //1. no whitespace between "mul" and "}" (token was detected as "mul}")
+ //2. line breaks cause endless loops
+ Type4Tester.create("1 {dup dup .72 mul exch 0 exch .38 mul}\n")
+ .pop(0.38f).pop(0f).pop(0.72f).pop(1.0f).isEmpty();
+
+ }
}