Author: Armin Rigo <[email protected]>
Branch: jitframe-on-heap
Changeset: r61738:f3f2ea7536d7
Date: 2013-02-24 18:56 +0100
http://bitbucket.org/pypy/pypy/changeset/f3f2ea7536d7/

Log:    Fix

diff --git a/rpython/rlib/_stacklet_asmgcc.py b/rpython/rlib/_stacklet_asmgcc.py
--- a/rpython/rlib/_stacklet_asmgcc.py
+++ b/rpython/rlib/_stacklet_asmgcc.py
@@ -77,15 +77,20 @@
                     callee = self.curframe
                     retaddraddr = self.translateptr(callee.frame_address)
                     retaddr = retaddraddr.address[0]
-                    basewalker.locate_caller_based_on_retaddr(retaddr)
+                    ebp_in_caller = callee.regs_stored_at[INDEX_OF_EBP]
+                    ebp_in_caller = self.translateptr(ebp_in_caller)
+                    ebp_in_caller = ebp_in_caller.address[0]
+                    basewalker.locate_caller_based_on_retaddr(retaddr,
+                                                              ebp_in_caller)
                     self.enumerating = True
+                else:
+                    callee = self.curframe
+                    ebp_in_caller = callee.regs_stored_at[INDEX_OF_EBP]
+                    ebp_in_caller = self.translateptr(ebp_in_caller)
+                    ebp_in_caller = ebp_in_caller.address[0]
                 #
                 # not really a loop, but kept this way for similarity
                 # with asmgcroot:
-                callee = self.curframe
-                ebp_in_caller = callee.regs_stored_at[INDEX_OF_EBP]
-                ebp_in_caller = self.translateptr(ebp_in_caller)
-                ebp_in_caller = ebp_in_caller.address[0]
                 while True:
                     location = basewalker._shape_decompressor.next()
                     if location == 0:
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to