hotspot/src/share/vm/prims/jvmtiExport.cpp
changeset 17597 48ed8470e935
parent 17368 b7cb1739172e
child 18940 d39d4765e6cb
--- a/hotspot/src/share/vm/prims/jvmtiExport.cpp	Tue May 14 17:33:07 2013 +0000
+++ b/hotspot/src/share/vm/prims/jvmtiExport.cpp	Wed May 15 11:30:54 2013 +0200
@@ -1624,15 +1624,19 @@
     }
   }
 
+  assert(sig_type != '[', "array should have sig_type == 'L'");
+  bool handle_created = false;
+
   // convert oop to JNI handle.
-  if (sig_type == 'L' || sig_type == '[') {
+  if (sig_type == 'L') {
+    handle_created = true;
     value->l = (jobject)JNIHandles::make_local(thread, (oop)value->l);
   }
 
   post_field_modification(thread, method, location, field_klass, object, field, sig_type, value);
 
   // Destroy the JNI handle allocated above.
-  if (sig_type == 'L') {
+  if (handle_created) {
     JNIHandles::destroy_local(value->l);
   }
 }