You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlgraphics.apache.org by ss...@apache.org on 2023/05/02 09:30:22 UTC

[xmlgraphics-fop] branch main updated: FOP-3132: Link against Java 8 API

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

ssteiner pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/xmlgraphics-fop.git


The following commit(s) were added to refs/heads/main by this push:
     new 3d9416baf FOP-3132: Link against Java 8 API
3d9416baf is described below

commit 3d9416baf3723ee8a7d7dd4433a781a643fe9809
Author: Simon Steiner <ss...@apache.org>
AuthorDate: Tue May 2 10:30:07 2023 +0100

    FOP-3132: Link against Java 8 API
---
 .../complexscripts/fonts/GlyphProcessingState.java |  4 ++-
 .../fonts/GlyphSubstitutionState.java              | 17 +++++++----
 .../fop/complexscripts/util/GlyphSequence.java     |  4 ++-
 .../src/main/java/org/apache/fop/fo/FOText.java    | 35 ++++++++++++----------
 .../java/org/apache/fop/fonts/MultiByteFont.java   | 13 +++++---
 5 files changed, 46 insertions(+), 27 deletions(-)

diff --git a/fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphProcessingState.java b/fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphProcessingState.java
index f7b3d5e9c..20abd1616 100644
--- a/fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphProcessingState.java
+++ b/fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphProcessingState.java
@@ -19,6 +19,7 @@
 
 package org.apache.fop.complexscripts.fonts;
 
+import java.nio.Buffer;
 import java.nio.IntBuffer;
 import java.util.ArrayList;
 import java.util.List;
@@ -935,7 +936,8 @@ public class GlyphProcessingState {
             gb.put(igs.getGlyph(i));
             al.add(igs.getAssociation(i));
         }
-        gb.flip();
+        Buffer gbBase = gb;
+        gbBase.flip();
         assert igs != null;
         if (igs.compareGlyphs(gb) != 0) {
             this.igs = new GlyphSequence(igs.getCharacters(), gb, al);
diff --git a/fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphSubstitutionState.java b/fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphSubstitutionState.java
index 0be47b8c1..788fe2574 100644
--- a/fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphSubstitutionState.java
+++ b/fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphSubstitutionState.java
@@ -19,6 +19,7 @@
 
 package org.apache.fop.complexscripts.fonts;
 
+import java.nio.Buffer;
 import java.nio.IntBuffer;
 import java.util.ArrayList;
 import java.util.List;
@@ -41,7 +42,7 @@ public class GlyphSubstitutionState extends GlyphProcessingState {
     /** alternates index */
     private int[] alternatesIndex;
     /** current output glyph sequence */
-    private IntBuffer ogb;
+    private Buffer ogb;
     /** current output glyph to character associations */
     private List oal;
     /** character association predications */
@@ -131,15 +132,19 @@ public class GlyphSubstitutionState extends GlyphProcessingState {
      */
     public void putGlyph(int glyph, CharAssociation a, Object predication) {
         if (!ogb.hasRemaining()) {
-            ogb = growBuffer(ogb);
+            ogb = growBuffer(getIntBuffer());
         }
-        ogb.put(glyph);
+        getIntBuffer().put(glyph);
         if (predications && (predication != null)) {
             a.setPredication(feature, predication);
         }
         oal.add(a);
     }
 
+    private IntBuffer getIntBuffer() {
+        return (IntBuffer) ogb;
+    }
+
     /**
      * Put (write) array of glyphs into glyph output buffer.
      * @param glyphs to write
@@ -165,7 +170,7 @@ public class GlyphSubstitutionState extends GlyphProcessingState {
         if (position > 0) {
             ogb.limit(position);
             ogb.rewind();
-            return new GlyphSequence(igs.getCharacters(), ogb, oal);
+            return new GlyphSequence(igs.getCharacters(), getIntBuffer(), oal);
         } else {
             return igs;
         }
@@ -241,12 +246,12 @@ public class GlyphSubstitutionState extends GlyphProcessingState {
         }
     }
 
-    private static IntBuffer growBuffer(IntBuffer ib) {
+    private static IntBuffer growBuffer(Buffer ib) {
         int capacity = ib.capacity();
         int capacityNew = capacity * 2;
         IntBuffer ibNew = IntBuffer.allocate(capacityNew);
         ib.rewind();
-        return ibNew.put(ib);
+        return ibNew.put((IntBuffer) ib);
     }
 
 }
diff --git a/fop-core/src/main/java/org/apache/fop/complexscripts/util/GlyphSequence.java b/fop-core/src/main/java/org/apache/fop/complexscripts/util/GlyphSequence.java
index e5cdd07f5..797fd4784 100644
--- a/fop-core/src/main/java/org/apache/fop/complexscripts/util/GlyphSequence.java
+++ b/fop-core/src/main/java/org/apache/fop/complexscripts/util/GlyphSequence.java
@@ -19,6 +19,7 @@
 
 package org.apache.fop.complexscripts.util;
 
+import java.nio.Buffer;
 import java.nio.IntBuffer;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -464,7 +465,8 @@ public class GlyphSequence implements Cloneable {
         if (lga != null) {
             gb.put(lga);
         }
-        gb.flip();
+        Buffer gbBase = gb;
+        gbBase.flip();
         return gb;
     }
 
diff --git a/fop-core/src/main/java/org/apache/fop/fo/FOText.java b/fop-core/src/main/java/org/apache/fop/fo/FOText.java
index 207c3184c..e80063d1a 100644
--- a/fop-core/src/main/java/org/apache/fop/fo/FOText.java
+++ b/fop-core/src/main/java/org/apache/fop/fo/FOText.java
@@ -20,6 +20,7 @@
 package org.apache.fop.fo;
 
 import java.awt.Color;
+import java.nio.Buffer;
 import java.nio.CharBuffer;
 import java.text.CharacterIterator;
 import java.text.StringCharacterIterator;
@@ -49,7 +50,7 @@ import org.apache.fop.util.CharUtilities;
 public class FOText extends FONode implements CharSequence, TextFragment {
 
     /** the <code>CharBuffer</code> containing the text */
-    private CharBuffer charBuffer;
+    private Buffer charBuffer;
 
     // cached iterator
     private CharacterIterator charIterator;
@@ -135,18 +136,22 @@ public class FOText extends FONode implements CharSequence, TextFragment {
                 }
                 CharBuffer newBuffer = CharBuffer.allocate(newCapacity);
                 charBuffer.rewind();
-                newBuffer.put(charBuffer);
+                newBuffer.put(getCharBuffer());
                 charBuffer = newBuffer;
             }
         }
         // extend limit to capacity
         charBuffer.limit(charBuffer.capacity());
         // append characters
-        charBuffer.put(data, start, length);
+        getCharBuffer().put(data, start, length);
         // shrink limit to position
         charBuffer.limit(charBuffer.position());
     }
 
