global setup

This commit is contained in:
blueloveTH 2024-06-16 22:04:47 +08:00
parent 9db1becebf
commit 4d5e6c6b59
3 changed files with 9 additions and 0 deletions

View File

@ -15,6 +15,11 @@ extern "C" {
typedef int16_t pkpy_Type;
typedef struct PyObject PyObject;
typedef struct pkpy_VM pkpy_VM;
struct pkpy_G {
pkpy_VM* vm;
} extern pkpy_g;
typedef struct PyVar{
pkpy_Type type;

View File

@ -86,6 +86,8 @@ struct JsonSerializer {
VM::VM(bool enable_os) : heap(this), enable_os(enable_os) {
Pools_initialize();
pkpy_StrName__initialize();
pkpy_g.vm = (pkpy_VM*)this; // setup the current VM
static ::PyObject __true_obj = {tp_bool, false, false, NULL};
static ::PyObject __false_obj = {tp_bool, false, false, NULL};
static ::PyObject __none_obj = {tp_none_type, false, false, NULL};

View File

@ -1,5 +1,7 @@
#include "pocketpy/objects/base.h"
struct pkpy_G pkpy_g;
PyVar pkpy_NULL = {.type=0, .is_ptr=false, .extra=0, ._i64=0};
PyVar pkpy_OP_CALL = {.type=27, .is_ptr=false, .extra=0, ._i64=0};
PyVar pkpy_OP_YIELD = {.type=28, .is_ptr=false, .extra=0, ._i64=0};