In JNI, we should always call Release...(), no matter what isCopy says.

git-svn-id: svn://10.0.0.236/trunk@168099 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
pedemont%us.ibm.com
2005-01-20 23:59:10 +00:00
parent 9f240d50dd
commit 7517748139
3 changed files with 12 additions and 27 deletions

View File

@@ -619,18 +619,15 @@ ThrowException(JNIEnv* env, const nsresult aErrorCode, const char* aMessage)
nsAString*
jstring_to_nsAString(JNIEnv* env, jstring aString)
{
jboolean isCopy = JNI_FALSE;
const PRUnichar* buf = nsnull;
if (aString) {
buf = env->GetStringChars(aString, &isCopy);
buf = env->GetStringChars(aString, nsnull);
if (!buf)
return nsnull; // exception already thrown
}
nsString* str = new nsString(buf);
if (isCopy) {
env->ReleaseStringChars(aString, buf);
}
env->ReleaseStringChars(aString, buf);
// returns string, or nsnull if 'new' failed
return str;
@@ -639,18 +636,15 @@ jstring_to_nsAString(JNIEnv* env, jstring aString)
nsACString*
jstring_to_nsACString(JNIEnv* env, jstring aString)
{
jboolean isCopy = JNI_FALSE;
const char* buf = nsnull;
if (aString) {
buf = env->GetStringUTFChars(aString, &isCopy);
buf = env->GetStringUTFChars(aString, nsnull);
if (!buf)
return nsnull; // exception already thrown
}
nsCString* str = new nsCString(buf);
if (isCopy) {
env->ReleaseStringUTFChars(aString, buf);
}
env->ReleaseStringUTFChars(aString, buf);
// returns string, or nsnull if 'new' failed
return str;