Index: jni/JniLogSystem.cpp |
diff --git a/jni/JniLogSystem.cpp b/jni/JniLogSystem.cpp |
index 275b5ef85b7d0b56a91ba9a02434448db08de437..714f3189a291bf27cd756eefc4549c3dff3e69d1 100644 |
--- a/jni/JniLogSystem.cpp |
+++ b/jni/JniLogSystem.cpp |
@@ -36,12 +36,16 @@ JniLogSystemCallback::JniLogSystemCallback(JNIEnv* env, jobject callbackObject) |
{ |
} |
-void JniLogSystemCallback::operator()(AdblockPlus::LogSystem::LogLevel logLevel, const std::string& message, const std::string& source) |
+void JniLogSystemCallback::operator()(AdblockPlus::LogSystem::LogLevel logLevel, |
+ const std::string& message, const std::string& source) |
{ |
JNIEnvAcquire env(GetJavaVM()); |
- jclass clazz = env->GetObjectClass(GetCallbackObject()); |
- jmethodID method = env->GetMethodID(clazz, "logCallback", "(" TYP("LogSystem$LogLevel") "Ljava/lang/String;Ljava/lang/String;)V"); |
+ jmethodID method = env->GetMethodID( |
+ *JniLocalReference<jclass>(*env, |
+ env->GetObjectClass(GetCallbackObject())), |
+ "logCallback", |
+ "(" TYP("LogSystem$LogLevel") "Ljava/lang/String;Ljava/lang/String;)V"); |
// TODO: Set log level from Java and handle it here (to reduce C++->Java calls) |
@@ -51,34 +55,39 @@ void JniLogSystemCallback::operator()(AdblockPlus::LogSystem::LogLevel logLevel, |
switch (logLevel) |
{ |
- default: |
- case AdblockPlus::LogSystem::LOG_LEVEL_TRACE: |
- enumName = "TRACE"; |
- break; |
- case AdblockPlus::LogSystem::LOG_LEVEL_LOG: |
- enumName = "LOG"; |
- break; |
- case AdblockPlus::LogSystem::LOG_LEVEL_INFO: |
- enumName = "INFO"; |
- break; |
- case AdblockPlus::LogSystem::LOG_LEVEL_WARN: |
- enumName = "WARN"; |
- break; |
- case AdblockPlus::LogSystem::LOG_LEVEL_ERROR: |
- enumName = "ERROR"; |
- break; |
+ default: |
Felix Dahlke
2015/02/03 05:22:50
This was fine as it was actually - we don't indent
René Jeschke
2015/02/03 13:51:26
We do this in libadblockplus, the old JNI code her
Felix Dahlke
2015/02/04 04:11:50
Oops, you're right :P But still, unrelated change
René Jeschke
2015/02/04 12:02:47
Yep, you're right on this, too. Will up a 'Noissue
|
+ case AdblockPlus::LogSystem::LOG_LEVEL_TRACE: |
+ enumName = "TRACE"; |
+ break; |
+ case AdblockPlus::LogSystem::LOG_LEVEL_LOG: |
+ enumName = "LOG"; |
+ break; |
+ case AdblockPlus::LogSystem::LOG_LEVEL_INFO: |
+ enumName = "INFO"; |
+ break; |
+ case AdblockPlus::LogSystem::LOG_LEVEL_WARN: |
+ enumName = "WARN"; |
+ break; |
+ case AdblockPlus::LogSystem::LOG_LEVEL_ERROR: |
+ enumName = "ERROR"; |
+ break; |
} |
jclass enumClass = logLevelClass->Get(); |
if (enumClass) |
{ |
- jfieldID enumField = env->GetStaticFieldID(enumClass, enumName, TYP("LogSystem$LogLevel")); |
- jobject jLogLevel = env->GetStaticObjectField(enumClass, enumField); |
+ jfieldID enumField = env->GetStaticFieldID(enumClass, enumName, |
+ TYP("LogSystem$LogLevel")); |
+ JniLocalReference<jobject> jLogLevel(*env, |
+ env->GetStaticObjectField(enumClass, enumField)); |
- jstring jMessage = env->NewStringUTF(message.c_str()); |
- jstring jSource = env->NewStringUTF(source.c_str()); |
+ JniLocalReference<jstring> jMessage(*env, |
+ env->NewStringUTF(message.c_str())); |
+ JniLocalReference<jstring> jSource(*env, |
+ env->NewStringUTF(source.c_str())); |
- env->CallVoidMethod(GetCallbackObject(), method, jLogLevel, jMessage, jSource); |
+ env->CallVoidMethod(GetCallbackObject(), method, *jLogLevel, *jMessage, |
+ *jSource); |
} |
CheckAndLogJavaException(*env); |