| Index: jni/JniFilterEngine.cpp |
| diff --git a/jni/JniFilterEngine.cpp b/jni/JniFilterEngine.cpp |
| index 7976902711d9e59dd5038bce35cea432d6b40876..07adbb873636eb12dc398eeeaf2a39e99735c118 100644 |
| --- a/jni/JniFilterEngine.cpp |
| +++ b/jni/JniFilterEngine.cpp |
| @@ -34,11 +34,11 @@ static jobject SubscriptionsToArrayList(JNIEnv* env, std::vector<AdblockPlus::Su |
| static AdblockPlus::FilterEngine::ContentType ConvertContentType(JNIEnv *env, |
| jobject jContentType) |
| { |
| - jclass contentTypeClass = env->GetObjectClass(jContentType); |
| - jmethodID nameMethod = env->GetMethodID(contentTypeClass, "name", |
| + JniLocalReference<jclass> contentTypeClass(env, env->GetObjectClass(jContentType)); |
| + jmethodID nameMethod = env->GetMethodID(*contentTypeClass, "name", |
| "()Ljava/lang/String;"); |
| - jstring jValue = (jstring) env->CallObjectMethod(jContentType, nameMethod); |
| - const std::string value = JniJavaToStdString(env, jValue); |
| + JniLocalReference<jstring> jValue(env, (jstring) env->CallObjectMethod(jContentType, nameMethod)); |
| + const std::string value = JniJavaToStdString(env, *jValue); |
| return AdblockPlus::FilterEngine::StringToContentType(value); |
| } |
| @@ -94,7 +94,7 @@ static jobject JNICALL JniGetListedFilters(JNIEnv* env, jclass clazz, jlong ptr) |
| for (std::vector<AdblockPlus::FilterPtr>::iterator it = filters.begin(), end = filters.end(); it != end; it++) |
| { |
| - JniAddObjectToList(env, list, NewJniFilter(env, *it)); |
| + JniAddObjectToList(env, list, *JniLocalReference<jobject>(env, NewJniFilter(env, *it))); |
| } |
| return list; |
| @@ -234,7 +234,7 @@ static jobject JNICALL JniGetElementHidingSelectors(JNIEnv* env, jclass clazz, j |
| for (std::vector<std::string>::iterator it = selectors.begin(), end = selectors.end(); it != end; it++) |
| { |
| - JniAddObjectToList(env, list, env->NewStringUTF(it->c_str())); |
| + JniAddObjectToList(env, list, *JniLocalReference<jstring>(env, env->NewStringUTF(it->c_str()))); |
| } |
| return list; |
| @@ -274,7 +274,8 @@ static jobject JNICALL JniMatchesMany(JNIEnv* env, jclass clazz, jlong ptr, jstr |
| for (jsize i = 0; i < len; i++) |
| { |
| - documentUrls.push_back(JniJavaToStdString(env, static_cast<jstring>(env->GetObjectArrayElement(jDocumentUrls, i)))); |
| + documentUrls.push_back(JniJavaToStdString(env, |
| + *JniLocalReference<jstring>(env, static_cast<jstring>(env->GetObjectArrayElement(jDocumentUrls, i))))); |
| } |
| try |