diff src/share/vm/ci/ciMethod.hpp @ 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 1d7922586cf6
children bd7a7ce2e264
line wrap: on
line diff
--- a/src/share/vm/ci/ciMethod.hpp	Fri Aug 31 16:39:35 2012 -0700
+++ b/src/share/vm/ci/ciMethod.hpp	Sat Sep 01 13:25:18 2012 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -42,9 +42,9 @@
 
 // ciMethod
 //
-// This class represents a methodOop in the HotSpot virtual
+// This class represents a Method* in the HotSpot virtual
 // machine.
-class ciMethod : public ciObject {
+class ciMethod : public ciMetadata {
   friend class CompileBroker;
   CI_PACKAGE_ACCESS
   friend class ciEnv;
@@ -90,8 +90,8 @@
   ciMethod(methodHandle h_m);
   ciMethod(ciInstanceKlass* holder, ciSymbol* name, ciSymbol* signature, ciInstanceKlass* accessor);
 
-  methodOop get_methodOop() const {
-    methodOop m = (methodOop)get_oop();
+  Method* get_Method() const {
+    Method* m = (Method*)_metadata;
     assert(m != NULL, "illegal use of unloaded method");
     return m;
   }
@@ -164,8 +164,8 @@
   // Code size for inlining decisions.
   int code_size_for_inlining();
 
-  bool force_inline() { return get_methodOop()->force_inline(); }
-  bool dont_inline()  { return get_methodOop()->dont_inline();  }
+  bool force_inline() { return get_Method()->force_inline(); }
+  bool dont_inline()  { return get_Method()->dont_inline();  }
 
   int comp_level();
   int highest_osr_comp_level();
@@ -268,7 +268,7 @@
   bool has_member_arg() const;
 
   // What kind of ciObject is this?
-  bool is_method()                               { return true; }
+  bool is_method() const                         { return true; }
 
   // Java access flags
   bool is_public      () const                   { return flags().is_public(); }