Add IndirectReferenceTable and initialize all the instances.
We're not _using_ any of the tables yet (except in tests), but all the
reference tables are now in place.
Change-Id: Ifd3fc114254460b4a1302520f2a4653319b113e5
diff --git a/src/jni_internal.cc b/src/jni_internal.cc
index d6cfcb9..ef3bf57 100644
--- a/src/jni_internal.cc
+++ b/src/jni_internal.cc
@@ -2024,15 +2024,19 @@
GetObjectRefType,
};
-static const size_t kMonitorTableInitialSize = 32; // Arbitrary.
-static const size_t kMonitorTableMaxSize = 4096; // Arbitrary sanity check.
+static const size_t kMonitorsInitial = 32; // Arbitrary.
+static const size_t kMonitorsMax = 4096; // Arbitrary sanity check.
+
+static const size_t kLocalsInitial = 64; // Arbitrary.
+static const size_t kLocalsMax = 512; // Arbitrary sanity check.
JNIEnvExt::JNIEnvExt(Thread* self, bool check_jni)
: fns(&gNativeInterface),
self(self),
check_jni(check_jni),
critical(false),
- monitor_table("monitor table", kMonitorTableInitialSize, kMonitorTableMaxSize) {
+ monitors("monitors", kMonitorsInitial, kMonitorsMax),
+ locals(kLocalsInitial, kLocalsMax, kLocal) {
}
// JNI Invocation interface.
@@ -2167,11 +2171,19 @@
static const size_t kPinTableInitialSize = 16;
static const size_t kPinTableMaxSize = 1024;
+static const size_t kGlobalsInitial = 512; // Arbitrary.
+static const size_t kGlobalsMax = 51200; // Arbitrary sanity check.
+
+static const size_t kWeakGlobalsInitial = 16; // Arbitrary.
+static const size_t kWeakGlobalsMax = 51200; // Arbitrary sanity check.
+
JavaVMExt::JavaVMExt(Runtime* runtime, bool check_jni)
: fns(&gInvokeInterface),
runtime(runtime),
check_jni(check_jni),
- pin_table("pin table", kPinTableInitialSize, kPinTableMaxSize) {
+ pin_table("pin table", kPinTableInitialSize, kPinTableMaxSize),
+ globals(kGlobalsInitial, kGlobalsMax, kGlobal),
+ weak_globals(kWeakGlobalsInitial, kWeakGlobalsMax, kWeakGlobal) {
}
} // namespace art