feat: add object escaping on assing to variable in outer env
This commit is contained in:
@@ -4,8 +4,8 @@
|
||||
#include <vm/internals/opcode.h>
|
||||
|
||||
// Escape objects with nested objects check
|
||||
static void escape_recursive(fzl_vm_env_t *current, fzl_vm_env_t *parent,
|
||||
fzl_vm_object_t *obj)
|
||||
void escape_recursive(fzl_vm_env_t *current, fzl_vm_env_t *parent,
|
||||
fzl_vm_object_t *obj)
|
||||
{
|
||||
if (!current || !parent || !obj)
|
||||
return;
|
||||
@@ -60,8 +60,10 @@ int op_alloc_object(fzl_vm_t *vm)
|
||||
uint64_t values_count = vm->ops[++vm->ip];
|
||||
fzl_vm_object_t *obj = malloc(sizeof(fzl_vm_object_t));
|
||||
|
||||
if (values_count > 0)
|
||||
obj->values = malloc(values_count * sizeof(fzl_value_t));
|
||||
if (values_count < 1)
|
||||
values_count = 1;
|
||||
|
||||
obj->values = malloc(values_count * sizeof(fzl_value_t));
|
||||
obj->values_count = values_count;
|
||||
memset(obj->values, 0, values_count * sizeof(fzl_value_t));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user