You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by te...@apache.org on 2006/10/02 15:18:17 UTC
svn commit: r452026 - in /incubator/harmony/enhanced/classlib/trunk/modules:
archive/src/main/native/archive/shared/jarfile.c
archive/src/main/native/archive/shared/zip.c
luni/src/main/native/luni/shared/file.c
Author: tellison
Date: Mon Oct 2 06:18:16 2006
New Revision: 452026
URL: http://svn.apache.org/viewvc?view=rev&rev=452026
Log:
Fix JNI warnings, dangerous use of weak reference.
Modified:
incubator/harmony/enhanced/classlib/trunk/modules/archive/src/main/native/archive/shared/jarfile.c
incubator/harmony/enhanced/classlib/trunk/modules/archive/src/main/native/archive/shared/zip.c
incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/native/luni/shared/file.c
Modified: incubator/harmony/enhanced/classlib/trunk/modules/archive/src/main/native/archive/shared/jarfile.c
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/archive/src/main/native/archive/shared/jarfile.c?view=diff&rev=452026&r1=452025&r2=452026
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/archive/src/main/native/archive/shared/jarfile.c (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/archive/src/main/native/archive/shared/jarfile.c Mon Oct 2 06:18:16 2006
@@ -55,6 +55,11 @@
}
javaClass = JCL_CACHE_GET (env, CLS_java_util_zip_ZipEntry);
+ javaClass = (*env)->NewLocalRef(env, javaClass);
+ if (javaClass == NULL) {
+ return NULL;
+ }
+
mid = JCL_CACHE_GET (env, MID_java_util_zip_ZipEntry_init);
java_ZipEntry = ((*env)->NewObject (env, javaClass, mid, entryName, NULL,
extra,
@@ -152,6 +157,11 @@
goto cleanup;
}
javaClass = JCL_CACHE_GET (env, CLS_java_util_zip_ZipEntry);
+ javaClass = (*env)->NewLocalRef(env, javaClass);
+ if (javaClass == NULL) {
+ result = NULL;
+ goto cleanup;
+ }
result = ((*env)->NewObjectArray (env, resultCount, javaClass, NULL));
if (((*env)->ExceptionCheck (env)))
{
Modified: incubator/harmony/enhanced/classlib/trunk/modules/archive/src/main/native/archive/shared/zip.c
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/archive/src/main/native/archive/shared/zip.c?view=diff&rev=452026&r1=452025&r2=452026
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/archive/src/main/native/archive/shared/zip.c (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/archive/src/main/native/archive/shared/zip.c Mon Oct 2 06:18:16 2006
@@ -155,6 +155,11 @@
}
entryClass = JCL_CACHE_GET (env, CLS_java_util_zip_ZipEntry);
+ entryClass = (*env)->NewLocalRef(env, entryClass);
+ if (entryClass == NULL) {
+ zip_freeZipEntry (PORTLIB, &zipEntry);
+ return (jobject) NULL;
+ }
mid = JCL_CACHE_GET (env, MID_java_util_zip_ZipEntry_init);
/* Build a new ZipEntry from the C struct */
java_ZipEntry = ((*env)->NewObject (env, entryClass, mid, entryName, NULL,
@@ -227,11 +232,12 @@
jmethodID mid;
jfieldID descriptorFID;
jclass javaClass;
+ jclass weakJavaClass;
JCLZipFileLink *zipfileHandles;
javaClass = (*env)->FindClass (env, "java/util/zip/ZipEntry");
- javaClass = (*env)->NewWeakGlobalRef (env, javaClass);
- if (!javaClass)
+ weakJavaClass = (*env)->NewWeakGlobalRef (env, javaClass);
+ if (!weakJavaClass)
return;
mid =
((*env)->
@@ -239,7 +245,7 @@
"(Ljava/lang/String;Ljava/lang/String;[BJJJJIJJ)V"));
if (!mid)
return;
- JCL_CACHE_SET (env, CLS_java_util_zip_ZipEntry, javaClass);
+ JCL_CACHE_SET (env, CLS_java_util_zip_ZipEntry, weakJavaClass);
JCL_CACHE_SET (env, MID_java_util_zip_ZipEntry_init, mid);
descriptorFID = (*env)->GetFieldID (env, cls, "descriptor", "J");
@@ -351,6 +357,10 @@
}
javaClass = JCL_CACHE_GET (env, CLS_java_util_zip_ZipEntry);
+ javaClass = (*env)->NewLocalRef(env, javaClass);
+ if (javaClass == NULL) {
+ return NULL;
+ }
mid = JCL_CACHE_GET (env, MID_java_util_zip_ZipEntry_init);
java_ZipEntry = ((*env)->NewObject (env, javaClass, mid, entryName, NULL, /* comment */
extra,
Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/native/luni/shared/file.c
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/native/luni/shared/file.c?view=diff&rev=452026&r1=452025&r2=452026
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/native/luni/shared/file.c (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/native/luni/shared/file.c Mon Oct 2 06:18:16 2006
@@ -70,6 +70,8 @@
I_32 numEntries = 0;
UDATA findhandle;
jarray answer = NULL;
+ jclass javaClass = NULL;
+
dirList = NULL;
currentEntry = NULL;
@@ -123,9 +125,13 @@
if (numEntries == 0)
return NULL;
+ javaClass = JCL_CACHE_GET (env, CLS_array_of_byte);
+ javaClass = (*env)->NewLocalRef(env, javaClass);
+ if (javaClass == NULL) {
+ return NULL;
+ }
answer =
- (*env)->NewObjectArray (env, numEntries,
- JCL_CACHE_GET (env, CLS_array_of_byte), NULL);
+ (*env)->NewObjectArray (env, numEntries, javaClass, NULL);
cleanup:
for (index = 0; index < numEntries; index++)
{