mirror of
https://github.com/pocketpy/pocketpy
synced 2025-12-06 18:20:17 +00:00
up
This commit is contained in:
parent
a7751461c9
commit
df91490d6a
@ -85,8 +85,7 @@ template <typename T>
|
|||||||
struct Py_ : PyObject {
|
struct Py_ : PyObject {
|
||||||
T _valueT;
|
T _valueT;
|
||||||
|
|
||||||
Py_(T val, const PyVar& type) {
|
Py_(T val, const PyVar& type) : _valueT(val) {
|
||||||
_valueT = val;
|
|
||||||
_value = &_valueT;
|
_value = &_valueT;
|
||||||
_type = type;
|
_type = type;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,7 +21,6 @@ struct NamePointer : BasePointer {
|
|||||||
_Str name;
|
_Str name;
|
||||||
NameScope scope;
|
NameScope scope;
|
||||||
NamePointer(_Str name, NameScope scope) : name(name), scope(scope) {}
|
NamePointer(_Str name, NameScope scope) : name(name), scope(scope) {}
|
||||||
NamePointer(){}
|
|
||||||
|
|
||||||
bool operator==(const NamePointer& other) const {
|
bool operator==(const NamePointer& other) const {
|
||||||
return name == other.name && scope == other.scope;
|
return name == other.name && scope == other.scope;
|
||||||
@ -36,7 +35,6 @@ struct AttrPointer : BasePointer {
|
|||||||
mutable PyVar obj;
|
mutable PyVar obj;
|
||||||
const NamePointer* attr;
|
const NamePointer* attr;
|
||||||
AttrPointer(PyVar obj, const NamePointer* attr) : obj(obj), attr(attr) {}
|
AttrPointer(PyVar obj, const NamePointer* attr) : obj(obj), attr(attr) {}
|
||||||
AttrPointer(){}
|
|
||||||
|
|
||||||
PyVar get(VM* vm, Frame* frame) const;
|
PyVar get(VM* vm, Frame* frame) const;
|
||||||
void set(VM* vm, Frame* frame, PyVar val) const;
|
void set(VM* vm, Frame* frame, PyVar val) const;
|
||||||
@ -47,7 +45,6 @@ struct IndexPointer : BasePointer {
|
|||||||
mutable PyVar obj;
|
mutable PyVar obj;
|
||||||
PyVar index;
|
PyVar index;
|
||||||
IndexPointer(PyVar obj, PyVar index) : obj(obj), index(index) {}
|
IndexPointer(PyVar obj, PyVar index) : obj(obj), index(index) {}
|
||||||
IndexPointer(){}
|
|
||||||
|
|
||||||
PyVar get(VM* vm, Frame* frame) const;
|
PyVar get(VM* vm, Frame* frame) const;
|
||||||
void set(VM* vm, Frame* frame, PyVar val) const;
|
void set(VM* vm, Frame* frame, PyVar val) const;
|
||||||
@ -58,7 +55,6 @@ struct CompoundPointer : BasePointer {
|
|||||||
PyVarList varRefs;
|
PyVarList varRefs;
|
||||||
CompoundPointer(const PyVarList& varRefs) : varRefs(varRefs) {}
|
CompoundPointer(const PyVarList& varRefs) : varRefs(varRefs) {}
|
||||||
CompoundPointer(PyVarList&& varRefs) : varRefs(std::move(varRefs)) {}
|
CompoundPointer(PyVarList&& varRefs) : varRefs(std::move(varRefs)) {}
|
||||||
CompoundPointer(){}
|
|
||||||
|
|
||||||
PyVar get(VM* vm, Frame* frame) const;
|
PyVar get(VM* vm, Frame* frame) const;
|
||||||
void set(VM* vm, Frame* frame, PyVar val) const;
|
void set(VM* vm, Frame* frame, PyVar val) const;
|
||||||
@ -69,7 +65,6 @@ struct UserPointer : BasePointer {
|
|||||||
VarRef p;
|
VarRef p;
|
||||||
uint64_t f_id;
|
uint64_t f_id;
|
||||||
UserPointer(VarRef p, uint64_t f_id) : p(p), f_id(f_id) {}
|
UserPointer(VarRef p, uint64_t f_id) : p(p), f_id(f_id) {}
|
||||||
UserPointer() {}
|
|
||||||
|
|
||||||
PyVar get(VM* vm, Frame* frame) const;
|
PyVar get(VM* vm, Frame* frame) const;
|
||||||
void set(VM* vm, Frame* frame, PyVar val) const;
|
void set(VM* vm, Frame* frame, PyVar val) const;
|
||||||
|
|||||||
2
src/vm.h
2
src/vm.h
@ -54,7 +54,7 @@ protected:
|
|||||||
frame->push(obj);
|
frame->push(obj);
|
||||||
} break;
|
} break;
|
||||||
case OP_LOAD_NAME_PTR: {
|
case OP_LOAD_NAME_PTR: {
|
||||||
frame->push(PyPointer(NamePointer(frame->code->co_names[byte.arg])));
|
frame->push(PyPointer(frame->code->co_names[byte.arg]));
|
||||||
} break;
|
} break;
|
||||||
case OP_STORE_NAME_PTR: {
|
case OP_STORE_NAME_PTR: {
|
||||||
const auto& p = frame->code->co_names[byte.arg];
|
const auto& p = frame->code->co_names[byte.arg];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user