Improve Frame line number retrieval logic

This commit is contained in:
lightovernight 2025-03-07 17:51:49 +08:00
parent 09367d35a4
commit e2a632dc72

View File

@ -121,8 +121,11 @@ void Frame__gc_mark(py_Frame* self) {
int Frame__lineno(const py_Frame* self) { int Frame__lineno(const py_Frame* self) {
int ip = self->ip; int ip = self->ip;
if(ip < 0) return 0; if(ip >= 0)
return c11__getitem(BytecodeEx, &self->co->codes_ex, ip).lineno; return c11__getitem(BytecodeEx, &self->co->codes_ex, ip).lineno;
if(!self->is_locals_special)
return self->co->start_line;
return 0;
} }
int Frame__iblock(const py_Frame* self) { int Frame__iblock(const py_Frame* self) {