summaryrefslogtreecommitdiff
path: root/src/generate-names.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/generate-names.c')
-rw-r--r--src/generate-names.c79
1 files changed, 33 insertions, 46 deletions
diff --git a/src/generate-names.c b/src/generate-names.c
index cab129ba..98aa448f 100644
--- a/src/generate-names.c
+++ b/src/generate-names.c
@@ -19,7 +19,6 @@
#include <assert.h>
#include <stdio.h>
-#include "allocator.h"
#include "ast.h"
#define CHECK_RESULT(expr) \
@@ -29,7 +28,6 @@
} while (0)
typedef struct Context {
- WabtAllocator* allocator;
WabtModule* module;
WabtExprVisitor visitor;
WabtStringSliceVector index_to_name;
@@ -40,8 +38,7 @@ static WabtBool has_name(WabtStringSlice* str) {
return str->length > 0;
}
-static void generate_name(WabtAllocator* allocator,
- const char* prefix,
+static void generate_name(const char* prefix,
uint32_t index,
WabtStringSlice* str) {
size_t prefix_len = strlen(prefix);
@@ -52,39 +49,35 @@ static void generate_name(WabtAllocator* allocator,
WabtStringSlice buf;
buf.length = actual_len;
buf.start = buffer;
- *str = wabt_dup_string_slice(allocator, buf);
+ *str = wabt_dup_string_slice(buf);
}
-static void maybe_generate_name(WabtAllocator* allocator,
- const char* prefix,
+static void maybe_generate_name(const char* prefix,
uint32_t index,
WabtStringSlice* str) {
if (!has_name(str))
- generate_name(allocator, prefix, index, str);
+ generate_name(prefix, index, str);
}
-static void generate_and_bind_name(WabtAllocator* allocator,
- WabtBindingHash* bindings,
+static void generate_and_bind_name(WabtBindingHash* bindings,
const char* prefix,
uint32_t index,
WabtStringSlice* str) {
- generate_name(allocator, prefix, index, str);
+ generate_name(prefix, index, str);
WabtBinding* binding;
- binding = wabt_insert_binding(allocator, bindings, str);
+ binding = wabt_insert_binding(bindings, str);
binding->index = index;
}
-static void maybe_generate_and_bind_name(WabtAllocator* allocator,
- WabtBindingHash* bindings,
+static void maybe_generate_and_bind_name(WabtBindingHash* bindings,
const char* prefix,
uint32_t index,
WabtStringSlice* str) {
if (!has_name(str))
- generate_and_bind_name(allocator, bindings, prefix, index, str);
+ generate_and_bind_name(bindings, prefix, index, str);
}
-static void generate_and_bind_local_names(WabtAllocator* allocator,
- WabtStringSliceVector* index_to_name,
+static void generate_and_bind_local_names(WabtStringSliceVector* index_to_name,
WabtBindingHash* bindings,
const char* prefix) {
size_t i;
@@ -94,29 +87,26 @@ static void generate_and_bind_local_names(WabtAllocator* allocator,
continue;
WabtStringSlice new_name;
- generate_and_bind_name(allocator, bindings, prefix, i, &new_name);
+ generate_and_bind_name(bindings, prefix, i, &new_name);
index_to_name->data[i] = new_name;
}
}
static WabtResult begin_block_expr(WabtExpr* expr, void* user_data) {
Context* ctx = user_data;
- maybe_generate_name(ctx->allocator, "$B", ctx->label_count++,
- &expr->block.label);
+ maybe_generate_name("$B", ctx->label_count++, &expr->block.label);
return WABT_OK;
}
static WabtResult begin_loop_expr(WabtExpr* expr, void* user_data) {
Context* ctx = user_data;
- maybe_generate_name(ctx->allocator, "$L", ctx->label_count++,
- &expr->loop.label);
+ maybe_generate_name("$L", ctx->label_count++, &expr->loop.label);
return WABT_OK;
}
static WabtResult begin_if_expr(WabtExpr* expr, void* user_data) {
Context* ctx = user_data;
- maybe_generate_name(ctx->allocator, "$L", ctx->label_count++,
- &expr->if_.true_.label);
+ maybe_generate_name("$L", ctx->label_count++, &expr->if_.true_.label);
return WABT_OK;
}
@@ -124,20 +114,18 @@ static WabtResult begin_if_expr(WabtExpr* expr, void* user_data) {
static WabtResult visit_func(Context* ctx,
uint32_t func_index,
WabtFunc* func) {
- maybe_generate_and_bind_name(ctx->allocator, &ctx->module->func_bindings,
- "$f", func_index, &func->name);
+ maybe_generate_and_bind_name(&ctx->module->func_bindings, "$f", func_index,
+ &func->name);
wabt_make_type_binding_reverse_mapping(
- ctx->allocator, &func->decl.sig.param_types, &func->param_bindings,
- &ctx->index_to_name);
- generate_and_bind_local_names(ctx->allocator, &ctx->index_to_name,
- &func->param_bindings, "$p");
+ &func->decl.sig.param_types, &func->param_bindings, &ctx->index_to_name);
+ generate_and_bind_local_names(&ctx->index_to_name, &func->param_bindings,
+ "$p");
- wabt_make_type_binding_reverse_mapping(ctx->allocator, &func->local_types,
- &func->local_bindings,
- &ctx->index_to_name);
- generate_and_bind_local_names(ctx->allocator, &ctx->index_to_name,
- &func->local_bindings, "$l");
+ wabt_make_type_binding_reverse_mapping(
+ &func->local_types, &func->local_bindings, &ctx->index_to_name);
+ generate_and_bind_local_names(&ctx->index_to_name, &func->local_bindings,
+ "$l");
ctx->label_count = 0;
CHECK_RESULT(wabt_visit_func(func, &ctx->visitor));
@@ -147,32 +135,32 @@ static WabtResult visit_func(Context* ctx,
static WabtResult visit_global(Context* ctx,
uint32_t global_index,
WabtGlobal* global) {
- maybe_generate_and_bind_name(ctx->allocator, &ctx->module->global_bindings,
- "$g", global_index, &global->name);
+ maybe_generate_and_bind_name(&ctx->module->global_bindings, "$g",
+ global_index, &global->name);
return WABT_OK;
}
static WabtResult visit_func_type(Context* ctx,
uint32_t func_type_index,
WabtFuncType* func_type) {
- maybe_generate_and_bind_name(ctx->allocator, &ctx->module->func_type_bindings,
- "$t", func_type_index, &func_type->name);
+ maybe_generate_and_bind_name(&ctx->module->func_type_bindings, "$t",
+ func_type_index, &func_type->name);
return WABT_OK;
}
static WabtResult visit_table(Context* ctx,
uint32_t table_index,
WabtTable* table) {
- maybe_generate_and_bind_name(ctx->allocator, &ctx->module->table_bindings,
- "$T", table_index, &table->name);
+ maybe_generate_and_bind_name(&ctx->module->table_bindings, "$T", table_index,
+ &table->name);
return WABT_OK;
}
static WabtResult visit_memory(Context* ctx,
uint32_t memory_index,
WabtMemory* memory) {
- maybe_generate_and_bind_name(ctx->allocator, &ctx->module->memory_bindings,
- "$M", memory_index, &memory->name);
+ maybe_generate_and_bind_name(&ctx->module->memory_bindings, "$M",
+ memory_index, &memory->name);
return WABT_OK;
}
@@ -191,16 +179,15 @@ static WabtResult visit_module(Context* ctx, WabtModule* module) {
return WABT_OK;
}
-WabtResult wabt_generate_names(WabtAllocator* allocator, WabtModule* module) {
+WabtResult wabt_generate_names(WabtModule* module) {
Context ctx;
WABT_ZERO_MEMORY(ctx);
- ctx.allocator = allocator;
ctx.visitor.user_data = &ctx;
ctx.visitor.begin_block_expr = begin_block_expr;
ctx.visitor.begin_loop_expr = begin_loop_expr;
ctx.visitor.begin_if_expr = begin_if_expr;
ctx.module = module;
WabtResult result = visit_module(&ctx, module);
- wabt_destroy_string_slice_vector(allocator, &ctx.index_to_name);
+ wabt_destroy_string_slice_vector(&ctx.index_to_name);
return result;
}