diff src/share/vm/ci/ciInstanceKlass.hpp @ 1478:5571b97fc1ec

More JNI global handle clean ups.
author Thomas Wuerthinger <wuerthinger@ssw.jku.at>
date Fri, 26 Nov 2010 19:45:05 +0100
parents dd57230ba8fe
children 2d26b0046e0d
line wrap: on
line diff
--- a/src/share/vm/ci/ciInstanceKlass.hpp	Fri Nov 26 13:52:15 2010 +0100
+++ b/src/share/vm/ci/ciInstanceKlass.hpp	Fri Nov 26 19:45:05 2010 +0100
@@ -63,6 +63,19 @@
 
   GrowableArray<ciField*>* _non_static_fields;
 
+public:
+  virtual void cleanup() {
+    ciObject::cleanup();
+    if (!_is_shared) {
+      if (JNIHandles::is_global_handle(_loader)) {
+        JNIHandles::destroy_global(_loader);
+      }
+      if (JNIHandles::is_global_handle(_protection_domain)) {
+        JNIHandles::destroy_global(_protection_domain);
+      }
+    }
+  }
+
 protected:
   ciInstanceKlass(KlassHandle h_k);
   ciInstanceKlass(ciSymbol* name, jobject loader, jobject protection_domain);