Add a SafeMap equivalent to std::map but without the error-prone operator[].

Change-Id: Iae5ba2091c55a34dbd1005cf3d25fce2a8d5c1f9
diff --git a/src/jni_internal.cc b/src/jni_internal.cc
index e192ce8..1e27604 100644
--- a/src/jni_internal.cc
+++ b/src/jni_internal.cc
@@ -20,12 +20,9 @@
 #include <sys/mman.h>
 
 #include <cstdarg>
-#include <map>
 #include <utility>
 #include <vector>
 
-#include "ScopedLocalRef.h"
-#include "UniquePtr.h"
 #include "class_linker.h"
 #include "class_loader.h"
 #include "jni.h"
@@ -33,10 +30,13 @@
 #include "object.h"
 #include "object_utils.h"
 #include "runtime.h"
+#include "safe_map.h"
 #include "scoped_jni_thread_state.h"
+#include "ScopedLocalRef.h"
 #include "stl_util.h"
 #include "stringpiece.h"
 #include "thread.h"
+#include "UniquePtr.h"
 
 namespace art {
 
@@ -665,7 +665,7 @@
   }
 
   void Put(const std::string& path, SharedLibrary* library) {
-    libraries_[path] = library;
+    libraries_.Put(path, library);
   }
 
   // See section 11.3 "Linking Native Methods" of the JNI spec.
@@ -698,9 +698,9 @@
   }
 
  private:
-  typedef std::map<std::string, SharedLibrary*>::iterator It; // TODO: C++0x auto
+  typedef SafeMap<std::string, SharedLibrary*>::iterator It; // TODO: C++0x auto
 
-  std::map<std::string, SharedLibrary*> libraries_;
+  SafeMap<std::string, SharedLibrary*> libraries_;
 };
 
 JValue InvokeWithJValues(JNIEnv* public_env, jobject obj, jmethodID mid, jvalue* args) {