summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/binaryen-c.cpp4
-rw-r--r--src/wasm-binary.h3
-rw-r--r--src/wasm-dis.cpp4
-rw-r--r--src/wasm-s-parser.h2
4 files changed, 9 insertions, 4 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp
index 583f64094..ecb70bc1b 100644
--- a/src/binaryen-c.cpp
+++ b/src/binaryen-c.cpp
@@ -416,7 +416,9 @@ BinaryenModuleRef BinaryenModuleRead(char* input, size_t inputSize) {
std::vector<char> buffer(false);
buffer.resize(inputSize);
std::copy_n(input, inputSize, buffer.begin());
- WasmBinaryBuilder parser(*wasm, buffer, false);
+ WasmBinaryBuilder parser(*wasm, buffer, []() {
+ Fatal() << "error in parsing wasm binary";
+ }, false);
parser.read();
return wasm;
}
diff --git a/src/wasm-binary.h b/src/wasm-binary.h
index c889f1418..4670c9de3 100644
--- a/src/wasm-binary.h
+++ b/src/wasm-binary.h
@@ -1164,13 +1164,14 @@ class WasmBinaryBuilder {
Module& wasm;
MixedArena& allocator;
std::vector<char>& input;
+ std::function<void ()> onError;
bool debug;
size_t pos = 0;
int32_t startIndex = -1;
public:
- WasmBinaryBuilder(Module& wasm, std::vector<char>& input, bool debug) : wasm(wasm), allocator(wasm.allocator), input(input), debug(debug) {}
+ WasmBinaryBuilder(Module& wasm, std::vector<char>& input, std::function<void ()> onError, bool debug) : wasm(wasm), allocator(wasm.allocator), input(input), onError(onError), debug(debug) {}
void read() {
diff --git a/src/wasm-dis.cpp b/src/wasm-dis.cpp
index e2e103b46..94965518c 100644
--- a/src/wasm-dis.cpp
+++ b/src/wasm-dis.cpp
@@ -45,7 +45,9 @@ int main(int argc, const char *argv[]) {
if (options.debug) std::cerr << "parsing binary..." << std::endl;
Module wasm;
- WasmBinaryBuilder parser(wasm, input, options.debug);
+ WasmBinaryBuilder parser(wasm, input, []() {
+ Fatal() << "error in parsing wasm binary";
+ }, options.debug);
parser.read();
if (options.debug) std::cerr << "Printing..." << std::endl;
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h
index 73421e773..4b27918d3 100644
--- a/src/wasm-s-parser.h
+++ b/src/wasm-s-parser.h
@@ -259,7 +259,7 @@ public:
stringToBinary(str, size, data);
}
}
- WasmBinaryBuilder binaryBuilder(wasm, data, false);
+ WasmBinaryBuilder binaryBuilder(wasm, data, onError, false);
binaryBuilder.read();
return;
}