@@ -2116,19 +2116,13 @@ ARGS according to `debugger'."
21162116
21172117(defun buttercup--backtrace ()
21182118 " Create a backtrace, a list of frames returned from `backtrace-frame' ."
2119- ; ; Read the backtrace frames from 0 (the closest) upward.
2120- (cl-do* ((n 0 (1+ n))
2121- (frame (backtrace-frame n) ( backtrace-frame n) )
2122- ( frame-list nil )
2123- (in-program-stack nil ))
2119+ ; ; Read the backtrace frames from `buttercup--debugger' + 1 upward.
2120+ (cl-do* ((n 1 (1+ n))
2121+ (frame (backtrace-frame n # 'buttercup--debugger )
2122+ ( backtrace-frame n # 'buttercup--debugger ) )
2123+ (frame-list nil ))
21242124 ((not frame) frame-list)
2125- ; ; discard frames until (and including) `buttercup--debugger' , they
2126- ; ; only contain buttercup code
2127- (when in-program-stack
2128- (push frame frame-list))
2129- (when (eq (elt frame 1 )
2130- 'buttercup--debugger )
2131- (setq in-program-stack t ))
2125+ (push frame frame-list)
21322126 ; ; keep frames until one of the known functions are found, after
21332127 ; ; this is just the buttercup framework and not interesting for
21342128 ; ; users (incorrect for testing buttercup). Some frames before the
@@ -2149,7 +2143,7 @@ ARGS according to `debugger'."
21492143 ; ; The buttercup--mark-stackframe should only be in wrapped expressions,
21502144 ; ; optimize by checking if it is a wrapped expression?
21512145 ; ; Will we even need the marker if we can check that?
2152- (when (and in-program-stack ( tree-find 'buttercup--mark-stackframe frame) )
2146+ (when (tree-find 'buttercup--mark-stackframe frame)
21532147 (pop frame-list)
21542148 (cl-return frame-list)))))
21552149
0 commit comments