| OLD | NEW | 
|    1 /* |    1 /* | 
|    2  * This file is part of Adblock Plus <http://adblockplus.org/>, |    2  * This file is part of Adblock Plus <http://adblockplus.org/>, | 
|    3  * Copyright (C) 2006-2014 Eyeo GmbH |    3  * Copyright (C) 2006-2014 Eyeo GmbH | 
|    4  * |    4  * | 
|    5  * Adblock Plus is free software: you can redistribute it and/or modify |    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 |    6  * it under the terms of the GNU General Public License version 3 as | 
|    7  * published by the Free Software Foundation. |    7  * published by the Free Software Foundation. | 
|    8  * |    8  * | 
|    9  * Adblock Plus is distributed in the hope that it will be useful, |    9  * Adblock Plus is distributed in the hope that it will be useful, | 
|   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of |   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  123   return JniJavaToStdString(env, reinterpret_cast<jstring>(env->GetObjectField(j
     Obj, env->GetFieldID(clazz, name, "Ljava/lang/String;")))); |  123   return JniJavaToStdString(env, reinterpret_cast<jstring>(env->GetObjectField(j
     Obj, env->GetFieldID(clazz, name, "Ljava/lang/String;")))); | 
|  124 } |  124 } | 
|  125  |  125  | 
|  126 inline bool JniGetBooleanField(JNIEnv* env, jclass clazz, jobject jObj, const ch
     ar* name) |  126 inline bool JniGetBooleanField(JNIEnv* env, jclass clazz, jobject jObj, const ch
     ar* name) | 
|  127 { |  127 { | 
|  128   return env->GetBooleanField(jObj, env->GetFieldID(clazz, name, "Z")) == JNI_TR
     UE; |  128   return env->GetBooleanField(jObj, env->GetFieldID(clazz, name, "Z")) == JNI_TR
     UE; | 
|  129 } |  129 } | 
|  130  |  130  | 
|  131 inline int32_t JniGetIntField(JNIEnv* env, jclass clazz, jobject jObj, const cha
     r* name) |  131 inline int32_t JniGetIntField(JNIEnv* env, jclass clazz, jobject jObj, const cha
     r* name) | 
|  132 { |  132 { | 
|  133   return (int32_t)env->GetBooleanField(jObj, env->GetFieldID(clazz, name, "I")); |  133   return (int32_t)env->GetIntField(jObj, env->GetFieldID(clazz, name, "I")); | 
|  134 } |  134 } | 
|  135  |  135  | 
|  136 inline int64_t JniGetLongField(JNIEnv* env, jclass clazz, jobject jObj, const ch
     ar* name) |  136 inline int64_t JniGetLongField(JNIEnv* env, jclass clazz, jobject jObj, const ch
     ar* name) | 
|  137 { |  137 { | 
|  138   return (int64_t)env->GetBooleanField(jObj, env->GetFieldID(clazz, name, "J")); |  138   return (int64_t)env->GetLongField(jObj, env->GetFieldID(clazz, name, "J")); | 
|  139 } |  139 } | 
|  140  |  140  | 
|  141 inline jobject NewJniFilter(JNIEnv* env, const AdblockPlus::FilterPtr& filter) |  141 inline jobject NewJniFilter(JNIEnv* env, const AdblockPlus::FilterPtr& filter) | 
|  142 { |  142 { | 
 |  143   if (!filter.get()) | 
 |  144   { | 
 |  145     return 0; | 
 |  146   } | 
 |  147  | 
|  143   jclass clazz = env->FindClass(PKG("Filter")); |  148   jclass clazz = env->FindClass(PKG("Filter")); | 
|  144   jmethodID method = env->GetMethodID(clazz, "<init>", "(J)V"); |  149   jmethodID method = env->GetMethodID(clazz, "<init>", "(J)V"); | 
|  145   return env->NewObject(clazz, method, JniPtrToLong(new AdblockPlus::FilterPtr(f
     ilter))); |  150   return env->NewObject(clazz, method, JniPtrToLong(new AdblockPlus::FilterPtr(f
     ilter))); | 
|  146 } |  151 } | 
|  147  |  152  | 
|  148 inline jobject NewJniSubscription(JNIEnv* env, const AdblockPlus::SubscriptionPt
     r& subscription) |  153 inline jobject NewJniSubscription(JNIEnv* env, const AdblockPlus::SubscriptionPt
     r& subscription) | 
|  149 { |  154 { | 
 |  155   if (!subscription.get()) | 
 |  156   { | 
 |  157     return 0; | 
 |  158   } | 
 |  159  | 
|  150   jclass clazz = env->FindClass(PKG("Subscription")); |  160   jclass clazz = env->FindClass(PKG("Subscription")); | 
|  151   jmethodID method = env->GetMethodID(clazz, "<init>", "(J)V"); |  161   jmethodID method = env->GetMethodID(clazz, "<init>", "(J)V"); | 
|  152   return env->NewObject(clazz, method, JniPtrToLong(new AdblockPlus::Subscriptio
     nPtr(subscription))); |  162   return env->NewObject(clazz, method, JniPtrToLong(new AdblockPlus::Subscriptio
     nPtr(subscription))); | 
|  153 } |  163 } | 
|  154  |  164  | 
|  155 #define CATCH_AND_THROW(jEnv) \ |  165 #define CATCH_AND_THROW(jEnv) \ | 
|  156   catch (const std::exception& except) \ |  166   catch (const std::exception& except) \ | 
|  157   { \ |  167   { \ | 
|  158     JniThrowException(jEnv, except); \ |  168     JniThrowException(jEnv, except); \ | 
|  159   } \ |  169   } \ | 
|  160   catch (...) \ |  170   catch (...) \ | 
|  161   { \ |  171   { \ | 
|  162     JniThrowException(jEnv); \ |  172     JniThrowException(jEnv); \ | 
|  163   } |  173   } | 
|  164  |  174  | 
|  165 #define CATCH_THROW_AND_RETURN(jEnv, retVal) \ |  175 #define CATCH_THROW_AND_RETURN(jEnv, retVal) \ | 
|  166   catch (const std::exception& except) \ |  176   catch (const std::exception& except) \ | 
|  167   { \ |  177   { \ | 
|  168     JniThrowException(jEnv, except); \ |  178     JniThrowException(jEnv, except); \ | 
|  169     return retVal; \ |  179     return retVal; \ | 
|  170   } \ |  180   } \ | 
|  171   catch (...) \ |  181   catch (...) \ | 
|  172   { \ |  182   { \ | 
|  173     JniThrowException(jEnv); \ |  183     JniThrowException(jEnv); \ | 
|  174     return retVal; \ |  184     return retVal; \ | 
|  175   } |  185   } | 
|  176  |  186  | 
|  177 const std::string GetString(JNIEnv *pEnv, jstring str); |  | 
|  178  |  | 
|  179 template<class T> |  | 
|  180 T TrimString(T text) |  | 
|  181 { |  | 
|  182   // Via http://stackoverflow.com/questions/216823/whats-the-best-way-to-trim-st
     dstring |  | 
|  183   T trimmed(text); |  | 
|  184   trimmed.erase(trimmed.begin(), std::find_if(trimmed.begin(), trimmed.end(), st
     d::not1(std::ptr_fun<int, int>(std::isspace)))); |  | 
|  185   trimmed.erase(std::find_if(trimmed.rbegin(), trimmed.rend(), std::not1(std::pt
     r_fun<int, int>(std::isspace))).base(), trimmed.end()); |  | 
|  186   return trimmed; |  | 
|  187 } |  | 
|  188  |  | 
|  189 #endif |  187 #endif | 
| OLD | NEW |