Use the new malloced info for NativeAllocationRegistry in NativeConverter
I did not measure, but the allocation is likely larger than 200 bytes
for a UConverter instance.
Bug: 138994281
Test: atest --test-mapping external/icu/android_icu4j/src/main/java/com/android/icu/charset:presubmit
Change-Id: Id1b90f555e7b5b65cafccaa45863c0b4ca6e444c
diff --git a/android_icu4j/src/main/java/com/android/icu/charset/NativeConverter.java b/android_icu4j/src/main/java/com/android/icu/charset/NativeConverter.java
index 4d8623e..39e38ff 100644
--- a/android_icu4j/src/main/java/com/android/icu/charset/NativeConverter.java
+++ b/android_icu4j/src/main/java/com/android/icu/charset/NativeConverter.java
@@ -18,8 +18,8 @@
public final class NativeConverter {
- private static final NativeAllocationRegistry registry = new NativeAllocationRegistry(
- NativeConverter.class.getClassLoader(), getNativeFinalizer(), getNativeSize());
+ private static final NativeAllocationRegistry registry = NativeAllocationRegistry
+ .createMalloced(NativeConverter.class.getClassLoader(), getNativeFinalizer());
/* package */ static native int decode(long converterHandle, byte[] input, int inEnd,
char[] output, int outEnd, int[] data, boolean flush);
@@ -82,7 +82,6 @@
private static native void setCallbackEncode(long converterHandle, int onMalformedInput, int onUnmappableInput, byte[] subBytes);
private static native long getNativeFinalizer();
- private static native long getNativeSize();
// Just the subset of error codes needed by CharsetDecoderICU/CharsetEncoderICU.
/* package */ static final int U_ZERO_ERROR = 0;
diff --git a/android_icu4j/src/main/jni/com_android_icu_charset_NativeConverter.cpp b/android_icu4j/src/main/jni/com_android_icu_charset_NativeConverter.cpp
index 26957d1..a2028e9 100644
--- a/android_icu4j/src/main/jni/com_android_icu_charset_NativeConverter.cpp
+++ b/android_icu4j/src/main/jni/com_android_icu_charset_NativeConverter.cpp
@@ -665,11 +665,6 @@
return reinterpret_cast<jlong>(&FreeNativeConverter);
}
-static jlong NativeConverter_getNativeSize(JNIEnv*, jclass) {
- // TODO: Improve estimate.
- return 200;
-}
-
static JNINativeMethod gMethods[] = {
NATIVE_METHOD(NativeConverter, charsetForName, "(Ljava/lang/String;)Ljava/nio/charset/Charset;"),
NATIVE_METHOD(NativeConverter, closeConverter, "(J)V"),
@@ -687,7 +682,6 @@
NATIVE_METHOD(NativeConverter, setCallbackDecode, "(JIILjava/lang/String;)V"),
NATIVE_METHOD(NativeConverter, setCallbackEncode, "(JII[B)V"),
NATIVE_METHOD(NativeConverter, getNativeFinalizer, "()J"),
- NATIVE_METHOD(NativeConverter, getNativeSize, "()J")
};
void register_com_android_icu_util_charset_NativeConverter(JNIEnv* env) {
jniRegisterNativeMethods(env, "com/android/icu/charset/NativeConverter", gMethods, NELEM(gMethods));