Index: webrtc/modules/utility/source/jvm_android.cc |
diff --git a/webrtc/modules/utility/source/jvm_android.cc b/webrtc/modules/utility/source/jvm_android.cc |
index 9d08688700748b0fce3f0defbd3e9b7810448e60..d432a063a46dc941461c804d2a96d8b98b95170d 100644 |
--- a/webrtc/modules/utility/source/jvm_android.cc |
+++ b/webrtc/modules/utility/source/jvm_android.cc |
@@ -217,10 +217,21 @@ std::string JNIEnvironment::JavaToStdString(const jstring& j_string) { |
} |
// static |
-void JVM::Initialize(JavaVM* jvm, jobject context) { |
+void JVM::Initialize(JavaVM* jvm) { |
ALOGD("JVM::Initialize%s", GetThreadInfo().c_str()); |
RTC_CHECK(!g_jvm); |
- g_jvm = new JVM(jvm, context); |
+ g_jvm = new JVM(jvm); |
+} |
+ |
+void JVM::Initialize(JavaVM* jvm, jobject context) { |
+ Initialize(jvm); |
+ |
+ // Pass in the context to the new ContextUtils class. |
+ JNIEnv* jni = g_jvm->jni(); |
+ jclass context_utils = FindClass(jni, "org/webrtc/ContextUtils"); |
+ jmethodID initialize_method = jni->GetStaticMethodID( |
+ context_utils, "initialize", "(Landroid/content/Context;)V"); |
+ jni->CallStaticVoidMethod(context_utils, initialize_method, context); |
} |
// static |
@@ -237,11 +248,9 @@ JVM* JVM::GetInstance() { |
return g_jvm; |
} |
-JVM::JVM(JavaVM* jvm, jobject context) |
- : jvm_(jvm) { |
+JVM::JVM(JavaVM* jvm) : jvm_(jvm) { |
ALOGD("JVM::JVM%s", GetThreadInfo().c_str()); |
RTC_CHECK(jni()) << "AttachCurrentThread() must be called on this thread."; |
- context_ = NewGlobalRef(jni(), context); |
LoadClasses(jni()); |
} |
@@ -249,7 +258,6 @@ JVM::~JVM() { |
ALOGD("JVM::~JVM%s", GetThreadInfo().c_str()); |
RTC_DCHECK(thread_checker_.CalledOnValidThread()); |
FreeClassReferences(jni()); |
- DeleteGlobalRef(jni(), context_); |
} |
std::unique_ptr<JNIEnvironment> JVM::environment() { |