< prev index next >

src/java.base/share/classes/java/lang/Integer.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 1994, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -173,17 +173,17 @@
         int charPos = 32;
         if (!negative) {
             i = -i;
         }
         while (i <= -radix) {
-            StringUTF16.putChar(buf, charPos--, digits[-(i % radix)]);
+            StringUTF16.Trusted.putChar(buf, charPos--, digits[-(i % radix)]);
             i = i / radix;
         }
-        StringUTF16.putChar(buf, charPos, digits[-i]);
+        StringUTF16.Trusted.putChar(buf, charPos, digits[-i]);
 
         if (negative) {
-            StringUTF16.putChar(buf, --charPos, '-');
+            StringUTF16.Trusted.putChar(buf, --charPos, '-');
         }
         return StringUTF16.newString(buf, charPos, (33 - charPos));
     }
 
     /**

@@ -384,16 +384,16 @@
             val >>>= shift;
         } while (charPos > offset);
     }
 
     /** byte[]/UTF16 version    */
-    static void formatUnsignedIntUTF16(int val, int shift, byte[] buf, int offset, int len) {
+    private static void formatUnsignedIntUTF16(int val, int shift, byte[] buf, int offset, int len) {
         int charPos = offset + len;
         int radix = 1 << shift;
         int mask = radix - 1;
         do {
-            StringUTF16.putChar(buf, --charPos, Integer.digits[val & mask]);
+            StringUTF16.Trusted.putChar(buf, --charPos, Integer.digits[val & mask]);
             val >>>= shift;
         } while (charPos > offset);
     }
 
     static final byte[] DigitTens = {

@@ -440,11 +440,11 @@
             byte[] buf = new byte[size];
             getChars(i, size, buf);
             return new String(buf, LATIN1);
         } else {
             byte[] buf = new byte[size * 2];
-            getCharsUTF16(i, size, buf);
+            StringUTF16.Trusted.getChars(i, size, buf);
             return new String(buf, UTF16);
         }
     }
 
     /**

@@ -514,53 +514,10 @@
             buf[--charPos] = (byte)'-';
         }
         return charPos;
     }
 
-    /**
-     * This is a variant of {@link #getChars(int, int, byte[])}, but for
-     * UTF-16 coder.
-     *
-     * @param i     value to convert
-     * @param index next index, after the least significant digit
-     * @param buf   target buffer, UTF16-coded.
-     * @return index of the most significant digit or minus sign, if present
-     */
-    static int getCharsUTF16(int i, int index, byte[] buf) {
-        int q, r;
-        int charPos = index;
-
-        boolean negative = (i < 0);
-        if (!negative) {
-            i = -i;
-        }
-
-        // Get 2 digits/iteration using ints
-        while (i <= -100) {
-            q = i / 100;
-            r = (q * 100) - i;
-            i = q;
-            StringUTF16.putChar(buf, --charPos, DigitOnes[r]);
-            StringUTF16.putChar(buf, --charPos, DigitTens[r]);
-        }
-
-        // We know there are at most two digits left at this point.
-        q = i / 10;
-        r = (q * 10) - i;
-        StringUTF16.putChar(buf, --charPos, '0' + r);
-
-        // Whatever left is the remaining digit.
-        if (q < 0) {
-            StringUTF16.putChar(buf, --charPos, '0' - q);
-        }
-
-        if (negative) {
-            StringUTF16.putChar(buf, --charPos, '-');
-        }
-        return charPos;
-    }
-
     // Left here for compatibility reasons, see JDK-8143900.
     static final int [] sizeTable = { 9, 99, 999, 9999, 99999, 999999, 9999999,
                                       99999999, 999999999, Integer.MAX_VALUE };
 
     /**
< prev index next >