| Index: libadblockplus-android/jni/Utils.h | 
| diff --git a/libadblockplus-android/jni/Utils.h b/libadblockplus-android/jni/Utils.h | 
| deleted file mode 100644 | 
| index 13c762731161f6c192a505ad25a3954f0376d64d..0000000000000000000000000000000000000000 | 
| --- a/libadblockplus-android/jni/Utils.h | 
| +++ /dev/null | 
| @@ -1,219 +0,0 @@ | 
| -/* | 
| - * This file is part of Adblock Plus <https://adblockplus.org/>, | 
| - * Copyright (C) 2006-present eyeo GmbH | 
| - * | 
| - * Adblock Plus is free software: you can redistribute it and/or modify | 
| - * it under the terms of the GNU General Public License version 3 as | 
| - * published by the Free Software Foundation. | 
| - * | 
| - * Adblock Plus is distributed in the hope that it will be useful, | 
| - * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
| - * GNU General Public License for more details. | 
| - * | 
| - * You should have received a copy of the GNU General Public License | 
| - * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
| - */ | 
| - | 
| -#ifndef UTILS_H | 
| -#define UTILS_H | 
| - | 
| -#include <string> | 
| -#include <algorithm> | 
| -#include <jni.h> | 
| -#include <stdexcept> | 
| -#include <memory> | 
| - | 
| -#include <AdblockPlus.h> | 
| - | 
| -#define PKG(x) "org/adblockplus/libadblockplus/" x | 
| -#define TYP(x) "L" PKG(x) ";" | 
| - | 
| -#define ABP_JNI_VERSION JNI_VERSION_1_6 | 
| - | 
| -void JniUtils_OnLoad(JavaVM* vm, JNIEnv* env, void* reserved); | 
| - | 
| -void JniUtils_OnUnload(JavaVM* vm, JNIEnv* env, void* reserved); | 
| - | 
| -void JniThrowException(JNIEnv* env, const std::string& message); | 
| - | 
| -void JniThrowException(JNIEnv* env, const std::exception& e); | 
| - | 
| -void JniThrowException(JNIEnv* env); | 
| - | 
| -class JNIEnvAcquire; | 
| - | 
| -/** | 
| - * This class is _NOT_ thread safe! | 
| - */ | 
| -template<typename T> | 
| -class JniLocalReference | 
| -{ | 
| -public: | 
| -  JniLocalReference(JNIEnv* jniEnv, T object) | 
| -      : jniEnv(jniEnv), object(object) | 
| -  { | 
| - | 
| -  } | 
| - | 
| -  JniLocalReference(const JniLocalReference<T>& other); | 
| - | 
| -  ~JniLocalReference() | 
| -  { | 
| -    jniEnv->DeleteLocalRef(object); | 
| -  } | 
| - | 
| -  T operator*() | 
| -  { | 
| -    return object; | 
| -  } | 
| - | 
| -  T Get() | 
| -  { | 
| -    return object; | 
| -  } | 
| - | 
| -private: | 
| -  JNIEnv* jniEnv; | 
| -  T object; | 
| -}; | 
| - | 
| -class JNIEnvAcquire | 
| -{ | 
| -public: | 
| -  JNIEnvAcquire(JavaVM* javaVM); | 
| -  ~JNIEnvAcquire(); | 
| - | 
| -  JNIEnv* operator*() | 
| -  { | 
| -    return jniEnv; | 
| -  } | 
| - | 
| -  JNIEnv* operator->() | 
| -  { | 
| -    return jniEnv; | 
| -  } | 
| - | 
| -private: | 
| -  JavaVM* javaVM; | 
| -  JNIEnv* jniEnv; | 
| -  int attachmentStatus; | 
| -}; | 
| - | 
| -template<typename T> | 
| -class JniGlobalReference | 
| -{ | 
| -public: | 
| -  JniGlobalReference(JNIEnv* env, T reference) | 
| -  { | 
| -    env->GetJavaVM(&javaVM); | 
| -    this->reference = static_cast<T>(env->NewGlobalRef(static_cast<jobject>(reference))); | 
| -  } | 
| - | 
| -  ~JniGlobalReference() | 
| -  { | 
| -    JNIEnvAcquire env(javaVM); | 
| -    env->DeleteGlobalRef(static_cast<jobject>(reference)); | 
| -  } | 
| - | 
| -  JniGlobalReference(const JniGlobalReference& other); | 
| -  JniGlobalReference& operator=(const JniGlobalReference& other); | 
| - | 
| -  T Get() | 
| -  { | 
| -    return reference; | 
| -  } | 
| - | 
| -  typedef std::shared_ptr<JniGlobalReference<T> > Ptr; | 
| - | 
| -private: | 
| -  T reference; | 
| -  JavaVM* javaVM; | 
| -}; | 
| - | 
| -inline void* JniLongToPtr(jlong value) | 
| -{ | 
| -  return reinterpret_cast<void*>((size_t)value); | 
| -} | 
| - | 
| -inline jlong JniPtrToLong(void* ptr) | 
| -{ | 
| -  return (jlong)reinterpret_cast<size_t>(ptr); | 
| -} | 
| - | 
| -// TODO: It's feeling a bit dirty casting to shared_ptr<T: JsValue> directly, so maybe | 
| -// implement a special cast functions that first reinterpret_casts to shared_ptr<JsValue> and then | 
| -// dynamic_casts to shared_ptr<T: JsValue> ... also as the same inheritance is mirrored on the Java | 
| -// side (and Java will throw a class cast exception on error) this shouldn't be an issue (TM) | 
| -template<typename T> | 
| -inline T* JniLongToTypePtr(jlong value) | 
| -{ | 
| -  return reinterpret_cast<T*>((size_t)value); | 
| -} | 
| - | 
| -std::string JniJavaToStdString(JNIEnv* env, jstring str); | 
| -jstring JniStdStringToJava(JNIEnv* env, std::string str); | 
| -bool stringBeginsWith(const std::string& string, const std::string& beginning); | 
| - | 
| -jmethodID JniGetAddToListMethod(JNIEnv* env, jobject list); | 
| - | 
| -void JniAddObjectToList(JNIEnv* env, jobject list, jmethodID addMethod, jobject value); | 
| - | 
| -void JniAddObjectToList(JNIEnv* env, jobject list, jobject value); | 
| - | 
| -inline std::string JniGetStringField(JNIEnv* env, jclass clazz, jobject jObj, const char* name) | 
| -{ | 
| -  return JniJavaToStdString(env, reinterpret_cast<jstring>(env->GetObjectField(jObj, env->GetFieldID(clazz, name, "Ljava/lang/String;")))); | 
| -} | 
| - | 
| -inline bool JniGetBooleanField(JNIEnv* env, jclass clazz, jobject jObj, const char* name) | 
| -{ | 
| -  return env->GetBooleanField(jObj, env->GetFieldID(clazz, name, "Z")) == JNI_TRUE; | 
| -} | 
| - | 
| -inline int32_t JniGetIntField(JNIEnv* env, jclass clazz, jobject jObj, const char* name) | 
| -{ | 
| -  return (int32_t)env->GetIntField(jObj, env->GetFieldID(clazz, name, "I")); | 
| -} | 
| - | 
| -inline int64_t JniGetLongField(JNIEnv* env, jclass clazz, jobject jObj, const char* name) | 
| -{ | 
| -  return (int64_t)env->GetLongField(jObj, env->GetFieldID(clazz, name, "J")); | 
| -} | 
| - | 
| -inline jobjectArray JniGetStringArrayField(JNIEnv* env, jclass clazz, jobject jObj, const char* name) | 
| -{ | 
| -  return (jobjectArray)env->GetObjectField(jObj, env->GetFieldID(clazz, name, "[Ljava/lang/String;")); | 
| -} | 
| - | 
| -jobject NewJniArrayList(JNIEnv* env); | 
| - | 
| -jobject NewJniFilter(JNIEnv* env, AdblockPlus::Filter&& filter); | 
| - | 
| -jobject NewJniSubscription(JNIEnv* env, AdblockPlus::Subscription&& subscription); | 
| - | 
| -jobject NewJniNotification(JNIEnv* env, AdblockPlus::Notification&& notification); | 
| - | 
| -#define CATCH_AND_THROW(jEnv) \ | 
| -  catch (const std::exception& except) \ | 
| -  { \ | 
| -    JniThrowException(jEnv, except); \ | 
| -  } \ | 
| -  catch (...) \ | 
| -  { \ | 
| -    JniThrowException(jEnv); \ | 
| -  } | 
| - | 
| -#define CATCH_THROW_AND_RETURN(jEnv, retVal) \ | 
| -  catch (const std::exception& except) \ | 
| -  { \ | 
| -    JniThrowException(jEnv, except); \ | 
| -    return retVal; \ | 
| -  } \ | 
| -  catch (...) \ | 
| -  { \ | 
| -    JniThrowException(jEnv); \ | 
| -    return retVal; \ | 
| -  } | 
| - | 
| -#endif | 
|  |