feat+fix: add extern fns reading; fix VM reading issues
This commit is contained in:
+23
-1
@@ -8,7 +8,7 @@
|
||||
#include <vm/fzl_vm_reader.h>
|
||||
#include <vm/internals/reader.h>
|
||||
|
||||
char reader_err[256];
|
||||
char reader_err[512];
|
||||
|
||||
fzl_vm_reader_t *fzl_vm_mkreader(char *filepath)
|
||||
{
|
||||
@@ -138,7 +138,12 @@ void fzl_vm_freereader(fzl_vm_reader_t *reader)
|
||||
}
|
||||
|
||||
if (reader->extern_libs)
|
||||
{
|
||||
for (uint16_t i = 0; i < reader->extern_libs_count; i++)
|
||||
free(reader->extern_libs[i]);
|
||||
|
||||
free(reader->extern_libs);
|
||||
}
|
||||
|
||||
if (reader->extern_types)
|
||||
{
|
||||
@@ -156,6 +161,8 @@ void fzl_vm_freereader(fzl_vm_reader_t *reader)
|
||||
if (fields[j].name)
|
||||
free(fields[j].name);
|
||||
}
|
||||
|
||||
free(fields);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,7 +170,22 @@ void fzl_vm_freereader(fzl_vm_reader_t *reader)
|
||||
}
|
||||
|
||||
if (reader->extern_fns)
|
||||
{
|
||||
for (uint16_t i = 0; i < reader->extern_fns_count; i++)
|
||||
{
|
||||
fzl_extern_fn_t *fn = &reader->extern_fns[i];
|
||||
if (fn->used_name)
|
||||
free(fn->used_name);
|
||||
|
||||
if (fn->symbol_name)
|
||||
free(fn->symbol_name);
|
||||
|
||||
if (fn->args_count > 0)
|
||||
free(fn->args);
|
||||
}
|
||||
|
||||
free(reader->extern_fns);
|
||||
}
|
||||
|
||||
if (reader->ops)
|
||||
free(reader->ops);
|
||||
|
||||
Reference in New Issue
Block a user