| Index: base/android/jni_android.h
|
| diff --git a/base/android/jni_android.h b/base/android/jni_android.h
|
| index faf53b7400bbdecc305db289f470f05f70ab6251..8f72e78c8d8d36e23848d7f88607f31362782983 100644
|
| --- a/base/android/jni_android.h
|
| +++ b/base/android/jni_android.h
|
| @@ -53,6 +53,15 @@ BASE_EXPORT bool IsVMInitialized();
|
| BASE_EXPORT void InitApplicationContext(JNIEnv* env,
|
| const JavaRef<jobject>& context);
|
|
|
| +// Initializes the global fallback ClassLoader used by the GetClass and
|
| +// LazyGetClass methods. This is needed because JNI will use the base
|
| +// ClassLoader when there is no Java code on the stack. The base ClassLoader
|
| +// doesn't know about any of the application classes and will fail to lookup
|
| +// anything other than system classes.
|
| +// The method must be called after base:: JNI registration had completed from a
|
| +// thread that already has access to the right ClassLoader.
|
| +BASE_EXPORT void InitFallbackClassLoader(JNIEnv* env);
|
| +
|
| // Gets a global ref to the application context set with
|
| // InitApplicationContext(). Ownership is retained by the function - the caller
|
| // must NOT release it.
|
| @@ -66,6 +75,17 @@ const BASE_EXPORT jobject GetApplicationContext();
|
| BASE_EXPORT ScopedJavaLocalRef<jclass> GetClass(JNIEnv* env,
|
| const char* class_name);
|
|
|
| +// The method will initialize |atomic_class_id| to contain a global ref to the
|
| +// class. And will return that ref on subsequent calls. It's the caller's
|
| +// responsibility to release the ref when it is no longer needed.
|
| +// The caller is responsible to zero-initialize |atomic_method_id|.
|
| +// It's fine to simultaneously call this on multiple threads referencing the
|
| +// same |atomic_method_id|.
|
| +BASE_EXPORT jclass LazyGetClass(
|
| + JNIEnv* env,
|
| + const char* class_name,
|
| + base::subtle::AtomicWord* atomic_class_id);
|
| +
|
| // This class is a wrapper for JNIEnv Get(Static)MethodID.
|
| class BASE_EXPORT MethodID {
|
| public:
|
|
|