diff --git a/src/ast.c b/src/ast.c index 5df11be..8e84986 100644 --- a/src/ast.c +++ b/src/ast.c @@ -78,13 +78,13 @@ void ast_num_print(ASTNumData* data, int i) { INDENT_END; } -ASTExcData* ast_exc_data_init(char* msg) { return (ASTExcData*)msg; } +ASTExcData ast_exc_data_init(char* msg) { return (ASTExcData)msg; } -void ast_exc_print(ASTExcData* data, int i) { +void ast_exc_print(ASTExcData data, int i) { INDENT_BEGIN(i); INDENT_TITLE("ASTExcData", data); - INDENT_FIELD("msg", "\"%s\"", *data); + INDENT_FIELD("msg", "\"%s\"", data); INDENT_END; } diff --git a/src/exec.c b/src/exec.c index c044f1c..5ea5729 100644 --- a/src/exec.c +++ b/src/exec.c @@ -72,7 +72,7 @@ AST* exec_call(AST* ast) { default: return ast_init(AST_TYPE_EXC, ast_exc_data_init("Good job")); } - return ast_init(AST_TYPE_EXC, ast_exc_data_init("No such function found.")); + return ast_init(AST_TYPE_EXC, ast_exc_data_init(strdup("No such function found."))); } AST* exec_find(char* name) { diff --git a/src/htab.c b/src/htab.c index 63f36ac..f214253 100644 --- a/src/htab.c +++ b/src/htab.c @@ -20,7 +20,7 @@ void htab_destroy(HTab *htab) { // Get the index of a key. size_t geti(char* key) { uint64_t hash = fnv1a_hash(key, strlen(key)); - size_t i = hash & (HTAB_SPACE - 1); + size_t i = hash & (HTAB_SPACE - 1); // Magic. return i; } @@ -32,7 +32,7 @@ void* htab_get(HTab* htab, char* key) { void htab_ins(HTab* htab, char* key, void* data) { size_t i = geti(key); - assert((*htab)[i] == NULL); + //assert((*htab)[i] == NULL); (*htab)[i] = data; log_dbgf("Inserted something to hash table @ index %lu", i); } diff --git a/src/include/ast.h b/src/include/ast.h index a26b6a8..21f3db9 100644 --- a/src/include/ast.h +++ b/src/include/ast.h @@ -42,9 +42,9 @@ void ast_num_print(ASTNumData*, int i); // An exception. typedef char* ASTExcData; -ASTExcData* ast_exc_data_init(char* msg); +ASTExcData ast_exc_data_init(char* msg); void ast_exc_data_destroy(ASTExcData* exc); -void ast_exc_print(ASTExcData*, int i); +void ast_exc_print(ASTExcData, int i); // A built-in function. typedef AST* (*ASTBIFData)(size_t argc, AST** argv);