< prev index next >

src/hotspot/share/runtime/signature.hpp

Print this page

        

@@ -23,10 +23,11 @@
  */
 
 #ifndef SHARE_VM_RUNTIME_SIGNATURE_HPP
 #define SHARE_VM_RUNTIME_SIGNATURE_HPP
 
+#include "classfile/symbolTable.hpp"
 #include "memory/allocation.hpp"
 #include "oops/method.hpp"
 
 // SignatureIterators iterate over a Java signature (or parts of it).
 // (Syntax according to: "The Java Virtual Machine Specification" by

@@ -440,10 +441,12 @@
 class SigEntry {
  public:
   BasicType _bt;
   int _offset;
     
+  enum { ReservedOffset = -2 }; // Special offset to mark the reserved entry
+
   SigEntry()
     : _bt(T_ILLEGAL), _offset(-1) {
   }
   SigEntry(BasicType bt, int offset)
     : _bt(bt), _offset(offset) {}

@@ -471,10 +474,14 @@
       return -1;
     }
     ShouldNotReachHere();
     return 0;
   }
-  static int count_fields(const GrowableArray<SigEntry>& sig_extended);
-  static void fill_sig_bt(const GrowableArray<SigEntry>& sig_extended, BasicType* sig_bt_cc, int total_args_passed_cc, bool skip_vt);
+  static void add_entry(GrowableArray<SigEntry>* sig, BasicType bt, int offset = -1);
+  static void insert_reserved_entry(GrowableArray<SigEntry>* sig, int i, BasicType bt);
+  static bool is_reserved_entry(const GrowableArray<SigEntry>* sig, int i);
+  static bool skip_value_delimiters(const GrowableArray<SigEntry>* sig, int i);
+  static int fill_sig_bt(const GrowableArray<SigEntry>* sig, BasicType* sig_bt);
+  static TempNewSymbol create_symbol(const GrowableArray<SigEntry>* sig);
 };
 
 #endif // SHARE_VM_RUNTIME_SIGNATURE_HPP
< prev index next >