src/share/vm/runtime/vframe.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/runtime/vframe.cpp Tue Jan 5 18:46:14 2010
--- new/src/share/vm/runtime/vframe.cpp Tue Jan 5 18:46:14 2010
*** 1,7 ****
--- 1,7 ----
/*
! * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
! * Copyright 1997-2010 Sun Microsystems, Inc. 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.
*** 430,439 ****
--- 430,445 ----
// This is Method.invoke() -- skip it
} else if (use_new_reflection &&
Klass::cast(method()->method_holder())
->is_subclass_of(SystemDictionary::reflect_method_accessor_klass())) {
// This is an auxilary frame -- skip it
+ } else if ((method()->name() == vmSymbols::invoke_name() &&
+ method()->method_holder() == SystemDictionary::MethodHandle_klass())
+ ||
+ method()->method_holder() == SystemDictionary::InvokeDynamic_klass()) {
+ // FIXME: Hide this match logic in methodOopDesc or MethodHandleCompiler.
+ // This is an internal adapter frame from the MethodHandleCompiler -- skip it
} else {
// This is non-excluded frame, we need to count it against the depth
if (depth-- <= 0) {
// we have reached the desired depth, we are done
break;
src/share/vm/runtime/vframe.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File