summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--WebKit/android/WebCoreSupport/UrlInterceptResponse.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/WebKit/android/WebCoreSupport/UrlInterceptResponse.cpp b/WebKit/android/WebCoreSupport/UrlInterceptResponse.cpp
index ab00ba6..1126609 100644
--- a/WebKit/android/WebCoreSupport/UrlInterceptResponse.cpp
+++ b/WebKit/android/WebCoreSupport/UrlInterceptResponse.cpp
@@ -101,10 +101,16 @@ UrlInterceptResponse::UrlInterceptResponse(JNIEnv* env, jobject response) {
jstring mimeStr = (jstring) env->GetObjectField(response, mimeType);
jstring encodingStr = (jstring) env->GetObjectField(response, encoding);
- m_mimeType.assign(env->GetStringUTFChars(mimeStr, NULL),
- env->GetStringUTFLength(mimeStr));
- m_encoding.assign(env->GetStringUTFChars(encodingStr, NULL),
- env->GetStringUTFLength(encodingStr));
+ if (mimeStr) {
+ m_mimeType.assign(env->GetStringUTFChars(mimeStr, NULL),
+ env->GetStringUTFLength(mimeStr));
+ env->ReleaseStringUTFChars(mimeStr, NULL);
+ }
+ if (encodingStr) {
+ m_encoding.assign(env->GetStringUTFChars(encodingStr, NULL),
+ env->GetStringUTFLength(encodingStr));
+ env->ReleaseStringUTFChars(encodingStr, NULL);
+ }
env->DeleteLocalRef(javaResponse);
env->DeleteLocalRef(mimeStr);