Merge "Compile-time tuning: register/bb utilities" into dalvik-dev
diff --git a/runtime/debugger.cc b/runtime/debugger.cc
index e01857f..88269e5 100644
--- a/runtime/debugger.cc
+++ b/runtime/debugger.cc
@@ -3459,11 +3459,13 @@
     char* end;
     size_t value = strtoul(allocRecordMaxString, &end, 10);
     if (*end != '\0') {
-      ALOGE("Ignoring %s '%s' --- invalid", propertyName, allocRecordMaxString);
+      LOG(ERROR) << "Ignoring  " << propertyName << " '" << allocRecordMaxString
+                 << "' --- invalid";
       return kDefaultNumAllocRecords;
     }
     if (!IsPowerOfTwo(value)) {
-      ALOGE("Ignoring %s '%s' --- not power of two", propertyName, allocRecordMaxString);
+      LOG(ERROR) << "Ignoring  " << propertyName << " '" << allocRecordMaxString
+                 << "' --- not power of two";
       return kDefaultNumAllocRecords;
     }
     return value;
diff --git a/runtime/instrumentation.cc b/runtime/instrumentation.cc
index fe38d32..3787e1c 100644
--- a/runtime/instrumentation.cc
+++ b/runtime/instrumentation.cc
@@ -44,7 +44,7 @@
 // Do we want to deoptimize for method entry and exit listeners or just try to intercept
 // invocations? Deoptimization forces all code to run in the interpreter and considerably hurts the
 // application's performance.
-static constexpr bool kDeoptimizeForAccurateMethodEntryExitListeners = true;
+static constexpr bool kDeoptimizeForAccurateMethodEntryExitListeners = false;
 
 static bool InstallStubsClassVisitor(mirror::Class* klass, void* arg)
     SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) {
diff --git a/runtime/monitor.cc b/runtime/monitor.cc
index 66c51e6..92e6541 100644
--- a/runtime/monitor.cc
+++ b/runtime/monitor.cc
@@ -260,8 +260,7 @@
   if (!Runtime::Current()->IsStarted()) {
     std::ostringstream ss;
     self->Dump(ss);
-    std::string str(ss.str());
-    LOG(ERROR) << "IllegalMonitorStateException: " << str;
+    LOG(ERROR) << self->GetException(NULL)->Dump() << "\n" << ss.str();
   }
   va_end(args);
 }
diff --git a/runtime/native/dalvik_system_Zygote.cc b/runtime/native/dalvik_system_Zygote.cc
index 4108559..2acacc9 100644
--- a/runtime/native/dalvik_system_Zygote.cc
+++ b/runtime/native/dalvik_system_Zygote.cc
@@ -340,13 +340,10 @@
 
     // /mnt/shell/emulated/0
     std::string source_user(StringPrintf("%s/%d", source, user_id));
-    // /mnt/shell/emulated/obb
-    std::string source_obb(StringPrintf("%s/obb", source));
     // /storage/emulated/0
     std::string target_user(StringPrintf("%s/%d", target, user_id));
 
     if (fs_prepare_dir(source_user.c_str(), 0000, 0, 0) == -1
-        || fs_prepare_dir(source_obb.c_str(), 0000, 0, 0) == -1
         || fs_prepare_dir(target_user.c_str(), 0000, 0, 0) == -1) {
       return false;
     }
@@ -365,23 +362,9 @@
       }
     }
 
-    // Now that user is mounted, prepare and mount OBB storage
-    // into place for current user
-
-    // /storage/emulated/0/Android
-    std::string target_android(StringPrintf("%s/%d/Android", target, user_id));
-    // /storage/emulated/0/Android/obb
-    std::string target_obb(StringPrintf("%s/%d/Android/obb", target, user_id));
-
-    if (fs_prepare_dir(target_android.c_str(), 0000, 0, 0) == -1
-        || fs_prepare_dir(target_obb.c_str(), 0000, 0, 0) == -1
-        || fs_prepare_dir(legacy, 0000, 0, 0) == -1) {
+    if (fs_prepare_dir(legacy, 0000, 0, 0) == -1) {
         return false;
     }
-    if (mount(source_obb.c_str(), target_obb.c_str(), NULL, MS_BIND, NULL) == -1) {
-      PLOG(WARNING) << "Failed to mount " << source_obb << " to " << target_obb;
-      return false;
-    }
 
     // Finally, mount user-specific path into place for legacy users
     if (mount(target_user.c_str(), legacy, NULL, MS_BIND | MS_REC, NULL) == -1) {