summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--luni/src/main/java/java/io/ObjectStreamClass.java4
-rw-r--r--luni/src/main/java/java/util/zip/Deflater.java7
-rw-r--r--luni/src/main/java/java/util/zip/Inflater.java8
-rw-r--r--luni/src/main/native/java_io_ObjectStreamClass.c39
-rw-r--r--luni/src/main/native/java_util_zip_Deflater.cpp20
-rw-r--r--luni/src/main/native/java_util_zip_Inflater.cpp26
6 files changed, 26 insertions, 78 deletions
diff --git a/luni/src/main/java/java/io/ObjectStreamClass.java b/luni/src/main/java/java/io/ObjectStreamClass.java
index 0e3a4a1..deaa8af 100644
--- a/luni/src/main/java/java/io/ObjectStreamClass.java
+++ b/luni/src/main/java/java/io/ObjectStreamClass.java
@@ -73,11 +73,7 @@ public class ObjectStreamClass implements Serializable {
static final Class<?>[] UNSHARED_PARAM_TYPES;
- private static native void oneTimeInitialization();
-
static {
- oneTimeInitialization();
-
CLASS_MODIFIERS_MASK = Modifier.PUBLIC | Modifier.FINAL
| Modifier.INTERFACE | Modifier.ABSTRACT;
FIELD_MODIFIERS_MASK = Modifier.PUBLIC | Modifier.PRIVATE
diff --git a/luni/src/main/java/java/util/zip/Deflater.java b/luni/src/main/java/java/util/zip/Deflater.java
index 41a337c..c0c62d9 100644
--- a/luni/src/main/java/java/util/zip/Deflater.java
+++ b/luni/src/main/java/java/util/zip/Deflater.java
@@ -108,17 +108,10 @@ public class Deflater {
*/
private static final int FINISH = 4;
- // Fill in the JNI id caches
- private static native void oneTimeInitialization();
-
// A stub buffer used when deflate() called while inputBuffer has not been
// set.
private static final byte[] STUB_INPUT_BUFFER = new byte[0];
- static {
- oneTimeInitialization();
- }
-
private int flushParm = NO_FLUSH;
private boolean finished;
diff --git a/luni/src/main/java/java/util/zip/Inflater.java b/luni/src/main/java/java/util/zip/Inflater.java
index 4921d3d..03eed76 100644
--- a/luni/src/main/java/java/util/zip/Inflater.java
+++ b/luni/src/main/java/java/util/zip/Inflater.java
@@ -37,14 +37,6 @@ import java.io.FileDescriptor; // android-only
* @see Deflater
*/
public class Inflater {
-
- static {
- oneTimeInitialization();
- }
-
- // Fill in the JNI id caches
- private static native void oneTimeInitialization();
-
private boolean finished; // Set by the inflateImpl native
int inLength;
diff --git a/luni/src/main/native/java_io_ObjectStreamClass.c b/luni/src/main/native/java_io_ObjectStreamClass.c
index fb290ed..fc442b3 100644
--- a/luni/src/main/native/java_io_ObjectStreamClass.c
+++ b/luni/src/main/native/java_io_ObjectStreamClass.c
@@ -86,42 +86,17 @@ static jobject java_io_osc_getConstructorSignature(JNIEnv* env,
constructorClass, mid);
}
-static jboolean java_io_osc_hasClinit(JNIEnv* env, jclass clazz __attribute__ ((unused)),
- jobject targetClass) {
- jmethodID mid = (*env)->GetStaticMethodID(env, targetClass,
- "<clinit>", "()V");
+static jboolean java_io_osc_hasClinit(JNIEnv * env, jclass clazz, jobject targetClass) {
+ jmethodID mid = (*env)->GetStaticMethodID(env, targetClass, "<clinit>", "()V");
(*env)->ExceptionClear(env);
-
- /*
- * Can I just return mid and rely on typecast to convert to jboolean ?
- * Safe implementation for now
- */
- if(mid == 0) {
- /* No <clinit>... */
- return (jboolean) 0;
- } else {
- return (jboolean) 1;
- }
-}
-
-static void java_io_osc_oneTimeInitialization(JNIEnv* env __attribute__ ((unused)), jclass clazz __attribute__ ((unused))) {
- // dummy to stay compatible to harmony
+ return (mid != 0);
}
static JNINativeMethod gMethods[] = {
- { "getFieldSignature",
- "(Ljava/lang/reflect/Field;)Ljava/lang/String;",
- (void*) java_io_osc_getFieldSignature },
- { "getMethodSignature",
- "(Ljava/lang/reflect/Method;)Ljava/lang/String;",
- (void*) java_io_osc_getMethodSignature },
- { "getConstructorSignature",
- "(Ljava/lang/reflect/Constructor;)Ljava/lang/String;",
- (void*) java_io_osc_getConstructorSignature },
- { "hasClinit", "(Ljava/lang/Class;)Z",
- (void*) java_io_osc_hasClinit },
- { "oneTimeInitialization", "()V",
- (void*) java_io_osc_oneTimeInitialization }
+ { "getConstructorSignature", "(Ljava/lang/reflect/Constructor;)Ljava/lang/String;", (void*) java_io_osc_getConstructorSignature },
+ { "getFieldSignature", "(Ljava/lang/reflect/Field;)Ljava/lang/String;", (void*) java_io_osc_getFieldSignature },
+ { "getMethodSignature", "(Ljava/lang/reflect/Method;)Ljava/lang/String;", (void*) java_io_osc_getMethodSignature },
+ { "hasClinit", "(Ljava/lang/Class;)Z", (void*) java_io_osc_hasClinit },
};
int register_java_io_ObjectStreamClass(JNIEnv* env) {
return jniRegisterNativeMethods(env, "java/io/ObjectStreamClass", gMethods, NELEM(gMethods));
diff --git a/luni/src/main/native/java_util_zip_Deflater.cpp b/luni/src/main/native/java_util_zip_Deflater.cpp
index d0bd53a..c449087 100644
--- a/luni/src/main/native/java_util_zip_Deflater.cpp
+++ b/luni/src/main/native/java_util_zip_Deflater.cpp
@@ -128,25 +128,21 @@ static void Deflater_setLevelsImpl(JNIEnv* env, jobject, int level, int strategy
}
}
-static void Deflater_oneTimeInitialization(JNIEnv* env, jclass clazz) {
- memset(&gCachedFields, 0, sizeof(gCachedFields));
- gCachedFields.inRead = env->GetFieldID(clazz, "inRead", "I");
- gCachedFields.finished = env->GetFieldID(clazz, "finished", "Z");
-}
-
static JNINativeMethod gMethods[] = {
- { "setDictionaryImpl", "([BIIJ)V", (void*) Deflater_setDictionaryImpl },
- { "getTotalInImpl", "(J)J", (void*) Deflater_getTotalInImpl },
- { "getTotalOutImpl", "(J)J", (void*) Deflater_getTotalOutImpl },
- { "getAdlerImpl", "(J)I", (void*) Deflater_getAdlerImpl },
{ "createStream", "(IIZ)J", (void*) Deflater_createStream },
- { "setInputImpl", "([BIIJ)V", (void*) Deflater_setInputImpl },
{ "deflateImpl", "([BIIJI)I", (void*) Deflater_deflateImpl },
{ "endImpl", "(J)V", (void*) Deflater_endImpl },
+ { "getAdlerImpl", "(J)I", (void*) Deflater_getAdlerImpl },
+ { "getTotalInImpl", "(J)J", (void*) Deflater_getTotalInImpl },
+ { "getTotalOutImpl", "(J)J", (void*) Deflater_getTotalOutImpl },
{ "resetImpl", "(J)V", (void*) Deflater_resetImpl },
+ { "setDictionaryImpl", "([BIIJ)V", (void*) Deflater_setDictionaryImpl },
+ { "setInputImpl", "([BIIJ)V", (void*) Deflater_setInputImpl },
{ "setLevelsImpl", "(IIJ)V", (void*) Deflater_setLevelsImpl },
- { "oneTimeInitialization", "()V", (void*) Deflater_oneTimeInitialization },
};
int register_java_util_zip_Deflater(JNIEnv* env) {
+ jclass deflaterClass = env->FindClass("java/util/zip/Deflater");
+ gCachedFields.finished = env->GetFieldID(deflaterClass, "finished", "Z");
+ gCachedFields.inRead = env->GetFieldID(deflaterClass, "inRead", "I");
return jniRegisterNativeMethods(env, "java/util/zip/Deflater", gMethods, NELEM(gMethods));
}
diff --git a/luni/src/main/native/java_util_zip_Inflater.cpp b/luni/src/main/native/java_util_zip_Inflater.cpp
index a488eee..e07de72 100644
--- a/luni/src/main/native/java_util_zip_Inflater.cpp
+++ b/luni/src/main/native/java_util_zip_Inflater.cpp
@@ -139,26 +139,22 @@ static jlong Inflater_getTotalInImpl(JNIEnv*, jobject, jlong handle) {
return toNativeZipStream(handle)->stream.total_in;
}
-static void Inflater_oneTimeInitialization(JNIEnv * env, jclass clazz) {
- memset(&gCachedFields, 0, sizeof(gCachedFields));
- gCachedFields.inRead = env->GetFieldID(clazz, "inRead", "I");
- gCachedFields.finished = env->GetFieldID(clazz, "finished", "Z");
- gCachedFields.needsDictionary = env->GetFieldID(clazz, "needsDictionary", "Z");
-}
-
static JNINativeMethod gMethods[] = {
{ "createStream", "(Z)J", (void*) Inflater_createStream },
- { "setInputImpl", "([BIIJ)V", (void*) Inflater_setInputImpl },
- { "setFileInputImpl", "(Ljava/io/FileDescriptor;JIJ)I", (void*) Inflater_setFileInputImpl },
- { "inflateImpl", "([BIIJ)I", (void*) Inflater_inflateImpl },
- { "getAdlerImpl", "(J)I", (void*) Inflater_getAdlerImpl },
{ "endImpl", "(J)V", (void*) Inflater_endImpl },
- { "setDictionaryImpl", "([BIIJ)V", (void*) Inflater_setDictionaryImpl },
- { "resetImpl", "(J)V", (void*) Inflater_resetImpl },
- { "getTotalOutImpl", "(J)J", (void*) Inflater_getTotalOutImpl },
+ { "getAdlerImpl", "(J)I", (void*) Inflater_getAdlerImpl },
{ "getTotalInImpl", "(J)J", (void*) Inflater_getTotalInImpl },
- { "oneTimeInitialization", "()V", (void*) Inflater_oneTimeInitialization },
+ { "getTotalOutImpl", "(J)J", (void*) Inflater_getTotalOutImpl },
+ { "inflateImpl", "([BIIJ)I", (void*) Inflater_inflateImpl },
+ { "resetImpl", "(J)V", (void*) Inflater_resetImpl },
+ { "setDictionaryImpl", "([BIIJ)V", (void*) Inflater_setDictionaryImpl },
+ { "setFileInputImpl", "(Ljava/io/FileDescriptor;JIJ)I", (void*) Inflater_setFileInputImpl },
+ { "setInputImpl", "([BIIJ)V", (void*) Inflater_setInputImpl },
};
int register_java_util_zip_Inflater(JNIEnv* env) {
+ jclass inflaterClass = env->FindClass("java/util/zip/Inflater");
+ gCachedFields.finished = env->GetFieldID(inflaterClass, "finished", "Z");
+ gCachedFields.inRead = env->GetFieldID(inflaterClass, "inRead", "I");
+ gCachedFields.needsDictionary = env->GetFieldID(inflaterClass, "needsDictionary", "Z");
return jniRegisterNativeMethods(env, "java/util/zip/Inflater", gMethods, NELEM(gMethods));
}