diff options
author | Jaikumar Ganesh <jaikumar@google.com> | 2010-06-03 16:50:57 -0700 |
---|---|---|
committer | Jaikumar Ganesh <jaikumar@google.com> | 2010-06-03 16:59:01 -0700 |
commit | a7c0bdc4e46301530c89c67ec3ce6ae8df7260d7 (patch) | |
tree | 680563b1bb97a2b0ec85849fe9178d4c73cd9c79 /core/jni/android_server_BluetoothEventLoop.cpp | |
parent | c87d5849f22d805b3dde8f70f60ddfadfc7c7b9d (diff) | |
download | frameworks_base-a7c0bdc4e46301530c89c67ec3ce6ae8df7260d7.zip frameworks_base-a7c0bdc4e46301530c89c67ec3ce6ae8df7260d7.tar.gz frameworks_base-a7c0bdc4e46301530c89c67ec3ce6ae8df7260d7.tar.bz2 |
Delete local references to avoid reference table overflow.
Change-Id: I2218b97647e381bfe6d329b1b6134bb76c1832b6
Diffstat (limited to 'core/jni/android_server_BluetoothEventLoop.cpp')
-rw-r--r-- | core/jni/android_server_BluetoothEventLoop.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/core/jni/android_server_BluetoothEventLoop.cpp b/core/jni/android_server_BluetoothEventLoop.cpp index 259cc01..01b6711 100644 --- a/core/jni/android_server_BluetoothEventLoop.cpp +++ b/core/jni/android_server_BluetoothEventLoop.cpp @@ -1061,6 +1061,8 @@ void onCreatePairedDeviceResult(DBusMessage *msg, void *user, void *n) { DBusError err; dbus_error_init(&err); JNIEnv *env; + jstring addr; + nat->vm->GetEnv((void**)&env, nat->envVer); LOGV("... address = %s", address); @@ -1109,10 +1111,12 @@ void onCreatePairedDeviceResult(DBusMessage *msg, void *user, void *n) { } } + addr = env->NewStringUTF(address); env->CallVoidMethod(nat->me, method_onCreatePairedDeviceResult, - env->NewStringUTF(address), + addr, result); + env->DeleteLocalRef(addr); done: dbus_error_free(&err); free(user); @@ -1139,10 +1143,12 @@ void onCreateDeviceResult(DBusMessage *msg, void *user, void *n) { } LOG_AND_FREE_DBUS_ERROR(&err); } + jstring addr = env->NewStringUTF(address); env->CallVoidMethod(nat->me, method_onCreateDeviceResult, - env->NewStringUTF(address), + addr, result); + env->DeleteLocalRef(addr); free(user); } @@ -1163,10 +1169,12 @@ void onDiscoverServicesResult(DBusMessage *msg, void *user, void *n) { LOG_AND_FREE_DBUS_ERROR(&err); result = JNI_FALSE; } + jstring jPath = env->NewStringUTF(path); env->CallVoidMethod(nat->me, method_onDiscoverServicesResult, - env->NewStringUTF(path), + jPath, result); + env->DeleteLocalRef(jPath); free(user); } @@ -1194,10 +1202,12 @@ void onGetDeviceServiceChannelResult(DBusMessage *msg, void *user, void *n) { } done: + jstring addr = env->NewStringUTF(address); env->CallVoidMethod(nat->me, method_onGetDeviceServiceChannelResult, - env->NewStringUTF(address), + addr, channel); + env->DeleteLocalRef(addr); free(user); } #endif |