|
From: Michael R. <mr...@us...> - 2004-08-16 11:49:21
|
Update of /cvsroot/openorb/native/src/native In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22907/src/native Modified Files: rmiiiop.c Log Message: Readded the ReleaseStringUTFChars calls to avoid memory leaks Index: rmiiiop.c =================================================================== RCS file: /cvsroot/openorb/native/src/native/rmiiiop.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- rmiiiop.c 27 Feb 2004 11:34:43 -0000 1.6 +++ rmiiiop.c 16 Aug 2004 11:49:10 -0000 1.7 @@ -38,7 +38,12 @@ { const char* strFieldName = (*env)->GetStringUTFChars(env, fName, 0L); const char* strFieldSig = (*env)->GetStringUTFChars(env, fSig, 0L); + jfieldID fieldID = (*env)->GetFieldID(env, clz, strFieldName, strFieldSig); + + (*env)->ReleaseStringUTFChars(env, fName, strFieldName); + (*env)->ReleaseStringUTFChars(env, fSig, strFieldSig); + (*env)->SetObjectField(env, obj, fieldID, val); } @@ -52,7 +57,12 @@ { const char* strFieldName = (*env)->GetStringUTFChars(env, fName, 0L); const char* strFieldSig = (*env)->GetStringUTFChars(env, fSig, 0L); + jfieldID fieldID = (*env)->GetFieldID(env, clz, strFieldName, strFieldSig); + + (*env)->ReleaseStringUTFChars(env, fName, strFieldName); + (*env)->ReleaseStringUTFChars(env, fSig, strFieldSig); + (*env)->SetBooleanField(env, obj, fieldID, val); } @@ -66,7 +76,12 @@ { const char* strFieldName = (*env)->GetStringUTFChars(env, fName, 0L); const char* strFieldSig = (*env)->GetStringUTFChars(env, fSig, 0L); + jfieldID fieldID = (*env)->GetFieldID(env, clz, strFieldName, strFieldSig); + + (*env)->ReleaseStringUTFChars(env, fName, strFieldName); + (*env)->ReleaseStringUTFChars(env, fSig, strFieldSig); + (*env)->SetByteField(env, obj, fieldID, val); } @@ -80,7 +95,12 @@ { const char* strFieldName = (*env)->GetStringUTFChars(env, fName, 0L); const char* strFieldSig = (*env)->GetStringUTFChars(env, fSig, 0L); + jfieldID fieldID = (*env)->GetFieldID(env, clz, strFieldName, strFieldSig); + + (*env)->ReleaseStringUTFChars(env, fName, strFieldName); + (*env)->ReleaseStringUTFChars(env, fSig, strFieldSig); + (*env)->SetCharField(env, obj, fieldID, val); } @@ -94,7 +114,12 @@ { const char* strFieldName = (*env)->GetStringUTFChars(env, fName, 0L); const char* strFieldSig = (*env)->GetStringUTFChars(env, fSig, 0L); + jfieldID fieldID = (*env)->GetFieldID(env, clz, strFieldName, strFieldSig); + + (*env)->ReleaseStringUTFChars(env, fName, strFieldName); + (*env)->ReleaseStringUTFChars(env, fSig, strFieldSig); + (*env)->SetShortField(env, obj, fieldID, val); } @@ -108,7 +133,12 @@ { const char* strFieldName = (*env)->GetStringUTFChars(env, fName, 0L); const char* strFieldSig = (*env)->GetStringUTFChars(env, fSig, 0L); + jfieldID fieldID = (*env)->GetFieldID(env, clz, strFieldName, strFieldSig); + + (*env)->ReleaseStringUTFChars(env, fName, strFieldName); + (*env)->ReleaseStringUTFChars(env, fSig, strFieldSig); + (*env)->SetIntField(env, obj, fieldID, val); } @@ -122,7 +152,12 @@ { const char* strFieldName = (*env)->GetStringUTFChars(env, fName, 0L); const char* strFieldSig = (*env)->GetStringUTFChars(env, fSig, 0L); + jfieldID fieldID = (*env)->GetFieldID(env, clz, strFieldName, strFieldSig); + + (*env)->ReleaseStringUTFChars(env, fName, strFieldName); + (*env)->ReleaseStringUTFChars(env, fSig, strFieldSig); + (*env)->SetLongField(env, obj, fieldID, val); } @@ -136,7 +171,12 @@ { const char* strFieldName = (*env)->GetStringUTFChars(env, fName, 0L); const char* strFieldSig = (*env)->GetStringUTFChars(env, fSig, 0L); + jfieldID fieldID = (*env)->GetFieldID(env, clz, strFieldName, strFieldSig); + + (*env)->ReleaseStringUTFChars(env, fName, strFieldName); + (*env)->ReleaseStringUTFChars(env, fSig, strFieldSig); + (*env)->SetFloatField(env, obj, fieldID, val); } @@ -150,7 +190,12 @@ { const char* strFieldName = (*env)->GetStringUTFChars(env, fName, 0L); const char* strFieldSig = (*env)->GetStringUTFChars(env, fSig, 0L); + jfieldID fieldID = (*env)->GetFieldID(env, clz, strFieldName, strFieldSig); + + (*env)->ReleaseStringUTFChars(env, fName, strFieldName); + (*env)->ReleaseStringUTFChars(env, fSig, strFieldSig); + (*env)->SetDoubleField(env, obj, fieldID, val); } |