|
View:
New views
1 Messages
—
Rating Filter:
Alert me
|
|
|
Zero stack walker tweakHi all,
This commit combines the handling of most of the different types of frame you get with Zero and Shark. The old method mirrors how it's done for the architecture-specific HotSpot ports, but it's unnecessary with Zero. I balked at adding yet another unnecessary special case to handle Shark-compiled JNI method wrappers... Cheers, Gary -- http://gbenson.net/ diff -r b078cdccad9c -r 3adabf9ea7ef ChangeLog --- a/ChangeLog Wed Nov 11 10:30:19 2009 +0000 +++ b/ChangeLog Wed Nov 11 10:34:05 2009 +0000 @@ -1,3 +1,15 @@ +2009-11-11 Gary Benson <gbenson@...> + + * ports/hotspot/src/cpu/zero/vm/frame_zero.hpp + (frame::is_fake_stub_frame): Removed. + (frame::sender_for_fake_stub_frame): Likewise. + (frame::sender_for_nonentry_frame): New method. + * ports/hotspot/src/cpu/zero/vm/frame_zero.cpp + (frame::is_fake_stub_frame): Removed. + (frame::sender_for_fake_stub_frame): Likewise. + (frame::sender_for_nonentry_frame): New method. + (frame::sender): Refactored. + 2009-11-11 Gary Benson <gbenson@...> * ports/hotspot/src/cpu/zero/vm/entry_zero.hpp diff -r b078cdccad9c -r 3adabf9ea7ef ports/hotspot/src/cpu/zero/vm/frame_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.cpp Wed Nov 11 10:30:19 2009 +0000 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.cpp Wed Nov 11 10:34:05 2009 +0000 @@ -36,10 +36,6 @@ return zeroframe()->is_interpreter_frame(); } -bool frame::is_fake_stub_frame() const { - return zeroframe()->is_fake_stub_frame(); -} - frame frame::sender_for_entry_frame(RegisterMap *map) const { assert(map != NULL, "map must be set"); assert(!entry_frame_is_first(), "next Java fp must be non zero"); @@ -50,15 +46,7 @@ return frame(sender_sp(), sp() + 1); } -frame frame::sender_for_interpreter_frame(RegisterMap *map) const { - return frame(sender_sp(), sp() + 1); -} - -frame frame::sender_for_compiled_frame(RegisterMap *map) const { - return frame(sender_sp(), sp() + 1); -} - -frame frame::sender_for_fake_stub_frame(RegisterMap *map) const { +frame frame::sender_for_nonentry_frame(RegisterMap *map) const { return frame(sender_sp(), sp() + 1); } @@ -69,17 +57,8 @@ if (is_entry_frame()) return sender_for_entry_frame(map); - - if (is_interpreted_frame()) - return sender_for_interpreter_frame(map); - - if (is_compiled_frame()) - return sender_for_compiled_frame(map); - - if (is_fake_stub_frame()) - return sender_for_fake_stub_frame(map); - - ShouldNotReachHere(); + else + return sender_for_nonentry_frame(map); } #ifdef CC_INTERP diff -r b078cdccad9c -r 3adabf9ea7ef ports/hotspot/src/cpu/zero/vm/frame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.hpp Wed Nov 11 10:30:19 2009 +0000 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.hpp Wed Nov 11 10:34:05 2009 +0000 @@ -65,10 +65,7 @@ } public: - bool is_fake_stub_frame() const; - - public: - frame sender_for_fake_stub_frame(RegisterMap* map) const; + frame sender_for_nonentry_frame(RegisterMap* map) const; public: void zero_print_on_error(int index, |
| Free embeddable forum powered by Nabble | Forum Help |