| 281 | |
| 282 | |
| 283 | static void loadDebug (LoadState *S, Proto *f) { |
| 284 | int i; |
| 285 | int n = loadInt(S); |
| 286 | if (S->fixed) { |
| 287 | f->lineinfo = getaddr(S, n, ls_byte); |
| 288 | f->sizelineinfo = n; |
| 289 | } |
| 290 | else { |
| 291 | f->lineinfo = luaM_newvectorchecked(S->L, n, ls_byte); |
| 292 | f->sizelineinfo = n; |
| 293 | loadVector(S, f->lineinfo, n); |
| 294 | } |
| 295 | n = loadInt(S); |
| 296 | if (n > 0) { |
| 297 | loadAlign(S, sizeof(int)); |
| 298 | if (S->fixed) { |
| 299 | f->abslineinfo = getaddr(S, n, AbsLineInfo); |
| 300 | f->sizeabslineinfo = n; |
| 301 | } |
| 302 | else { |
| 303 | f->abslineinfo = luaM_newvectorchecked(S->L, n, AbsLineInfo); |
| 304 | f->sizeabslineinfo = n; |
| 305 | loadVector(S, f->abslineinfo, n); |
| 306 | } |
| 307 | } |
| 308 | n = loadInt(S); |
| 309 | f->locvars = luaM_newvectorchecked(S->L, n, LocVar); |
| 310 | f->sizelocvars = n; |
| 311 | for (i = 0; i < n; i++) |
| 312 | f->locvars[i].varname = NULL; |
| 313 | for (i = 0; i < n; i++) { |
| 314 | loadString(S, f, &f->locvars[i].varname); |
| 315 | f->locvars[i].startpc = loadInt(S); |
| 316 | f->locvars[i].endpc = loadInt(S); |
| 317 | } |
| 318 | n = loadInt(S); |
| 319 | if (n != 0) /* does it have debug information? */ |
| 320 | n = f->sizeupvalues; /* must be this many */ |
| 321 | for (i = 0; i < n; i++) |
| 322 | loadString(S, f, &f->upvalues[i].name); |
| 323 | } |
| 324 | |
| 325 | |
| 326 | static void loadFunction (LoadState *S, Proto *f) { |
no test coverage detected