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) {