summaryrefslogtreecommitdiff
path: root/src/wasm-apply-names.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm-apply-names.c')
-rw-r--r--src/wasm-apply-names.c70
1 files changed, 31 insertions, 39 deletions
diff --git a/src/wasm-apply-names.c b/src/wasm-apply-names.c
index b9fdcaa7..68ec4354 100644
--- a/src/wasm-apply-names.c
+++ b/src/wasm-apply-names.c
@@ -110,13 +110,23 @@ static WasmResult use_name_for_global_var(WasmAllocator* allocator,
return WASM_OK;
}
-static WasmResult use_name_for_import_var(WasmAllocator* allocator,
+static WasmResult use_name_for_table_var(WasmAllocator* allocator,
+ WasmModule* module,
+ WasmVar* var) {
+ WasmTable* table = wasm_get_table_by_var(module, var);
+ if (table == NULL)
+ return WASM_ERROR;
+ use_name_for_var(allocator, &table->name, var);
+ return WASM_OK;
+}
+
+static WasmResult use_name_for_memory_var(WasmAllocator* allocator,
WasmModule* module,
WasmVar* var) {
- WasmImport* import = wasm_get_import_by_var(module, var);
- if (import == NULL)
+ WasmMemory* memory = wasm_get_memory_by_var(module, var);
+ if (memory == NULL)
return WASM_ERROR;
- use_name_for_var(allocator, &import->name, var);
+ use_name_for_var(allocator, &memory->name, var);
return WASM_OK;
}
@@ -125,10 +135,9 @@ static WasmResult use_name_for_param_and_local_var(Context* ctx,
WasmVar* var) {
int local_index = wasm_get_local_index_by_var(func, var);
assert(local_index >= 0 &&
- (size_t)local_index <
- wasm_get_num_params_and_locals(ctx->module, func));
+ (size_t)local_index < wasm_get_num_params_and_locals(func));
- uint32_t num_params = wasm_get_num_params(ctx->module, func);
+ uint32_t num_params = wasm_get_num_params(func);
WasmStringSlice* name;
if ((uint32_t)local_index < num_params) {
/* param */
@@ -214,13 +223,6 @@ static WasmResult on_call_expr(WasmExpr* expr, void* user_data) {
return WASM_OK;
}
-static WasmResult on_call_import_expr(WasmExpr* expr, void* user_data) {
- Context* ctx = user_data;
- CHECK_RESULT(use_name_for_import_var(ctx->allocator, ctx->module,
- &expr->call_import.var));
- return WASM_OK;
-}
-
static WasmResult on_call_indirect_expr(WasmExpr* expr, void* user_data) {
Context* ctx = user_data;
CHECK_RESULT(use_name_for_func_type_var(ctx->allocator, ctx->module,
@@ -254,25 +256,6 @@ static WasmResult end_if_expr(WasmExpr* expr, void* user_data) {
return WASM_OK;
}
-static WasmResult begin_if_else_expr(WasmExpr* expr, void* user_data) {
- Context* ctx = user_data;
- push_label(ctx, &expr->if_else.true_.label);
- return WASM_OK;
-}
-
-static WasmResult after_if_else_true_expr(WasmExpr* expr, void* user_data) {
- Context* ctx = user_data;
- pop_label(ctx);
- push_label(ctx, &expr->if_else.false_.label);
- return WASM_OK;
-}
-
-static WasmResult end_if_else_expr(WasmExpr* expr, void* user_data) {
- Context* ctx = user_data;
- pop_label(ctx);
- return WASM_OK;
-}
-
static WasmResult on_set_global_expr(WasmExpr* expr, void* user_data) {
Context* ctx = user_data;
CHECK_RESULT(use_name_for_global_var(ctx->allocator, ctx->module,
@@ -319,9 +302,10 @@ static WasmResult visit_func(Context* ctx,
static WasmResult visit_import(Context* ctx,
uint32_t import_index,
WasmImport* import) {
- if (wasm_decl_has_func_type(&import->decl)) {
+ if (import->kind == WASM_EXTERNAL_KIND_FUNC &&
+ wasm_decl_has_func_type(&import->func.decl)) {
CHECK_RESULT(use_name_for_func_type_var(ctx->allocator, ctx->module,
- &import->decl.type_var));
+ &import->func.decl.type_var));
}
return WASM_OK;
}
@@ -337,6 +321,8 @@ static WasmResult visit_elem_segment(Context* ctx,
uint32_t elem_segment_index,
WasmElemSegment* segment) {
size_t i;
+ CHECK_RESULT(
+ use_name_for_table_var(ctx->allocator, ctx->module, &segment->table_var));
for (i = 0; i < segment->vars.size; ++i) {
CHECK_RESULT(use_name_for_func_var(ctx->allocator, ctx->module,
&segment->vars.data[i]));
@@ -344,6 +330,14 @@ static WasmResult visit_elem_segment(Context* ctx,
return WASM_OK;
}
+static WasmResult visit_data_segment(Context* ctx,
+ uint32_t data_segment_index,
+ WasmDataSegment* segment) {
+ CHECK_RESULT(use_name_for_memory_var(ctx->allocator, ctx->module,
+ &segment->memory_var));
+ return WASM_OK;
+}
+
static WasmResult visit_module(Context* ctx, WasmModule* module) {
size_t i;
for (i = 0; i < module->imports.size; ++i)
@@ -354,6 +348,8 @@ static WasmResult visit_module(Context* ctx, WasmModule* module) {
CHECK_RESULT(visit_export(ctx, i, module->exports.data[i]));
for (i = 0; i < module->elem_segments.size; ++i)
CHECK_RESULT(visit_elem_segment(ctx, i, module->elem_segments.data[i]));
+ for (i = 0; i < module->data_segments.size; ++i)
+ CHECK_RESULT(visit_data_segment(ctx, i, module->data_segments.data[i]));
return WASM_OK;
}
@@ -371,15 +367,11 @@ WasmResult wasm_apply_names(WasmAllocator* allocator, WasmModule* module) {
ctx.visitor.on_br_if_expr = on_br_if_expr;
ctx.visitor.on_br_table_expr = on_br_table_expr;
ctx.visitor.on_call_expr = on_call_expr;
- ctx.visitor.on_call_import_expr = on_call_import_expr;
ctx.visitor.on_call_indirect_expr = on_call_indirect_expr;
ctx.visitor.on_get_global_expr = on_get_global_expr;
ctx.visitor.on_get_local_expr = on_get_local_expr;
ctx.visitor.begin_if_expr = begin_if_expr;
ctx.visitor.end_if_expr = end_if_expr;
- ctx.visitor.begin_if_else_expr = begin_if_else_expr;
- ctx.visitor.after_if_else_true_expr = after_if_else_true_expr;
- ctx.visitor.end_if_else_expr = end_if_else_expr;
ctx.visitor.on_set_global_expr = on_set_global_expr;
ctx.visitor.on_set_local_expr = on_set_local_expr;
ctx.visitor.on_tee_local_expr = on_tee_local_expr;