Knock 0.5s off the Calculator startup time.

Down to 2.5s on mysid. We now only mess around with std::strings when we need
to synthesize a descriptor. If we can just hand out a const char* straight from
the dex file -- which most of the time we can -- we now do.

Change-Id: Iddec7062d8bd578bd25f671eb4d597e9ed064d65
diff --git a/src/debugger.cc b/src/debugger.cc
index b524359..4cfc34e 100644
--- a/src/debugger.cc
+++ b/src/debugger.cc
@@ -2447,7 +2447,7 @@
   while (count--) {
     AllocRecord* record = &recent_allocation_records_[idx];
 
-    class_names.Add(ClassHelper(record->type).GetDescriptor().c_str());
+    class_names.Add(ClassHelper(record->type).GetDescriptor());
 
     MethodHelper mh;
     for (size_t i = 0; i < kMaxAllocRecordStackDepth; i++) {
@@ -2506,7 +2506,7 @@
     JDWP::Append4BE(bytes, record->byte_count);
     JDWP::Append2BE(bytes, record->thin_lock_id);
     kh.ChangeClass(record->type);
-    JDWP::Append2BE(bytes, class_names.IndexOf(kh.GetDescriptor().c_str()));
+    JDWP::Append2BE(bytes, class_names.IndexOf(kh.GetDescriptor()));
     JDWP::Append1BE(bytes, stack_depth);
 
     MethodHelper mh;