From 0ad94fbc56671283811128a442f04446090906dc Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Sun, 14 Apr 2019 14:06:56 +0200 Subject: [PATCH] Fix the lineNumer in some WasmExceptions --- .../jwebassembly/module/JavaMethodWasmCodeBuilder.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/de/inetsoftware/jwebassembly/module/JavaMethodWasmCodeBuilder.java b/src/de/inetsoftware/jwebassembly/module/JavaMethodWasmCodeBuilder.java index a7dd382..3d4b6c4 100644 --- a/src/de/inetsoftware/jwebassembly/module/JavaMethodWasmCodeBuilder.java +++ b/src/de/inetsoftware/jwebassembly/module/JavaMethodWasmCodeBuilder.java @@ -80,11 +80,12 @@ class JavaMethodWasmCodeBuilder extends WasmCodeBuilder { * if some Java code can't converted */ private void writeCode( CodeInputStream byteCode, ConstantPool constantPool, boolean hasReturn ) throws WasmException { + int lineNumber = -1; try { boolean wide = false; while( byteCode.available() > 0 ) { int codePos = byteCode.getCodePosition(); - int lineNumber = byteCode.getLineNumber(); + lineNumber = byteCode.getLineNumber(); int op = byteCode.readUnsignedByte(); switch( op ) { case 0: // nop @@ -654,10 +655,8 @@ class JavaMethodWasmCodeBuilder extends WasmCodeBuilder { // But WebAssembly need the dead code to validate addBlockInstruction( WasmBlockOperator.UNREACHABLE, null, byteCode.getCodePosition(), byteCode.getLineNumber() ); } - } catch( WasmException ex ) { - throw ex; } catch( Exception ex ) { - throw WasmException.create( ex, byteCode.getLineNumber() ); + throw WasmException.create( ex, lineNumber ); } }