summaryrefslogtreecommitdiff
path: root/src/tools/wasm-objdump.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/wasm-objdump.cc')
-rw-r--r--src/tools/wasm-objdump.cc18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/tools/wasm-objdump.cc b/src/tools/wasm-objdump.cc
index 5ecf8854..94d80a79 100644
--- a/src/tools/wasm-objdump.cc
+++ b/src/tools/wasm-objdump.cc
@@ -74,13 +74,13 @@ static void parse_options(int argc, char** argv) {
}
Result dump_file(const char* filename) {
- char* char_data;
- size_t size;
- Result result = read_file(filename, &char_data, &size);
+ std::vector<uint8_t> file_data;
+ Result result = ReadFile(filename, &file_data);
if (Failed(result))
return result;
- uint8_t* data = reinterpret_cast<uint8_t*>(char_data);
+ uint8_t* data = DataOrNull(file_data);
+ size_t size = file_data.size();
// Perform serveral passed over the binary in order to print out different
// types of information.
@@ -93,7 +93,7 @@ Result dump_file(const char* filename) {
s_objdump_options.mode = ObjdumpMode::Prepass;
result = read_binary_objdump(data, size, &s_objdump_options, &state);
if (Failed(result))
- goto done;
+ return result;
s_objdump_options.log_stream = nullptr;
// Pass 1: Print the section headers
@@ -101,7 +101,7 @@ Result dump_file(const char* filename) {
s_objdump_options.mode = ObjdumpMode::Headers;
result = read_binary_objdump(data, size, &s_objdump_options, &state);
if (Failed(result))
- goto done;
+ return result;
}
// Pass 2: Print extra information based on section type
@@ -109,7 +109,7 @@ Result dump_file(const char* filename) {
s_objdump_options.mode = ObjdumpMode::Details;
result = read_binary_objdump(data, size, &s_objdump_options, &state);
if (Failed(result))
- goto done;
+ return result;
}
// Pass 3: Disassemble code section
@@ -117,7 +117,7 @@ Result dump_file(const char* filename) {
s_objdump_options.mode = ObjdumpMode::Disassemble;
result = read_binary_objdump(data, size, &s_objdump_options, &state);
if (Failed(result))
- goto done;
+ return result;
}
// Pass 4: Dump to raw contents of the sections
@@ -126,8 +126,6 @@ Result dump_file(const char* filename) {
result = read_binary_objdump(data, size, &s_objdump_options, &state);
}
-done:
- delete[] data;
return result;
}