Index: libadblockplus-android/jni/Utils.cpp
diff --git a/libadblockplus-android/jni/Utils.cpp b/libadblockplus-android/jni/Utils.cpp
deleted file mode 100644
index 124abfe44b6bd0322a278f0b52434a76103e6057..0000000000000000000000000000000000000000
--- a/libadblockplus-android/jni/Utils.cpp
+++ /dev/null
@@ -1,193 +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/>.
- */
-
-#include <string>
-
-#include "Utils.h"
-
-// precached in JNI_OnLoad and released in JNI_OnUnload
-JniGlobalReference<jclass>* arrayListClass;
-jmethodID  arrayListCtor;
-
-JniGlobalReference<jclass>* filterClass;
-jmethodID filterCtor;
-
-JniGlobalReference<jclass>* subscriptionClass;
-jmethodID subscriptionCtor;
-
-JniGlobalReference<jclass>* notificationClass;
-jmethodID notificationCtor;
-
-JniGlobalReference<jclass>* exceptionClass;
-
-void JniUtils_OnLoad(JavaVM* vm, JNIEnv* env, void* reserved)
-{
-  arrayListClass = new JniGlobalReference<jclass>(env, env->FindClass("java/util/ArrayList"));
-  arrayListCtor = env->GetMethodID(arrayListClass->Get(), "<init>", "()V");
-
-  filterClass = new JniGlobalReference<jclass>(env, env->FindClass(PKG("Filter")));
-  filterCtor = env->GetMethodID(filterClass->Get(), "<init>", "(J)V");
-
-  subscriptionClass = new JniGlobalReference<jclass>(env, env->FindClass(PKG("Subscription")));
-  subscriptionCtor = env->GetMethodID(subscriptionClass->Get(), "<init>", "(J)V");
-
-  notificationClass = new JniGlobalReference<jclass>(env, env->FindClass(PKG("Notification")));
-  notificationCtor = env->GetMethodID(notificationClass->Get(), "<init>", "(J)V");
-
-  exceptionClass = new JniGlobalReference<jclass>(env, env->FindClass(PKG("AdblockPlusException")));
-}
-
-void JniUtils_OnUnload(JavaVM* vm, JNIEnv* env, void* reserved)
-{
-  if (arrayListClass)
-  {
-    delete arrayListClass;
-    arrayListClass = NULL;
-  }
-
-  if (filterClass)
-  {
-    delete filterClass;
-    filterClass = NULL;
-  }
-
-  if (subscriptionClass)
-  {
-    delete subscriptionClass;
-    subscriptionClass = NULL;
-  }
-
-  if (notificationClass)
-  {
-    delete notificationClass;
-    notificationClass = NULL;
-  }
-
-  if (exceptionClass)
-  {
-    delete exceptionClass;
-    exceptionClass = NULL;
-  }
-}
-
-std::string JniJavaToStdString(JNIEnv* env, jstring str)
-{
-  if (!str)
-  {
-    return std::string();
-  }
-
-  const char* cStr = env->GetStringUTFChars(str, 0);
-  std::string ret(cStr);
-  env->ReleaseStringUTFChars(str, cStr);
-
-  return ret;
-}
-
-jstring JniStdStringToJava(JNIEnv* env, std::string str)
-{
-  return env->NewStringUTF(str.c_str());
-}
-
-bool stringBeginsWith(const std::string& string, const std::string& beginning)
-{
-  return string.compare(0, beginning.length(), beginning) == 0;
-}
-
-jobject NewJniArrayList(JNIEnv* env)
-{
-  return env->NewObject(arrayListClass->Get(), arrayListCtor);
-}
-
-jmethodID JniGetAddToListMethod(JNIEnv* env, jobject list)
-{
-  JniLocalReference<jclass> clazz(env, env->GetObjectClass(list));
-  return env->GetMethodID(*clazz, "add", "(Ljava/lang/Object;)Z");
-}
-
-void JniAddObjectToList(JNIEnv* env, jobject list, jmethodID addMethod, jobject value)
-{
-  env->CallBooleanMethod(list, addMethod, value);
-}
-
-void JniAddObjectToList(JNIEnv* env, jobject list, jobject value)
-{
-  jmethodID addMethod = JniGetAddToListMethod(env, list);
-  JniAddObjectToList(env, list, addMethod, value);
-}
-
-void JniThrowException(JNIEnv* env, const std::string& message)
-{
-  env->ThrowNew(exceptionClass->Get(), message.c_str());
-}
-
-void JniThrowException(JNIEnv* env, const std::exception& e)
-{
-  JniThrowException(env, e.what());
-}
-
-void JniThrowException(JNIEnv* env)
-{
-  JniThrowException(env, "Unknown exception from libadblockplus");
-}
-
-JNIEnvAcquire::JNIEnvAcquire(JavaVM* javaVM)
-  : javaVM(javaVM), jniEnv(0), attachmentStatus(0)
-{
-  attachmentStatus = javaVM->GetEnv((void **)&jniEnv, ABP_JNI_VERSION);
-  if (attachmentStatus == JNI_EDETACHED)
-  {
-    if (javaVM->AttachCurrentThread(&jniEnv, 0))
-    {
-      // This one is FATAL, we can't recover from this (because without a JVM we're dead), so
-      // throwing a runtime_exception in a ctor can be tolerated here IMHO
-      throw std::runtime_error("Failed to get JNI environment");
-    }
-  }
-}
-
-JNIEnvAcquire::~JNIEnvAcquire()
-{
-  if (attachmentStatus == JNI_EDETACHED)
-  {
-    javaVM->DetachCurrentThread();
-  }
-}
-
-template<typename T>
-static jobject NewJniObject(JNIEnv* env, T&& value, jclass clazz, jmethodID ctor)
-{
-  return env->NewObject(clazz, ctor, JniPtrToLong(new T(std::forward<T>(value))));
-}
-
-jobject NewJniFilter(JNIEnv* env, AdblockPlus::Filter&& filter)
-{
-  return NewJniObject<AdblockPlus::Filter>(
-    env, std::move(filter), filterClass->Get(), filterCtor);
-}
-
-jobject NewJniSubscription(JNIEnv* env, AdblockPlus::Subscription&& subscription)
-{
-  return NewJniObject<AdblockPlus::Subscription>(
-    env, std::move(subscription), subscriptionClass->Get(), subscriptionCtor);
-}
-
-jobject NewJniNotification(JNIEnv* env, AdblockPlus::Notification&& notification)
-{
-  return NewJniObject<AdblockPlus::Notification>(
-    env, std::move(notification), notificationClass->Get(), notificationCtor);
-}
