Permalink
Browse files

Merge pull request #883 from ehooi/master

fixed #1216:fix JNI leaks
  • Loading branch information...
2 parents a511432 + a0c7b11 commit e465fd9a9839c3160ad919a2c63a511dc52e9e06 @minggo minggo committed May 3, 2012
@@ -60,13 +60,9 @@ extern "C"
void Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInsertText(JNIEnv* env, jobject thiz, jstring text)
{
- jboolean isCopy = 0;
- const char* pszText = env->GetStringUTFChars(text, &isCopy);
- if (isCopy)
- {
- cocos2d::CCIMEDispatcher::sharedDispatcher()->dispatchInsertText(pszText, strlen(pszText));
- env->ReleaseStringUTFChars(text, pszText);
- }
+ const char* pszText = env->GetStringUTFChars(text, NULL);
+ cocos2d::CCIMEDispatcher::sharedDispatcher()->dispatchInsertText(pszText, strlen(pszText));
+ env->ReleaseStringUTFChars(text, pszText);
}
void Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeDeleteBackward(JNIEnv* env, jobject thiz)
@@ -161,18 +161,14 @@ extern "C"
{
JNIEnv *env = 0;
- jboolean isCopy;
if (! getEnv(&env))
{
return 0;
}
- const char* chars = env->GetStringUTFChars(jstr, &isCopy);
+ const char* chars = env->GetStringUTFChars(jstr, NULL);
string ret(chars);
- if (isCopy)
- {
- env->ReleaseStringUTFChars(jstr, chars);
- }
+ env->ReleaseStringUTFChars(jstr, chars);
return ret;
}
@@ -123,12 +123,8 @@ extern "C"
//////////////////////////////////////////////////////////////////////////
void Java_org_cocos2dx_lib_Cocos2dxActivity_nativeSetPaths(JNIEnv* env, jobject thiz, jstring apkPath)
{
- const char* str;
- jboolean isCopy;
- str = env->GetStringUTFChars(apkPath, &isCopy);
- if (isCopy) {
- cocos2d::CCFileUtils::setResourcePath(str);
- env->ReleaseStringUTFChars(apkPath, str);
- }
+ const char* str = env->GetStringUTFChars(apkPath, NULL);
+ cocos2d::CCFileUtils::setResourcePath(str);
+ env->ReleaseStringUTFChars(apkPath, str);
}
}
@@ -53,6 +53,7 @@ extern "C"
t.env->DeleteLocalRef(t.classID);
CCString *ret = new CCString(JniHelper::jstring2string(str).c_str());
ret->autorelease();
+ t.env->DeleteLocalRef(str);
LOGD("package name %s", ret->m_sString.c_str());
@@ -78,6 +79,7 @@ extern "C"
t.env->DeleteLocalRef(t.classID);
CCString *ret = new CCString(JniHelper::jstring2string(str).c_str());
ret->autorelease();
+ t.env->DeleteLocalRef(str);
LOGD("language name %s", ret.c_str());

0 comments on commit e465fd9

Please sign in to comment.