]> Nishi Git Mirror - gwion.git/commitdiff
:art: Poolize Code->name
authorfennecdjay <astor.jeremie@wanadoo.fr>
Sun, 23 Jun 2019 12:44:02 +0000 (14:44 +0200)
committerfennecdjay <astor.jeremie@wanadoo.fr>
Sun, 23 Jun 2019 12:44:02 +0000 (14:44 +0200)
include/vm.h
src/emit/emit.c
src/vm/vm_name.c

index 3c10ea91e28d48d35b8caf61619d5aa418eede30..0106d504346c5ea437891efd6ee1e066d92f154d 100644 (file)
@@ -77,7 +77,7 @@ ANEW VM* new_vm(MemPool, const m_bool);
 ANN void free_vm(VM* vm);
 ANN void vm_add_shred(const VM* vm, const VM_Shred shred)__attribute__((hot));
 ANN void vm_remove(const VM* vm, const m_uint index)__attribute__((hot));
-ANN m_str code_name_set(const m_str, const m_str);
+ANN m_str code_name_set(MemPool p, const m_str, const m_str);
 ANN m_str code_name(const m_str, const m_bool);
 ANN uint32_t gw_rand(uint32_t s[2]);
 ANN void gw_seed(uint32_t s[2], const uint64_t);
index 1eabddde96fa006d2ba645e45186701dbee5eb8e..9ab3b8ac80efbd62ba2b135aa7f37b3fd54552e2 100644 (file)
@@ -99,7 +99,7 @@ ANN static m_bool emit_func_def(const Emitter emit, const Func_Def func_def);
 
 ANEW static Code* new_code(const Emitter emit, const m_str name) {
   Code* code = mp_calloc(emit->gwion->mp, Code);
-  code->name = code_name_set(name, emit->env->name);
+  code->name = code_name_set(emit->gwion->mp, name, emit->env->name);
   vector_init(&code->instr);
   vector_init(&code->stack_break);
   vector_init(&code->stack_cont);
@@ -114,7 +114,7 @@ ANN static void free_code(MemPool p, Code* code) {
   vector_release(&code->stack_cont);
   vector_release(&code->stack_return);
   free_frame(p, code->frame);
-  xfree(code->name);
+  free_mstr(p, code->name);
   mp_free(p, Code, code);
 }
 
index 458fe63df27b3a3abc6d454fec5667c18b697c8c..e16c0c254628952279507f9cba0780e9095ae858 100644 (file)
@@ -4,9 +4,9 @@
 #include "gwion_util.h"
 #include "gwion_ast.h"
 
-m_str code_name_set(const m_str name, const m_str file) {
+m_str code_name_set(MemPool p, const m_str name, const m_str file) {
   const size_t len = strlen(name) + strlen(file) + 2;
-  m_str str = (const m_str)xcalloc(1, len);
+  m_str str = (const m_str)_mp_malloc(p, len);
   sprintf(str, "%s$%s", name, file);
   return str;
 }