pike.git / src / program.c

version» Context lines:

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);    }    }