pike.git
/
src
/
program.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/program.c:8838:
ptrdiff_t offset = pc - prog->program; if ((offset < (ptrdiff_t)prog->num_program) && (offset >= 0)) { char *cnt = prog->linenumbers; INT32 off = 0; INT_TYPE line = 0; struct pike_string *file = NULL; while(cnt < prog->linenumbers + prog->num_linenumbers) {
-
if
(*cnt == 127)
+
while
(*cnt == 127)
{ int strno; cnt++; strno = get_small_number(&cnt);
-
+
if (strno >= 0) {
CHECK_FILE_ENTRY (prog, strno); file = prog->strings[strno];
-
+
} else {
+
int frame_offset = ~strno;
+
int kind = *(cnt++);
+
strno = (kind < 0)?-1:get_small_number(&cnt);
}
-
+
}
off+=get_small_number(&cnt); if(off > offset) break; line+=get_small_number(&cnt); } linep[0]=line; if (file) return make_plain_file(file, malloced); } }