hotspot/src/share/vm/asm/codeBuffer.hpp
changeset 13728 882756847a04
parent 10983 9ab65f4cec18
child 13887 89b873bcc55b
--- a/hotspot/src/share/vm/asm/codeBuffer.hpp	Fri Aug 31 16:39:35 2012 -0700
+++ b/hotspot/src/share/vm/asm/codeBuffer.hpp	Sat Sep 01 13:25:18 2012 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -486,6 +486,9 @@
   bool insts_contains(address pc) const  { return _insts.contains(pc); }
   bool insts_contains2(address pc) const { return _insts.contains2(pc); }
 
+  // Record any extra oops required to keep embedded metadata alive
+  void finalize_oop_references(methodHandle method);
+
   // Allocated size in all sections, when aligned and concatenated
   // (this is the eventual state of the content in its final
   // CodeBlob).
@@ -504,6 +507,12 @@
     return (recorder == NULL)? 0: recorder->oop_size();
   }
 
+  // allocated size of any and all recorded metadata
+  csize_t total_metadata_size() const {
+    OopRecorder* recorder = oop_recorder();
+    return (recorder == NULL)? 0: recorder->metadata_size();
+  }
+
   // Configuration functions, called immediately after the CB is constructed.
   // The section sizes are subtracted from the original insts section.
   // Note:  Call them in reverse section order, because each steals from insts.
@@ -532,9 +541,9 @@
     copy_relocations_to(blob);
     copy_code_to(blob);
   }
-  void copy_oops_to(nmethod* nm) {
+  void copy_values_to(nmethod* nm) {
     if (!oop_recorder()->is_unused()) {
-      oop_recorder()->copy_to(nm);
+      oop_recorder()->copy_values_to(nm);
     }
   }