From 13442d397b8a8e5c8c95bb525fa0491d0ad1599b Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 7 Oct 2013 16:35:05 +0200 Subject: [PATCH] Allow null strings in LpConfig.getString --- coreapi/linphonecore_jni.cc | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 23d32d13b..9384d3dd1 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -3122,13 +3122,21 @@ extern "C" void Java_org_linphone_core_LpConfigImpl_setString(JNIEnv *env, jobje extern "C" jstring Java_org_linphone_core_LpConfigImpl_getString(JNIEnv *env, jobject thiz, jlong lpc, jstring section, jstring key, jstring defaultValue) { - const char *csection = env->GetStringUTFChars(section, NULL); + const char *csection = env->GetStringUTFChars(section, NULL); const char *ckey = env->GetStringUTFChars(key, NULL); - const char *cvalue = env->GetStringUTFChars(defaultValue, NULL); - const char *returnValue = lp_config_get_string((LpConfig *)lpc, csection, ckey, cvalue); + const char *cvalue; + if (defaultValue == NULL) { + cvalue = NULL; + } else { + cvalue = env->GetStringUTFChars(defaultValue, NULL); + } + + const char *returnValue = lp_config_get_string((LpConfig *)lpc, csection, ckey, cvalue); + env->ReleaseStringUTFChars(section, csection); env->ReleaseStringUTFChars(key, ckey); - env->ReleaseStringUTFChars(defaultValue, cvalue); + if (cvalue) + env->ReleaseStringUTFChars(defaultValue, cvalue); return returnValue ? env->NewStringUTF(returnValue) : NULL; } extern "C" void Java_org_linphone_core_LpConfigImpl_setIntRange(JNIEnv *env, jobject thiz, jlong lpc,