java-interp.h (_Jv_LocalVarTableEntry): Add union for bytecode_pc and direct-threaded pc.
* include/java-interp.h (_Jv_LocalVarTableEntry): Add union for bytecode_pc and direct-threaded pc. Add field descriptions inline. * defineclass.cc (read_one_code_attribute): Change from bytecode_start_pc to bytecode_pc. Remove unused variable "len". * interpret.cc (compile): Remap the variable table, too. (get_local_var_table) [DIRECT_THREADED]: Use insn_index on the start location to map from pc_t to code index. From-SVN: r125734
This commit is contained in:
parent
e89993b3f2
commit
7dace0ca51
4 changed files with 56 additions and 13 deletions
|
@ -138,17 +138,27 @@ struct _Jv_LineTableEntry
|
|||
};
|
||||
|
||||
// This structure holds local variable information.
|
||||
// The pc value is the first pc where the variable must have a value and it
|
||||
// must continue to have a value until (start_pc + length).
|
||||
// The name is the variable name, and the descriptor contains type information.
|
||||
// The slot is the index in the local variable array of this method, long and
|
||||
// double occupy slot and slot+1.
|
||||
// Like _Jv_LineTableEntry above, it is remapped when the method is
|
||||
// compiled for direct threading.
|
||||
struct _Jv_LocalVarTableEntry
|
||||
{
|
||||
int bytecode_start_pc;
|
||||
// First PC value at which variable is live
|
||||
union
|
||||
{
|
||||
pc_t pc;
|
||||
int bytecode_pc;
|
||||
};
|
||||
|
||||
// length of visibility of variable
|
||||
int length;
|
||||
|
||||
// variable name
|
||||
char *name;
|
||||
|
||||
// type description
|
||||
char *descriptor;
|
||||
|
||||
// stack slot number (long and double occupy slot and slot + 1)
|
||||
int slot;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue