| 268 | } |
| 269 | |
| 270 | class LFunctionType52 extends LFunctionType { |
| 271 | |
| 272 | protected void parse_main(ByteBuffer buffer, BHeader header, LFunctionParseState s) { |
| 273 | s.lineBegin = header.integer.parse(buffer, header).asInt(); |
| 274 | s.lineEnd = header.integer.parse(buffer, header).asInt(); |
| 275 | s.lenParameter = 0xFF & buffer.get(); |
| 276 | s.vararg = 0xFF & buffer.get(); |
| 277 | s.maximumStackSize = 0xFF & buffer.get(); |
| 278 | parse_code(buffer, header, s); |
| 279 | parse_constants(buffer, header, s); |
| 280 | parse_upvalues(buffer, header, s); |
| 281 | s.name = header.string.parse(buffer, header); |
| 282 | parse_debug(buffer, header, s); |
| 283 | } |
| 284 | |
| 285 | @Override |
| 286 | public List<Directive> get_directives() { |
| 287 | return Arrays.asList(new Directive[] { |
| 288 | Directive.LINEDEFINED, |
| 289 | Directive.LASTLINEDEFINED, |
| 290 | Directive.NUMPARAMS, |
| 291 | Directive.IS_VARARG, |
| 292 | Directive.MAXSTACKSIZE, |
| 293 | Directive.SOURCE, |
| 294 | }); |
| 295 | } |
| 296 | |
| 297 | @Override |
| 298 | public void write(OutputStream out, BHeader header, LFunction object) throws IOException { |
| 299 | header.integer.write(out, header, new BInteger(object.linedefined)); |
| 300 | header.integer.write(out, header, new BInteger(object.lastlinedefined)); |
| 301 | out.write(object.numParams); |
| 302 | out.write(object.vararg); |
| 303 | out.write(object.maximumStackSize); |
| 304 | write_code(out, header, object); |
| 305 | write_constants(out, header, object); |
| 306 | write_upvalues(out, header, object); |
| 307 | header.string.write(out, header, object.name); |
| 308 | write_debug(out, header, object); |
| 309 | } |
| 310 | |
| 311 | } |
| 312 | |
| 313 | class LFunctionType53 extends LFunctionType { |
| 314 |
nothing calls this directly
no outgoing calls
no test coverage detected