diff src/share/vm/prims/jvmtiGetLoadedClasses.cpp @ 6725:da91efe96a93

6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author coleenp
date Sat, 01 Sep 2012 13:25:18 -0400
parents d2a62e0f25eb
children 070d523b96a7
line wrap: on
line diff
--- a/src/share/vm/prims/jvmtiGetLoadedClasses.cpp	Fri Aug 31 16:39:35 2012 -0700
+++ b/src/share/vm/prims/jvmtiGetLoadedClasses.cpp	Sat Sep 01 13:25:18 2012 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -166,10 +166,10 @@
   }
 
   // Finally, the static methods that are the callbacks
-  static void increment(klassOop k) {
+  static void increment(Klass* k) {
     JvmtiGetLoadedClassesClosure* that = JvmtiGetLoadedClassesClosure::get_this();
     if (that->get_initiatingLoader() == NULL) {
-      for (klassOop l = k; l != NULL; l = Klass::cast(l)->array_klass_or_null()) {
+      for (Klass* l = k; l != NULL; l = Klass::cast(l)->array_klass_or_null()) {
         that->set_count(that->get_count() + 1);
       }
     } else if (k != NULL) {
@@ -178,27 +178,29 @@
     }
   }
 
-  static void increment_with_loader(klassOop k, oop loader) {
+  static void increment_with_loader(Klass* k, ClassLoaderData* loader_data) {
     JvmtiGetLoadedClassesClosure* that = JvmtiGetLoadedClassesClosure::get_this();
-    if (loader == JNIHandles::resolve(that->get_initiatingLoader())) {
-      for (klassOop l = k; l != NULL; l = Klass::cast(l)->array_klass_or_null()) {
+    oop class_loader = loader_data->class_loader();
+    if (class_loader == JNIHandles::resolve(that->get_initiatingLoader())) {
+      for (Klass* l = k; l != NULL; l = Klass::cast(l)->array_klass_or_null()) {
         that->set_count(that->get_count() + 1);
       }
     }
   }
 
-  static void prim_array_increment_with_loader(klassOop array, oop loader) {
+  static void prim_array_increment_with_loader(Klass* array, ClassLoaderData* loader_data) {
     JvmtiGetLoadedClassesClosure* that = JvmtiGetLoadedClassesClosure::get_this();
-    if (loader == JNIHandles::resolve(that->get_initiatingLoader())) {
+    oop class_loader = loader_data->class_loader();
+    if (class_loader == JNIHandles::resolve(that->get_initiatingLoader())) {
       that->set_count(that->get_count() + 1);
     }
   }
 
-  static void add(klassOop k) {
+  static void add(Klass* k) {
     JvmtiGetLoadedClassesClosure* that = JvmtiGetLoadedClassesClosure::get_this();
     if (that->available()) {
       if (that->get_initiatingLoader() == NULL) {
-        for (klassOop l = k; l != NULL; l = Klass::cast(l)->array_klass_or_null()) {
+        for (Klass* l = k; l != NULL; l = Klass::cast(l)->array_klass_or_null()) {
           oop mirror = Klass::cast(l)->java_mirror();
           that->set_element(that->get_index(), mirror);
           that->set_index(that->get_index() + 1);
@@ -212,11 +214,12 @@
     }
   }
 
-  static void add_with_loader(klassOop k, oop loader) {
+  static void add_with_loader(Klass* k, ClassLoaderData* loader_data) {
     JvmtiGetLoadedClassesClosure* that = JvmtiGetLoadedClassesClosure::get_this();
     if (that->available()) {
-      if (loader == JNIHandles::resolve(that->get_initiatingLoader())) {
-        for (klassOop l = k; l != NULL; l = Klass::cast(l)->array_klass_or_null()) {
+      oop class_loader = loader_data->class_loader();
+      if (class_loader == JNIHandles::resolve(that->get_initiatingLoader())) {
+        for (Klass* l = k; l != NULL; l = Klass::cast(l)->array_klass_or_null()) {
           oop mirror = Klass::cast(l)->java_mirror();
           that->set_element(that->get_index(), mirror);
           that->set_index(that->get_index() + 1);
@@ -228,20 +231,20 @@
   // increment the count for the given basic type array class (and any
   // multi-dimensional arrays). For example, for [B we check for
   // [[B, [[[B, .. and the count is incremented for each one that exists.
-  static void increment_for_basic_type_arrays(klassOop k) {
+  static void increment_for_basic_type_arrays(Klass* k) {
     JvmtiGetLoadedClassesClosure* that = JvmtiGetLoadedClassesClosure::get_this();
     assert(that != NULL, "no JvmtiGetLoadedClassesClosure");
-    for (klassOop l = k; l != NULL; l = Klass::cast(l)->array_klass_or_null()) {
+    for (Klass* l = k; l != NULL; l = Klass::cast(l)->array_klass_or_null()) {
       that->set_count(that->get_count() + 1);
     }
   }
 
   // add the basic type array class and its multi-dimensional array classes to the list
-  static void add_for_basic_type_arrays(klassOop k) {
+  static void add_for_basic_type_arrays(Klass* k) {
     JvmtiGetLoadedClassesClosure* that = JvmtiGetLoadedClassesClosure::get_this();
     assert(that != NULL, "no JvmtiGetLoadedClassesClosure");
     assert(that->available(), "no list");
-    for (klassOop l = k; l != NULL; l = Klass::cast(l)->array_klass_or_null()) {
+    for (Klass* l = k; l != NULL; l = Klass::cast(l)->array_klass_or_null()) {
       oop mirror = Klass::cast(l)->java_mirror();
       that->set_element(that->get_index(), mirror);
       that->set_index(that->get_index() + 1);