|
@@ -33,7 +33,6 @@ package com.google.protobuf;
|
|
|
import java.lang.reflect.Field;
|
|
|
import java.nio.Buffer;
|
|
|
import java.nio.ByteBuffer;
|
|
|
-import java.nio.ByteOrder;
|
|
|
import java.security.AccessController;
|
|
|
import java.security.PrivilegedExceptionAction;
|
|
|
import java.util.logging.Level;
|
|
@@ -72,8 +71,6 @@ final class UnsafeUtil {
|
|
|
|
|
|
private static final long BUFFER_ADDRESS_OFFSET = fieldOffset(bufferAddressField());
|
|
|
|
|
|
- private static final long STRING_VALUE_OFFSET = fieldOffset(stringValueField());
|
|
|
-
|
|
|
private UnsafeUtil() {}
|
|
|
|
|
|
static boolean hasUnsafeArrayOperations() {
|
|
@@ -149,10 +146,6 @@ final class UnsafeUtil {
|
|
|
return MEMORY_ACCESSOR.getObject(target, offset);
|
|
|
}
|
|
|
|
|
|
- static void putObject(Object target, long offset, Object value) {
|
|
|
- MEMORY_ACCESSOR.putObject(target, offset, value);
|
|
|
- }
|
|
|
-
|
|
|
static byte getByte(byte[] target, long index) {
|
|
|
return MEMORY_ACCESSOR.getByte(target, BYTE_ARRAY_BASE_OFFSET + index);
|
|
|
}
|
|
@@ -262,26 +255,6 @@ final class UnsafeUtil {
|
|
|
return MEMORY_ACCESSOR.getLong(buffer, BUFFER_ADDRESS_OFFSET);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * Returns a new {@link String} backed by the given {@code chars}. The char array should not
|
|
|
- * be mutated any more after calling this function.
|
|
|
- */
|
|
|
- static String moveToString(char[] chars) {
|
|
|
- if (STRING_VALUE_OFFSET == -1) {
|
|
|
- // In the off-chance that this JDK does not implement String as we'd expect, just do a copy.
|
|
|
- return new String(chars);
|
|
|
- }
|
|
|
- final String str;
|
|
|
- try {
|
|
|
- str = (String) UNSAFE.allocateInstance(String.class);
|
|
|
- } catch (InstantiationException e) {
|
|
|
- // This should never happen, but return a copy as a fallback just in case.
|
|
|
- return new String(chars);
|
|
|
- }
|
|
|
- putObject(str, STRING_VALUE_OFFSET, chars);
|
|
|
- return str;
|
|
|
- }
|
|
|
-
|
|
|
static Object getStaticObject(Field field) {
|
|
|
return MEMORY_ACCESSOR.getStaticObject(field);
|
|
|
}
|