Finish off the new JNI implementation.

There are a handful of remaining TODOs, but this gives us complete coverage.

Change-Id: Ibee38e6a87a0fcfae769d991125b0551243c8eeb
diff --git a/src/runtime.cc b/src/runtime.cc
index b009e22..ac0b90b 100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -155,8 +155,8 @@
 void LoadJniLibrary(JavaVMExt* vm, const char* name) {
   // TODO: OS_SHARED_LIB_FORMAT_STR
   std::string mapped_name(StringPrintf("lib%s.so", name));
-  char* reason = NULL;
-  if (!vm->LoadNativeLibrary(mapped_name, NULL, &reason)) {
+  std::string reason;
+  if (!vm->LoadNativeLibrary(mapped_name, NULL, reason)) {
     LOG(FATAL) << "LoadNativeLibrary failed for \"" << mapped_name << "\": "
                << reason;
   }
@@ -356,12 +356,10 @@
   return true;
 }
 
-bool Runtime::AttachCurrentThread(const char* name, JNIEnv** penv) {
-  return Thread::Attach(instance_) != NULL;
-}
-
-bool Runtime::AttachCurrentThreadAsDaemon(const char* name, JNIEnv** penv) {
-  // TODO: do something different for daemon threads.
+bool Runtime::AttachCurrentThread(const char* name, JNIEnv** penv, bool as_daemon) {
+  if (as_daemon) {
+    UNIMPLEMENTED(WARNING) << "TODO: do something different for daemon threads";
+  }
   return Thread::Attach(instance_) != NULL;
 }