< 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 >