Fixed memory error in exception printing.

Conflation between char* & char**.
This commit is contained in:
Jacob Signorovitch 2025-02-25 07:47:08 -05:00
parent eb3fbca030
commit 8cab531129
4 changed files with 8 additions and 8 deletions

View File

@ -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;
}

View File

@ -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) {

View File

@ -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);
}

View File

@ -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);