< prev index next >

src/share/vm/oops/methodData.hpp

Print this page

        

@@ -533,10 +533,11 @@
 
 // BitData
 //
 // A BitData holds a flag or two in its header.
 class BitData : public ProfileData {
+  friend class VMStructs;
 protected:
   enum {
     // null_seen:
     //  saw a null operand (cast/aastore/instanceof)
       null_seen_flag              = DataLayout::first_flag + 0

@@ -601,10 +602,11 @@
 
 // CounterData
 //
 // A CounterData corresponds to a simple counter.
 class CounterData : public BitData {
+  friend class VMStructs;
 protected:
   enum {
     count_off,
     counter_cell_count
   };

@@ -665,10 +667,11 @@
 // A JumpData is used to access profiling information for a direct
 // branch.  It is a counter, used for counting the number of branches,
 // plus a data displacement, used for realigning the data pointer to
 // the corresponding target bci.
 class JumpData : public ProfileData {
+  friend class VMStructs;
 protected:
   enum {
     taken_off_set,
     displacement_off_set,
     jump_cell_count

@@ -1171,10 +1174,11 @@
 // A ReceiverTypeData is used to access profiling information about a
 // dynamic type check.  It consists of a counter which counts the total times
 // that the check is reached, and a series of (Klass*, count) pairs
 // which are used to store a type profile for the receiver of the check.
 class ReceiverTypeData : public CounterData {
+  friend class VMStructs;
 protected:
   enum {
 #if INCLUDE_JVMCI
     // Description of the different counters
     // ReceiverTypeData for instanceof/checkcast/aastore:

@@ -1676,10 +1680,11 @@
 //
 // A BranchData is used to access profiling data for a two-way branch.
 // It consists of taken and not_taken counts as well as a data displacement
 // for the taken case.
 class BranchData : public JumpData {
+  friend class VMStructs;
 protected:
   enum {
     not_taken_off_set = jump_cell_count,
     branch_cell_count
   };

@@ -1752,10 +1757,11 @@
 //
 // A ArrayData is a base class for accessing profiling data which does
 // not have a statically known size.  It consists of an array length
 // and an array start.
 class ArrayData : public ProfileData {
+  friend class VMStructs;
 protected:
   friend class DataLayout;
 
   enum {
     array_len_off_set,

@@ -1829,10 +1835,11 @@
 // A MultiBranchData is used to access profiling information for
 // a multi-way branch (*switch bytecodes).  It consists of a series
 // of (count, displacement) pairs, which count the number of times each
 // case was taken and specify the data displacment for each branch target.
 class MultiBranchData : public ArrayData {
+  friend class VMStructs;
 protected:
   enum {
     default_count_off_set,
     default_disaplacement_off_set,
     case_array_start
< prev index next >