|
|
@@ -104,7 +104,6 @@ struct PyObject{
|
|
|
PyObject* attr(StrName name) const { return (*_attr)[name]; }
|
|
|
|
|
|
virtual void _obj_gc_mark() = 0;
|
|
|
- virtual void* _value_ptr() = 0;
|
|
|
|
|
|
PyObject(Type type) : gc_enabled(true), gc_marked(false), type(type), _attr(nullptr) {}
|
|
|
|
|
|
@@ -128,7 +127,6 @@ struct PySignalObject: PyObject {
|
|
|
gc_enabled = false;
|
|
|
}
|
|
|
void _obj_gc_mark() override {}
|
|
|
- void* _value_ptr() override { return nullptr; }
|
|
|
};
|
|
|
|
|
|
inline PyObject* const PY_NULL = new PySignalObject();
|
|
|
@@ -170,8 +168,6 @@ struct Py_ final: PyObject {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- void* _value_ptr() override { return &_value; }
|
|
|
-
|
|
|
template <typename... Args>
|
|
|
Py_(Type type, Args&&... args) : PyObject(type), _value(std::forward<Args>(args)...) { }
|
|
|
};
|
|
|
@@ -215,7 +211,6 @@ struct Py_<i64> final: PyObject {
|
|
|
i64 _value;
|
|
|
Py_(Type type, i64 val): PyObject(type), _value(val) {}
|
|
|
void _obj_gc_mark() override {}
|
|
|
- void* _value_ptr() override { return &_value; }
|
|
|
};
|
|
|
|
|
|
inline bool try_cast_int(PyObject* obj, i64* val) noexcept {
|
|
|
@@ -239,7 +234,6 @@ struct Py_<List> final: PyObject {
|
|
|
void _obj_gc_mark() override {
|
|
|
for(PyObject* obj: _value) PK_OBJ_MARK(obj);
|
|
|
}
|
|
|
- void* _value_ptr() override { return &_value; }
|
|
|
};
|
|
|
|
|
|
template<>
|
|
|
@@ -251,7 +245,6 @@ struct Py_<Tuple> final: PyObject {
|
|
|
void _obj_gc_mark() override {
|
|
|
for(PyObject* obj: _value) PK_OBJ_MARK(obj);
|
|
|
}
|
|
|
- void* _value_ptr() override { return &_value; }
|
|
|
};
|
|
|
|
|
|
template<>
|
|
|
@@ -261,7 +254,6 @@ struct Py_<MappingProxy> final: PyObject {
|
|
|
void _obj_gc_mark() override {
|
|
|
PK_OBJ_MARK(_value.obj);
|
|
|
}
|
|
|
- void* _value_ptr() override { return &_value; }
|
|
|
};
|
|
|
|
|
|
template<>
|
|
|
@@ -272,7 +264,6 @@ struct Py_<BoundMethod> final: PyObject {
|
|
|
PK_OBJ_MARK(_value.self);
|
|
|
PK_OBJ_MARK(_value.func);
|
|
|
}
|
|
|
- void* _value_ptr() override { return &_value; }
|
|
|
};
|
|
|
|
|
|
template<>
|
|
|
@@ -282,7 +273,6 @@ struct Py_<StarWrapper> final: PyObject {
|
|
|
void _obj_gc_mark() override {
|
|
|
PK_OBJ_MARK(_value.obj);
|
|
|
}
|
|
|
- void* _value_ptr() override { return &_value; }
|
|
|
};
|
|
|
|
|
|
template<>
|
|
|
@@ -292,7 +282,6 @@ struct Py_<StaticMethod> final: PyObject {
|
|
|
void _obj_gc_mark() override {
|
|
|
PK_OBJ_MARK(_value.func);
|
|
|
}
|
|
|
- void* _value_ptr() override { return &_value; }
|
|
|
};
|
|
|
|
|
|
template<>
|
|
|
@@ -302,7 +291,6 @@ struct Py_<ClassMethod> final: PyObject {
|
|
|
void _obj_gc_mark() override {
|
|
|
PK_OBJ_MARK(_value.func);
|
|
|
}
|
|
|
- void* _value_ptr() override { return &_value; }
|
|
|
};
|
|
|
|
|
|
template<>
|
|
|
@@ -313,7 +301,6 @@ struct Py_<Property> final: PyObject {
|
|
|
PK_OBJ_MARK(_value.getter);
|
|
|
PK_OBJ_MARK(_value.setter);
|
|
|
}
|
|
|
- void* _value_ptr() override { return &_value; }
|
|
|
};
|
|
|
|
|
|
template<>
|
|
|
@@ -325,7 +312,6 @@ struct Py_<Slice> final: PyObject {
|
|
|
PK_OBJ_MARK(_value.stop);
|
|
|
PK_OBJ_MARK(_value.step);
|
|
|
}
|
|
|
- void* _value_ptr() override { return &_value; }
|
|
|
};
|
|
|
|
|
|
template<>
|
|
|
@@ -336,7 +322,6 @@ struct Py_<Super> final: PyObject {
|
|
|
void _obj_gc_mark() override {
|
|
|
PK_OBJ_MARK(_value.first);
|
|
|
}
|
|
|
- void* _value_ptr() override { return &_value; }
|
|
|
};
|
|
|
|
|
|
template<>
|
|
|
@@ -345,7 +330,6 @@ struct Py_<DummyInstance> final: PyObject {
|
|
|
_enable_instance_dict();
|
|
|
}
|
|
|
void _obj_gc_mark() override {}
|
|
|
- void* _value_ptr() override { return nullptr; }
|
|
|
};
|
|
|
|
|
|
template<>
|
|
|
@@ -355,7 +339,6 @@ struct Py_<Type> final: PyObject {
|
|
|
_enable_instance_dict(PK_TYPE_ATTR_LOAD_FACTOR);
|
|
|
}
|
|
|
void _obj_gc_mark() override {}
|
|
|
- void* _value_ptr() override { return &_value; }
|
|
|
};
|
|
|
|
|
|
template<>
|
|
|
@@ -364,7 +347,6 @@ struct Py_<DummyModule> final: PyObject {
|
|
|
_enable_instance_dict(PK_TYPE_ATTR_LOAD_FACTOR);
|
|
|
}
|
|
|
void _obj_gc_mark() override {}
|
|
|
- void* _value_ptr() override { return nullptr; }
|
|
|
};
|
|
|
|
|
|
} // namespace pkpy
|