| OLD | NEW | 
| (Empty) |  | 
 |   1 /* | 
 |   2  * This file is part of Adblock Plus <http://adblockplus.org/>, | 
 |   3  * Copyright (C) 2006-2014 Eyeo GmbH | 
 |   4  * | 
 |   5  * Adblock Plus is free software: you can redistribute it and/or modify | 
 |   6  * it under the terms of the GNU General Public License version 3 as | 
 |   7  * published by the Free Software Foundation. | 
 |   8  * | 
 |   9  * Adblock Plus is distributed in the hope that it will be useful, | 
 |  10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |  12  * GNU General Public License for more details. | 
 |  13  * | 
 |  14  * You should have received a copy of the GNU General Public License | 
 |  15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
 |  16  */ | 
 |  17  | 
 |  18 #include "JniCallbacks.h" | 
 |  19  | 
 |  20 static jlong JNICALL JniCtor(JNIEnv* env, jclass clazz, jobject callbackObject) | 
 |  21 { | 
 |  22   try | 
 |  23   { | 
 |  24     return JniPtrToLong(new JniEventCallback(env, callbackObject)); | 
 |  25   } | 
 |  26   CATCH_THROW_AND_RETURN(env, 0) | 
 |  27 } | 
 |  28  | 
 |  29 static void JNICALL JniDtor(JNIEnv* env, jclass clazz, jlong ptr) | 
 |  30 { | 
 |  31   delete JniLongToTypePtr<JniEventCallback>(ptr); | 
 |  32 } | 
 |  33  | 
 |  34 JniEventCallback::JniEventCallback(JNIEnv* env, jobject callbackObject) | 
 |  35   : JniCallbackBase(env, callbackObject) | 
 |  36 { | 
 |  37 } | 
 |  38  | 
 |  39 void JniEventCallback::Callback(AdblockPlus::JsValueList& params) | 
 |  40 { | 
 |  41   JNIEnvAcquire env(GetJavaVM()); | 
 |  42  | 
 |  43   jclass clazz = env->GetObjectClass(GetCallbackObject()); | 
 |  44   jmethodID method = env->GetMethodID(clazz, "eventCallback", "(Ljava/util/List;
    )V"); | 
 |  45  | 
 |  46   if (method) | 
 |  47   { | 
 |  48     jobject jsList = JniJsValueListToArrayList(*env, params); | 
 |  49     env->CallVoidMethod(GetCallbackObject(), method, jsList); | 
 |  50   } | 
 |  51 } | 
 |  52  | 
 |  53 static JNINativeMethod methods[] = | 
 |  54 { | 
 |  55   { (char*)"ctor", (char*)"(Ljava/lang/Object;)J", (void*)JniCtor }, | 
 |  56   { (char*)"dtor", (char*)"(J)V", (void*)JniDtor } | 
 |  57 }; | 
 |  58  | 
 |  59 extern "C" JNIEXPORT void JNICALL Java_org_adblockplus_libadblockplus_EventCallb
    ack_registerNatives(JNIEnv *env, jclass clazz) | 
 |  60 { | 
 |  61   env->RegisterNatives(clazz, methods, sizeof(methods) / sizeof(methods[0])); | 
 |  62 } | 
 |  63  | 
| OLD | NEW |