| ... | @@ -290,12 +290,12 @@ pub const StackIterator = struct { | ... | @@ -290,12 +290,12 @@ pub const StackIterator = struct { |
| 290 | 0; | 290 | 0; |
| 291 | | 291 | |
| 292 | fn next(self: *StackIterator) ?usize { | 292 | fn next(self: *StackIterator) ?usize { |
| 293 | if (self.fp < fp_adjust_factor) return null; | 293 | if (self.fp <= fp_adjust_factor) return null; |
| 294 | self.fp = @intToPtr(*const usize, self.fp - fp_adjust_factor).*; | 294 | self.fp = @intToPtr(*const usize, self.fp - fp_adjust_factor).*; |
| 295 | if (self.fp < fp_adjust_factor) return null; | 295 | if (self.fp <= fp_adjust_factor) return null; |
| 296 | | 296 | |
| 297 | if (self.first_addr) |addr| { | 297 | if (self.first_addr) |addr| { |
| 298 | while (self.fp >= fp_adjust_factor) : (self.fp = @intToPtr(*const usize, self.fp - fp_adjust_factor).*) { | 298 | while (self.fp > fp_adjust_factor) : (self.fp = @intToPtr(*const usize, self.fp - fp_adjust_factor).*) { |
| 299 | const return_address = @intToPtr(*const usize, self.fp - fp_adjust_factor + @sizeOf(usize)).*; | 299 | const return_address = @intToPtr(*const usize, self.fp - fp_adjust_factor + @sizeOf(usize)).*; |
| 300 | if (addr == return_address) { | 300 | if (addr == return_address) { |
| 301 | self.first_addr = null; | 301 | self.first_addr = null; |