some refactor

This commit is contained in:
blueloveTH 2025-08-30 21:44:33 +08:00
parent 1d16d1a6f7
commit 33be8e869a
3 changed files with 5 additions and 13 deletions

View File

@ -11,12 +11,9 @@ typedef struct ValueStack {
py_TValue* sp;
py_TValue* end;
// We allocate extra places to keep `_sp` valid to detect stack overflow
py_TValue begin[PK_VM_STACK_SIZE + PK_MAX_CO_VARNAMES * 2];
py_TValue begin[PK_VM_STACK_SIZE + PK_MAX_CO_VARNAMES];
} ValueStack;
void ValueStack__ctor(ValueStack* self);
void ValueStack__dtor(ValueStack* self);
typedef struct UnwindTarget {
struct UnwindTarget* next;
int iblock;

View File

@ -7,12 +7,6 @@
#include <stdbool.h>
#include <assert.h>
void ValueStack__ctor(ValueStack* self) {
self->sp = self->begin;
self->end = self->begin + PK_VM_STACK_SIZE;
}
void ValueStack__dtor(ValueStack* self) { self->sp = self->begin; }
void FastLocals__to_dict(py_TValue* locals, const CodeObject* co) {
py_StackRef dict = py_pushtmp();

View File

@ -110,7 +110,8 @@ void VM__ctor(VM* self) {
FixedMemoryPool__ctor(&self->pool_frame, sizeof(py_Frame), 32);
ManagedHeap__ctor(&self->heap);
ValueStack__ctor(&self->stack);
self->stack.sp = self->stack.begin;
self->stack.end = self->stack.begin + PK_VM_STACK_SIZE;
CachedNames__ctor(&self->cached_names);
NameDict__ctor(&self->compile_time_funcs, PK_TYPE_ATTR_LOAD_FACTOR);
@ -288,11 +289,11 @@ void VM__dtor(VM* self) {
// destroy all objects
ManagedHeap__dtor(&self->heap);
// clear frames
while(self->top_frame)
while(self->top_frame) {
VM__pop_frame(self);
}
BinTree__dtor(&self->modules);
FixedMemoryPool__dtor(&self->pool_frame);
ValueStack__dtor(&self->stack);
CachedNames__dtor(&self->cached_names);
NameDict__dtor(&self->compile_time_funcs);
c11_vector__dtor(&self->types);