diff --git a/core/java/android/view/SurfaceSession.java b/core/java/android/view/SurfaceSession.java index 0dfd94a932194..3cf5af4846259 100644 --- a/core/java/android/view/SurfaceSession.java +++ b/core/java/android/view/SurfaceSession.java @@ -24,11 +24,11 @@ package android.view; */ public final class SurfaceSession { // Note: This field is accessed by native code. - private int mNativeClient; // SurfaceComposerClient* + private long mNativeClient; // SurfaceComposerClient* - private static native int nativeCreate(); - private static native void nativeDestroy(int ptr); - private static native void nativeKill(int ptr); + private static native long nativeCreate(); + private static native void nativeDestroy(long ptr); + private static native void nativeKill(long ptr); /** Create a new connection with the surface flinger. */ public SurfaceSession() { diff --git a/core/jni/android_view_SurfaceSession.cpp b/core/jni/android_view_SurfaceSession.cpp index 87e339c097d4c..609c565678f2f 100644 --- a/core/jni/android_view_SurfaceSession.cpp +++ b/core/jni/android_view_SurfaceSession.cpp @@ -35,22 +35,22 @@ static struct { sp android_view_SurfaceSession_getClient( JNIEnv* env, jobject surfaceSessionObj) { return reinterpret_cast( - env->GetIntField(surfaceSessionObj, gSurfaceSessionClassInfo.mNativeClient)); + env->GetLongField(surfaceSessionObj, gSurfaceSessionClassInfo.mNativeClient)); } -static jint nativeCreate(JNIEnv* env, jclass clazz) { +static jlong nativeCreate(JNIEnv* env, jclass clazz) { SurfaceComposerClient* client = new SurfaceComposerClient(); client->incStrong((void*)nativeCreate); - return reinterpret_cast(client); + return reinterpret_cast(client); } -static void nativeDestroy(JNIEnv* env, jclass clazz, jint ptr) { +static void nativeDestroy(JNIEnv* env, jclass clazz, jlong ptr) { SurfaceComposerClient* client = reinterpret_cast(ptr); client->decStrong((void*)nativeCreate); } -static void nativeKill(JNIEnv* env, jclass clazz, jint ptr) { +static void nativeKill(JNIEnv* env, jclass clazz, jlong ptr) { SurfaceComposerClient* client = reinterpret_cast(ptr); client->dispose(); } @@ -58,11 +58,11 @@ static void nativeKill(JNIEnv* env, jclass clazz, jint ptr) { static JNINativeMethod gMethods[] = { /* name, signature, funcPtr */ - { "nativeCreate", "()I", + { "nativeCreate", "()J", (void*)nativeCreate }, - { "nativeDestroy", "(I)V", + { "nativeDestroy", "(J)V", (void*)nativeDestroy }, - { "nativeKill", "(I)V", + { "nativeKill", "(J)V", (void*)nativeKill } }; @@ -72,7 +72,7 @@ int register_android_view_SurfaceSession(JNIEnv* env) { LOG_ALWAYS_FATAL_IF(res < 0, "Unable to register native methods."); jclass clazz = env->FindClass("android/view/SurfaceSession"); - gSurfaceSessionClassInfo.mNativeClient = env->GetFieldID(clazz, "mNativeClient", "I"); + gSurfaceSessionClassInfo.mNativeClient = env->GetFieldID(clazz, "mNativeClient", "J"); return 0; }