This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pdfbox-jbig2.git


The following commit(s) were added to refs/heads/master by this push:
     new 797d738  PDFBOX-6162: Migrate SymbolDictionary and TextRegion to call 
GenericRefinementRegionDecodingProcedure.decode() directly, removing deprecated 
setParameters() usage
797d738 is described below

commit 797d7388f2c397e4bb5897dc87ac461d75e65962
Author: Maruan Sahyoun <[email protected]>
AuthorDate: Thu Apr 23 12:22:57 2026 +0200

    PDFBOX-6162: Migrate SymbolDictionary and TextRegion to call 
GenericRefinementRegionDecodingProcedure.decode() directly, removing deprecated 
setParameters() usage
---
 .../pdfbox/jbig2/segments/SymbolDictionary.java    | 27 +++++++++-------------
 .../apache/pdfbox/jbig2/segments/TextRegion.java   | 20 +++++++++-------
 2 files changed, 23 insertions(+), 24 deletions(-)

diff --git 
a/src/main/java/org/apache/pdfbox/jbig2/segments/SymbolDictionary.java 
b/src/main/java/org/apache/pdfbox/jbig2/segments/SymbolDictionary.java
index 3b2f7e7..5cddb11 100644
--- a/src/main/java/org/apache/pdfbox/jbig2/segments/SymbolDictionary.java
+++ b/src/main/java/org/apache/pdfbox/jbig2/segments/SymbolDictionary.java
@@ -25,6 +25,7 @@ import org.apache.pdfbox.jbig2.Bitmap;
 import org.apache.pdfbox.jbig2.Dictionary;
 import org.apache.pdfbox.jbig2.Region;
 import org.apache.pdfbox.jbig2.SegmentHeader;
+import 
org.apache.pdfbox.jbig2.decoder.GenericRefinementRegionDecodingProcedure;
 import org.apache.pdfbox.jbig2.decoder.arithmetic.ArithmeticDecoder;
 import org.apache.pdfbox.jbig2.decoder.arithmetic.ArithmeticIntegerDecoder;
 import org.apache.pdfbox.jbig2.decoder.arithmetic.CX;
@@ -93,7 +94,6 @@ public class SymbolDictionary implements Dictionary
 
     private TextRegion textRegion;
     private GenericRegion genericRegion;
-    private GenericRefinementRegion genericRefinementRegion;
     private CX cx;
 
     private CX cxIADH;
@@ -719,26 +719,21 @@ public class SymbolDictionary implements Dictionary
             final int rdx, final int rdy)
             throws IOException, InvalidHeaderValueException, 
IntegerMaxValueException
     {
-        if (genericRefinementRegion == null)
-        {
-            genericRefinementRegion = new 
GenericRefinementRegion(subInputStream);
-
-            if (arithmeticDecoder == null)
-            {
-                arithmeticDecoder = new ArithmeticDecoder(subInputStream);
-            }
+        if (arithmeticDecoder == null) {
+            arithmeticDecoder = new ArithmeticDecoder(subInputStream);
+        }
 
-            if (cx == null)
-            {
-                cx = new CX(65536, 1);
-            }
+        if (cx == null) {
+            cx = new CX(65536, 1);
         }
 
         // Parameters as shown in Table 18, page 36
-        genericRefinementRegion.setParameters(cx, arithmeticDecoder, 
sdrTemplate, symWidth,
-                hcHeight, ibo, rdx, rdy, false, sdrATX, sdrATY);
+        final Bitmap symbol = GenericRefinementRegionDecodingProcedure.decode(
+                arithmeticDecoder, cx, symWidth, hcHeight,
+                sdrTemplate, false, ibo, rdx, rdy, sdrATX, sdrATY);
 
-        addSymbol(genericRefinementRegion);
+        newSymbols[amountOfDecodedSymbols] = symbol;
+        sbSymbols.add(symbol);
     }
 
     private void decodeDirectlyThroughGenericRegion(final int symWidth, final 
int hcHeight)
diff --git a/src/main/java/org/apache/pdfbox/jbig2/segments/TextRegion.java 
b/src/main/java/org/apache/pdfbox/jbig2/segments/TextRegion.java
index a460de7..f1c01e6 100644
--- a/src/main/java/org/apache/pdfbox/jbig2/segments/TextRegion.java
+++ b/src/main/java/org/apache/pdfbox/jbig2/segments/TextRegion.java
@@ -24,6 +24,7 @@ import java.util.List;
 import org.apache.pdfbox.jbig2.Bitmap;
 import org.apache.pdfbox.jbig2.Region;
 import org.apache.pdfbox.jbig2.SegmentHeader;
+import 
org.apache.pdfbox.jbig2.decoder.GenericRefinementRegionDecodingProcedure;
 import org.apache.pdfbox.jbig2.decoder.arithmetic.ArithmeticDecoder;
 import org.apache.pdfbox.jbig2.decoder.arithmetic.ArithmeticIntegerDecoder;
 import org.apache.pdfbox.jbig2.decoder.arithmetic.CX;
@@ -86,7 +87,6 @@ public class TextRegion implements Region
 
     private ArithmeticDecoder arithmeticDecoder;
     private ArithmeticIntegerDecoder integerDecoder;
-    private GenericRefinementRegion genericRefinementRegion;
 
     private CX cxIADT;
     private CX cxIAFS;
@@ -669,16 +669,20 @@ public class TextRegion implements Region
             final int genericRegionReferenceDX = (int) ((rdw >> 1) + rdx);
             final int genericRegionReferenceDY = (int) ((rdh >> 1) + rdy);
 
-            if (genericRefinementRegion == null)
-            {
-                genericRefinementRegion = new 
GenericRefinementRegion(subInputStream);
+            if (arithmeticDecoder == null) {
+                arithmeticDecoder = new ArithmeticDecoder(subInputStream);
             }
 
-            genericRefinementRegion.setParameters(cx, arithmeticDecoder, 
sbrTemplate,
-                    (int) (wo + rdw), (int) (ho + rdh), ibo, 
genericRegionReferenceDX,
-                    genericRegionReferenceDY, false, sbrATX, sbrATY);
+            if (cx == null) {
+                cx = new CX(65536, 1);
+            }
 
-            ib = genericRefinementRegion.getRegionBitmap();
+            ib = GenericRefinementRegionDecodingProcedure.decode(
+                    arithmeticDecoder, cx,
+                    (int) (wo + rdw), (int) (ho + rdh),
+                    sbrTemplate, false, ibo,
+                    genericRegionReferenceDX, genericRegionReferenceDY,
+                    sbrATX, sbrATY);
 
             /* 7 */
             if (isHuffmanEncoded)

Reply via email to