summaryrefslogtreecommitdiffstats
path: root/core/jni/android_app_NativeActivity.cpp
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2013-08-15 11:50:02 -0700
committerJeff Sharkey <jsharkey@android.com>2013-08-15 12:04:37 -0700
commite0475c828773aae42bf6bf54422df996d6b0fcef (patch)
tree127cb2c8f303731bfcecb5ebb6c83c62d29199ab /core/jni/android_app_NativeActivity.cpp
parent2241d45c68739e5bdf187ba3325ee237ef143e21 (diff)
downloadframeworks_base-e0475c828773aae42bf6bf54422df996d6b0fcef.zip
frameworks_base-e0475c828773aae42bf6bf54422df996d6b0fcef.tar.gz
frameworks_base-e0475c828773aae42bf6bf54422df996d6b0fcef.tar.bz2
Gracefully handle missing directories.
Bug: 10295932 Change-Id: I9d18682d0ba57bf7f77d043ee8dab286ee80ba2a
Diffstat (limited to 'core/jni/android_app_NativeActivity.cpp')
-rw-r--r--core/jni/android_app_NativeActivity.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/core/jni/android_app_NativeActivity.cpp b/core/jni/android_app_NativeActivity.cpp
index f768ce8..5418006 100644
--- a/core/jni/android_app_NativeActivity.cpp
+++ b/core/jni/android_app_NativeActivity.cpp
@@ -306,19 +306,23 @@ loadNativeCode_native(JNIEnv* env, jobject clazz, jstring path, jstring funcName
code->internalDataPath = code->internalDataPathObj.string();
env->ReleaseStringUTFChars(internalDataDir, dirStr);
- dirStr = env->GetStringUTFChars(externalDataDir, NULL);
- code->externalDataPathObj = dirStr;
+ if (externalDataDir != NULL) {
+ dirStr = env->GetStringUTFChars(externalDataDir, NULL);
+ code->externalDataPathObj = dirStr;
+ env->ReleaseStringUTFChars(externalDataDir, dirStr);
+ }
code->externalDataPath = code->externalDataPathObj.string();
- env->ReleaseStringUTFChars(externalDataDir, dirStr);
code->sdkVersion = sdkVersion;
code->assetManager = assetManagerForJavaObject(env, jAssetMgr);
- dirStr = env->GetStringUTFChars(obbDir, NULL);
- code->obbPathObj = dirStr;
+ if (obbDir != NULL) {
+ dirStr = env->GetStringUTFChars(obbDir, NULL);
+ code->obbPathObj = dirStr;
+ env->ReleaseStringUTFChars(obbDir, dirStr);
+ }
code->obbPath = code->obbPathObj.string();
- env->ReleaseStringUTFChars(obbDir, dirStr);
jbyte* rawSavedState = NULL;
jsize rawSavedSize = 0;