src/share/vm/oops/constMethodOop.hpp
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2003, 2010, 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2003, 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 39,49 ****
// | header |
// | klass |
// |------------------------------------------------------|
// | fingerprint 1 |
// | fingerprint 2 |
! // | method (oop) |
// | stackmap_data (oop) |
// | exception_table (oop) |
// | constMethod_size |
// | interp_kind | flags | code_size |
// | name index | signature index |
--- 39,49 ----
// | header |
// | klass |
// |------------------------------------------------------|
// | fingerprint 1 |
// | fingerprint 2 |
! // | constants (oop) |
// | stackmap_data (oop) |
// | exception_table (oop) |
// | constMethod_size |
// | interp_kind | flags | code_size |
// | name index | signature index |
*** 111,130 ****
// multiple threads, so is volatile.
volatile uint64_t _fingerprint;
volatile bool _is_conc_safe; // if true, safe for concurrent GC processing
public:
! oop* oop_block_beg() const { return adr_method(); }
oop* oop_block_end() const { return adr_exception_table() + 1; }
private:
//
// The oop block. See comment in klass.hpp before making changes.
//
! // Backpointer to non-const methodOop (needed for some JVMTI operations)
! methodOop _method;
// Raw stackmap data for the method
typeArrayOop _stackmap_data;
// The exception handler table. 4-tuples of ints [start_pc, end_pc,
--- 111,129 ----
// multiple threads, so is volatile.
volatile uint64_t _fingerprint;
volatile bool _is_conc_safe; // if true, safe for concurrent GC processing
public:
! oop* oop_block_beg() const { return adr_constants(); }
oop* oop_block_end() const { return adr_exception_table() + 1; }
private:
//
// The oop block. See comment in klass.hpp before making changes.
//
! constantPoolOop _constants; // Constant pool
// Raw stackmap data for the method
typeArrayOop _stackmap_data;
// The exception handler table. 4-tuples of ints [start_pc, end_pc,
*** 165,178 ****
{ return (_flags & _has_localvariable_table) != 0; }
void set_interpreter_kind(int kind) { _interpreter_kind = kind; }
int interpreter_kind(void) const { return _interpreter_kind; }
! // backpointer to non-const methodOop
! methodOop method() const { return _method; }
! void set_method(methodOop m) { oop_store_without_check((oop*)&_method, (oop) m); }
// stackmap table data
typeArrayOop stackmap_data() const { return _stackmap_data; }
void set_stackmap_data(typeArrayOop sd) {
oop_store_without_check((oop*)&_stackmap_data, (oop)sd);
--- 164,180 ----
{ return (_flags & _has_localvariable_table) != 0; }
void set_interpreter_kind(int kind) { _interpreter_kind = kind; }
int interpreter_kind(void) const { return _interpreter_kind; }
! // constant pool
! constantPoolOop constants() const { return _constants; }
! void set_constants(constantPoolOop c) {
! oop_store_without_check((oop*)&_constants, (oop)c);
! }
+ methodOop method() const;
// stackmap table data
typeArrayOop stackmap_data() const { return _stackmap_data; }
void set_stackmap_data(typeArrayOop sd) {
oop_store_without_check((oop*)&_stackmap_data, (oop)sd);
*** 276,290 ****
// Offset to bytecodes
static ByteSize codes_offset()
{ return in_ByteSize(sizeof(constMethodOopDesc)); }
// interpreter support
static ByteSize exception_table_offset()
{ return byte_offset_of(constMethodOopDesc, _exception_table); }
// Garbage collection support
! oop* adr_method() const { return (oop*)&_method; }
oop* adr_stackmap_data() const { return (oop*)&_stackmap_data; }
oop* adr_exception_table() const { return (oop*)&_exception_table; }
bool is_conc_safe() { return _is_conc_safe; }
void set_is_conc_safe(bool v) { _is_conc_safe = v; }
--- 278,294 ----
// Offset to bytecodes
static ByteSize codes_offset()
{ return in_ByteSize(sizeof(constMethodOopDesc)); }
// interpreter support
+ static ByteSize constants_offset()
+ { return byte_offset_of(constMethodOopDesc, _constants); }
static ByteSize exception_table_offset()
{ return byte_offset_of(constMethodOopDesc, _exception_table); }
// Garbage collection support
! oop* adr_constants() const { return (oop*)&_constants; }
oop* adr_stackmap_data() const { return (oop*)&_stackmap_data; }
oop* adr_exception_table() const { return (oop*)&_exception_table; }
bool is_conc_safe() { return _is_conc_safe; }
void set_is_conc_safe(bool v) { _is_conc_safe = v; }