+    private CharBuffer getCharBuffer() {
+        return (CharBuffer) charBuffer;
+    }
+
     /**
      * Return the array of characters for this instance.
      *
@@ -157,7 +162,7 @@ public class FOText extends FONode implements CharSequence, TextFragment {
             return null;
         }
         this.charBuffer.rewind();
-        return this.charBuffer.asReadOnlyBuffer().subSequence(0, this.charBuffer.limit());
+        return getCharBuffer().asReadOnlyBuffer().subSequence(0, this.charBuffer.limit());
     }
 
     /** {@inheritDoc} */
@@ -170,7 +175,7 @@ public class FOText extends FONode implements CharSequence, TextFragment {
             if (charBuffer != null) {
                 ft.charBuffer = CharBuffer.allocate(charBuffer.limit());
                 charBuffer.rewind();
-                ft.charBuffer.put(charBuffer);
+                ft.getCharBuffer().put(getCharBuffer());
                 ft.charBuffer.rewind();
             }
         }
@@ -232,7 +237,7 @@ public class FOText extends FONode implements CharSequence, TextFragment {
         char ch;
         charBuffer.rewind();
         while (charBuffer.hasRemaining()) {
-            ch = charBuffer.get();
+            ch = getCharBuffer().get();
             if (!((ch == CharUtilities.SPACE)
                     || (ch == CharUtilities.LINEFEED_CHAR)
                     || (ch == CharUtilities.CARRIAGE_RETURN)
@@ -282,12 +287,12 @@ public class FOText extends FONode implements CharSequence, TextFragment {
         }
 
         charBuffer.rewind();
-        CharBuffer tmp = charBuffer.slice();
+        CharBuffer tmp = getCharBuffer().slice();
         char c;
         int lim = charBuffer.limit();
         int pos = -1;
         while (++pos < lim) {
-            c = charBuffer.get();
+            c = getCharBuffer().get();
             switch (textTransform) {
                 case Constants.EN_UPPERCASE:
                     tmp.put(Character.toUpperCase(c));
@@ -537,7 +542,7 @@ public class FOText extends FONode implements CharSequence, TextFragment {
             if (this.currentPosition < charBuffer.limit()) {
                 this.canRemove = true;
                 this.canReplace = true;
-                return charBuffer.get(currentPosition++);
+                return getCharBuffer().get(currentPosition++);
             } else {
                 throw new NoSuchElementException();
             }
@@ -550,13 +555,13 @@ public class FOText extends FONode implements CharSequence, TextFragment {
             if (this.canRemove) {
                 charBuffer.position(currentPosition);
                 // Slice the buffer at the current position
-                CharBuffer tmp = charBuffer.slice();
+                CharBuffer tmp = getCharBuffer().slice();
                 // Reset position to before current character
                 charBuffer.position(--currentPosition);
                 if (tmp.hasRemaining()) {
                     // Transfer any remaining characters
                     charBuffer.mark();
-                    charBuffer.put(tmp);
+                    getCharBuffer().put(tmp);
                     charBuffer.reset();
                 }
                 // Decrease limit
@@ -573,7 +578,7 @@ public class FOText extends FONode implements CharSequence, TextFragment {
         public void replaceChar(char c) {
 
             if (this.canReplace) {
-                charBuffer.put(currentPosition - 1, c);
+                getCharBuffer().put(currentPosition - 1, c);
             } else {
                 throw new IllegalStateException();
             }
@@ -698,7 +703,7 @@ public class FOText extends FONode implements CharSequence, TextFragment {
         if (charBuffer == null) {
             return "";
         } else {
-            CharBuffer cb = charBuffer.duplicate();
+            Buffer cb = getCharBuffer().duplicate();
             cb.rewind();
             return cb.toString();
         }
@@ -725,12 +730,12 @@ public class FOText extends FONode implements CharSequence, TextFragment {
 
     /** {@inheritDoc} */
     public char charAt(int position) {
-        return charBuffer.get(position);
+        return getCharBuffer().get(position);
     }
 
     /** {@inheritDoc} */
     public CharSequence subSequence(int start, int end) {
-        return charBuffer.subSequence(start, end);
+        return getCharBuffer().subSequence(start, end);
     }
 
     /** {@inheritDoc} */
diff --git a/fop-core/src/main/java/org/apache/fop/fonts/MultiByteFont.java b/fop-core/src/main/java/org/apache/fop/fonts/MultiByteFont.java
index 929b4bf6f..cbaace8a2 100644
--- a/fop-core/src/main/java/org/apache/fop/fonts/MultiByteFont.java
+++ b/fop-core/src/main/java/org/apache/fop/fonts/MultiByteFont.java
@@ -21,6 +21,7 @@ package org.apache.fop.fonts;
 
 import java.awt.Rectangle;
 import java.io.InputStream;
+import java.nio.Buffer;
 import java.nio.CharBuffer;
 import java.nio.IntBuffer;
 import java.util.ArrayList;
@@ -682,8 +683,10 @@ public class MultiByteFont extends CIDFont implements Substitutable, Positionabl
             cb.put(cc);
             gb.put(gi);
         }
-        cb.flip();
-        gb.flip();
+        Buffer cbBase = cb;
+        cbBase.flip();
+        Buffer gbBase = gb;
+        gbBase.flip();
         if ((associations != null) && (associations.size() == cs.length())) {
             associations = new java.util.ArrayList(associations);
         } else {
@@ -732,7 +735,8 @@ public class MultiByteFont extends CIDFont implements Substitutable, Positionabl
             cb.put(c);
         }
 
-        cb.flip();
+        Buffer cbBase = cb;
+        cbBase.flip();
         return cb;
     }
 
@@ -799,7 +803,8 @@ public class MultiByteFont extends CIDFont implements Substitutable, Positionabl
                     nal.add(a);
                 }
             }
-            ngb.flip();
+            Buffer ngbBase = ngb;
+            ngbBase.flip();
             return new GlyphSequence(gs.getCharacters(), ngb, nal, gs.getPredications());
         } else {
             return gs;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: commits-help@xmlgraphics.apache.org