Be robust in stack trace if source file name is missing from dex file.

Change-Id: Iaf39454bc5b82a2785c236400b0523eba5ab1ae9
diff --git a/src/object.cc b/src/object.cc
index 614df3c..0b6ad51 100644
--- a/src/object.cc
+++ b/src/object.cc
@@ -1109,6 +1109,9 @@
 }
 
 String* String::AllocFromModifiedUtf8(const char* utf) {
+  if (utf == NULL) {
+    return NULL;
+  }
   size_t char_count = CountModifiedUtf8Chars(utf);
   return AllocFromModifiedUtf8(char_count, utf);
 }
diff --git a/src/thread.cc b/src/thread.cc
index ff92359..cc6c7e8 100644
--- a/src/thread.cc
+++ b/src/thread.cc
@@ -1191,20 +1191,21 @@
     int32_t line_number = mh.GetLineNumFromNativePC(native_pc);
     // Allocate element, potentially triggering GC
     // TODO: reuse class_name_object via Class::name_?
-    std::string class_name(PrettyDescriptor(mh.GetDeclaringClassDescriptor()));
+    const char* descriptor = mh.GetDeclaringClassDescriptor();
+    CHECK(descriptor != NULL);
+    std::string class_name(PrettyDescriptor(descriptor));
     SirtRef<String> class_name_object(String::AllocFromModifiedUtf8(class_name.c_str()));
     if (class_name_object.get() == NULL) {
       return NULL;
     }
-    SirtRef<String> method_name_object(String::AllocFromModifiedUtf8(mh.GetName()));
+    const char* method_name = mh.GetName();
+    CHECK(method_name != NULL);
+    SirtRef<String> method_name_object(String::AllocFromModifiedUtf8(method_name));
     if (method_name_object.get() == NULL) {
       return NULL;
     }
-    SirtRef<String>
-        source_name_object(String::AllocFromModifiedUtf8(mh.GetDeclaringClassSourceFile()));
-    if (source_name_object.get() == NULL) {
-      return NULL;
-    }
+    const char* source_file = mh.GetDeclaringClassSourceFile();
+    SirtRef<String> source_name_object(String::AllocFromModifiedUtf8(source_file));
     StackTraceElement* obj = StackTraceElement::Alloc(class_name_object.get(),
                                                       method_name_object.get(),
                                                       source_name_object.get(),