You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2020/06/11 04:44:44 UTC

svn commit: r1878736 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java

Author: tilman
Date: Thu Jun 11 04:44:44 2020
New Revision: 1878736

URL: http://svn.apache.org/viewvc?rev=1878736&view=rev
Log:
PDFBOX-4872: avoid ClassCastException

Modified:
    pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java

Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java?rev=1878736&r1=1878735&r2=1878736&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java Thu Jun 11 04:44:44 2020
@@ -105,28 +105,29 @@ public class CMapParser
 
                 if (previousToken != null)
                 {
-                    switch (op.op)
+                    if (op.op.equals("usecmap") && previousToken instanceof LiteralName)
                     {
-                        case "usecmap":
-                            parseUsecmap((LiteralName) previousToken, result);
-                            break;
-                        case "begincodespacerange":
-                            parseBegincodespacerange((Number) previousToken, cmapStream, result);
-                            break;
-                        case "beginbfchar":
-                            parseBeginbfchar((Number) previousToken, cmapStream, result);
-                            break;
-                        case "beginbfrange":
-                            parseBeginbfrange((Number) previousToken, cmapStream, result);
-                            break;
-                        case "begincidchar":
-                            parseBegincidchar((Number) previousToken, cmapStream, result);
-                            break;
-                        case "begincidrange":
-                            parseBegincidrange((Integer) previousToken, cmapStream, result);
-                            break;
-                        default:
-                            break;
+                        parseUsecmap((LiteralName) previousToken, result);
+                    }
+                    else if (op.op.equals("begincodespacerange") && previousToken instanceof Number)
+                    {
+                        parseBegincodespacerange((Number) previousToken, cmapStream, result);
+                    }
+                    else if (op.op.equals("beginbfchar") && previousToken instanceof Number)
+                    {
+                        parseBeginbfchar((Number) previousToken, cmapStream, result);
+                    }
+                    else if (op.op.equals("beginbfrange") && previousToken instanceof Number)
+                    {
+                        parseBeginbfrange((Number) previousToken, cmapStream, result);
+                    }
+                    else if (op.op.equals("begincidchar") && previousToken instanceof Number)
+                    {
+                        parseBegincidchar((Number) previousToken, cmapStream, result);
+                    }
+                    else if (op.op.equals("begincidrange") && previousToken instanceof Integer)
+                    {
+                        parseBegincidrange((Integer) previousToken, cmapStream, result);
                     }
                 }
             }