Merge "Graphics: Make SurfaceTexture compile-time initializable"

This commit is contained in:
Andreas Gampe
2017-02-21 23:34:33 +00:00
committed by Android (Google) Code Review
2 changed files with 5 additions and 8 deletions

View File

@@ -34,6 +34,7 @@
#include "jni.h"
#include "JNIHelp.h"
#include "ScopedLocalRef.h"
// ----------------------------------------------------------------------------
@@ -385,7 +386,6 @@ static jboolean SurfaceTexture_isReleased(JNIEnv* env, jobject thiz)
// ----------------------------------------------------------------------------
static const JNINativeMethod gSurfaceTextureMethods[] = {
{"nativeClassInit", "()V", (void*)SurfaceTexture_classInit },
{"nativeInit", "(ZIZLjava/lang/ref/WeakReference;)V", (void*)SurfaceTexture_init },
{"nativeFinalize", "()V", (void*)SurfaceTexture_finalize },
{"nativeSetDefaultBufferSize", "(II)V", (void*)SurfaceTexture_setDefaultBufferSize },
@@ -401,6 +401,10 @@ static const JNINativeMethod gSurfaceTextureMethods[] = {
int register_android_graphics_SurfaceTexture(JNIEnv* env)
{
// Cache some fields.
ScopedLocalRef<jclass> klass(env, FindClassOrDie(env, kSurfaceTextureClassPathName));
SurfaceTexture_classInit(env, klass.get());
return RegisterMethodsOrDie(env, kSurfaceTextureClassPathName, gSurfaceTextureMethods,
NELEM(gSurfaceTextureMethods));
}

View File

@@ -403,11 +403,4 @@ public class SurfaceTexture {
private native int nativeGetQueuedCount();
private native void nativeRelease();
private native boolean nativeIsReleased();
/*
* We use a class initializer to allow the native code to cache some
* field offsets.
*/
private static native void nativeClassInit();
static { nativeClassInit(); }
}