From d160d79d3fcbd185b9a72db49f3547fc78437101 Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Fri, 28 Feb 2025 15:52:30 +0800 Subject: [PATCH] fix a bug --- src/interpreter/name.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/interpreter/name.c b/src/interpreter/name.c index 1a34c2ad..71966ee1 100644 --- a/src/interpreter/name.c +++ b/src/interpreter/name.c @@ -37,11 +37,10 @@ py_Name py_namev(c11_sv name) { char* p = PK_MALLOC(name.size + 1); memcpy(p, name.data, name.size); p[name.size] = '\0'; - RInternedEntry entry; - entry.data = p; - entry.size = name.size; - entry.obj.type = tp_nil; - c11_vector__push(RInternedEntry, &self->r_interned, entry); + RInternedEntry* entry = c11_vector__emplace(&self->r_interned); + entry->data = p; + entry->size = name.size; + memset(&entry->obj, 0, sizeof(py_TValue)); index = self->r_interned.length; // 1-based // save to _interned c11_smallmap_s2n__set(&self->interned, (c11_sv){p, name.size}, index); @@ -66,7 +65,7 @@ py_GlobalRef py_name2ref(py_Name index) { InternedNames* self = &pk_current_vm->names; assert(index > 0 && index <= self->interned.length); RInternedEntry* entry = c11__at(RInternedEntry, &self->r_interned, index - 1); - if(entry->obj.type == tp_nil){ + if(entry->obj.type == tp_nil) { c11_sv sv; sv.data = entry->data; sv.size = entry->size; @@ -74,4 +73,3 @@ py_GlobalRef py_name2ref(py_Name index) { } return &entry->obj; } -