Fix updating of JNI references for String.<init>.

Was missing updates to globals and weak globals.

Bug: 21288130
Bug: 21440428

(cherry picked from commit 1a302fb4f84525289c1cf7a437f5be1999a75251)

Change-Id: I41b64e8aae906f5986de483db096d8191e45f260
diff --git a/runtime/java_vm_ext.cc b/runtime/java_vm_ext.cc
index b795d72..3142089 100644
--- a/runtime/java_vm_ext.cc
+++ b/runtime/java_vm_ext.cc
@@ -562,6 +562,11 @@
   return globals_.SynchronizedGet(self, &globals_lock_, ref);
 }
 
+void JavaVMExt::UpdateGlobal(Thread* self, IndirectRef ref, mirror::Object* result) {
+  WriterMutexLock mu(self, globals_lock_);
+  globals_.Update(ref, result);
+}
+
 mirror::Object* JavaVMExt::DecodeWeakGlobal(Thread* self, IndirectRef ref) {
   MutexLock mu(self, weak_globals_lock_);
   while (UNLIKELY(!allow_new_weak_globals_)) {
@@ -570,6 +575,11 @@
   return weak_globals_.Get(ref);
 }
 
+void JavaVMExt::UpdateWeakGlobal(Thread* self, IndirectRef ref, mirror::Object* result) {
+  MutexLock mu(self, weak_globals_lock_);
+  weak_globals_.Update(ref, result);
+}
+
 void JavaVMExt::DumpReferenceTables(std::ostream& os) {
   Thread* self = Thread::Current();
   {