Merge "Bluetooth event loop dispatches dbus data on wakeup"
diff --git a/include/utils/String16.h b/include/utils/String16.h
index 07a0c11..9d8be38 100644
--- a/include/utils/String16.h
+++ b/include/utils/String16.h
@@ -183,7 +183,7 @@
inline String16 String16::operator+(const String16& other) const
{
- String16 tmp;
+ String16 tmp(*this);
tmp += other;
return tmp;
}
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java
index 854f96d..d6664e3 100644
--- a/services/java/com/android/server/am/ActivityManagerService.java
+++ b/services/java/com/android/server/am/ActivityManagerService.java
@@ -9692,8 +9692,10 @@
if (DEBUG_SERVICE) Slog.v(TAG, "unbindFinished in " + r
+ " at " + b + ": apps="
+ (b != null ? b.apps.size() : 0));
+
+ boolean inStopping = mStoppingServices.contains(r);
if (b != null) {
- if (b.apps.size() > 0) {
+ if (b.apps.size() > 0 && !inStopping) {
// Applications have already bound since the last
// unbind, so just rebind right here.
requestServiceBindingLocked(r, b, true);
@@ -9704,7 +9706,7 @@
}
}
- serviceDoneExecutingLocked(r, mStoppingServices.contains(r));
+ serviceDoneExecutingLocked(r, inStopping);
Binder.restoreCallingIdentity(origId);
}