src/share/vm/ci/ciMethod.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/ci/ciMethod.cpp Wed Oct 12 04:37:39 2011
--- new/src/share/vm/ci/ciMethod.cpp Wed Oct 12 04:37:39 2011
*** 147,170 ****
--- 147,176 ----
// ciMethod::ciMethod
//
// Unloaded method.
ciMethod::ciMethod(ciInstanceKlass* holder,
ciSymbol* name,
! ciSymbol* signature) : ciObject(ciMethodKlass::make()) {
// These fields are always filled in.
_name = name;
_holder = holder;
_signature = new (CURRENT_ENV->arena()) ciSignature(_holder, constantPoolHandle(), signature);
! _intrinsic_id = vmIntrinsics::_none;
! _liveness = NULL;
! _can_be_statically_bound = false;
! _method_blocks = NULL;
! _method_data = NULL;
! ciSymbol* signature,
+ ciInstanceKlass* accessor) :
+ ciObject(ciMethodKlass::make()),
+ _name( name),
+ _holder( holder),
! _intrinsic_id( vmIntrinsics::_none),
! _liveness( NULL),
! _can_be_statically_bound(false),
! _method_blocks( NULL),
! _method_data( NULL)
#if defined(COMPILER2) || defined(SHARK)
_flow = NULL;
_bcea = NULL;
+ ,
+ _flow( NULL),
+ _bcea( NULL)
#endif // COMPILER2 || SHARK
+ {
+ // Usually holder and accessor are the same type but in some cases
+ // the holder has the wrong class loader (e.g. invokedynamic call
+ // sites) so we pass the accessor.
+ _signature = new (CURRENT_ENV->arena()) ciSignature(accessor, constantPoolHandle(), signature);
}
// ------------------------------------------------------------------
// ciMethod::load_code
src/share/vm/ci/ciMethod.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File