fix a bug

This commit is contained in:
blueloveTH 2025-02-28 15:52:30 +08:00
parent 2e31412d3a
commit d160d79d3f

View File

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