summaryrefslogtreecommitdiffstats
path: root/core/jni/android_server_BluetoothEventLoop.cpp
diff options
context:
space:
mode:
authorCharles Lu <ChangYanLu@motorola.com>2009-08-07 11:00:49 +0800
committerJaikumar Ganesh <jaikumar@google.com>2009-08-07 10:17:23 -0700
commitc98719313ba87b2736ae3ca6522e5d707654250a (patch)
tree7801d683df9938f2af107603b17411dbaba3bf37 /core/jni/android_server_BluetoothEventLoop.cpp
parent9488437b4f55c425b0168d612d729427b19b85ad (diff)
downloadframeworks_base-c98719313ba87b2736ae3ca6522e5d707654250a.zip
frameworks_base-c98719313ba87b2736ae3ca6522e5d707654250a.tar.gz
frameworks_base-c98719313ba87b2736ae3ca6522e5d707654250a.tar.bz2
Fix the scanning panic issue
Phone panics while streaming over A2DP and scanning for new device BluetoothEventLoop should delete reference
Diffstat (limited to 'core/jni/android_server_BluetoothEventLoop.cpp')
-rw-r--r--core/jni/android_server_BluetoothEventLoop.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/core/jni/android_server_BluetoothEventLoop.cpp b/core/jni/android_server_BluetoothEventLoop.cpp
index 4a13e80..527bf07 100644
--- a/core/jni/android_server_BluetoothEventLoop.cpp
+++ b/core/jni/android_server_BluetoothEventLoop.cpp
@@ -711,6 +711,7 @@ static DBusHandlerResult event_filter(DBusConnection *conn, DBusMessage *msg,
method_onDeviceFound,
env->NewStringUTF(c_address),
str_array);
+ env->DeleteLocalRef(str_array);
} else
LOG_AND_FREE_DBUS_ERROR_WITH_MSG(&err, msg);
return DBUS_HANDLER_RESULT_HANDLED;
@@ -774,6 +775,7 @@ static DBusHandlerResult event_filter(DBusConnection *conn, DBusMessage *msg,
env->CallVoidMethod(nat->me,
method_onPropertyChanged,
str_array);
+ env->DeleteLocalRef(str_array);
} else LOG_AND_FREE_DBUS_ERROR_WITH_MSG(&err, msg);
return DBUS_HANDLER_RESULT_HANDLED;
} else if (dbus_message_is_signal(msg,
@@ -786,6 +788,7 @@ static DBusHandlerResult event_filter(DBusConnection *conn, DBusMessage *msg,
method_onDevicePropertyChanged,
env->NewStringUTF(remote_device_path),
str_array);
+ env->DeleteLocalRef(str_array);
} else LOG_AND_FREE_DBUS_ERROR_WITH_MSG(&err, msg);
return DBUS_HANDLER_RESULT_HANDLED;