This commit is contained in:
blueloveTH 2024-05-02 16:03:24 +08:00
parent f944113567
commit 5be2745220
5 changed files with 10 additions and 9 deletions

View File

@ -373,7 +373,7 @@ struct Array2dIter{
void add_module_array2d(VM* vm){
PyObject* mod = vm->new_module("array2d");
vm->register_user_class<Array2d>(mod, "array2d");
vm->register_user_class<Array2d>(mod, "array2d", 0, true);
vm->register_user_class<Array2dIter>(mod, "_array2d_iter");
vm->bind__iter__(vm->_tp_user<Array2d>(), [](VM* vm, PyObject* _0){

View File

@ -161,8 +161,8 @@ void add_module_c(VM* vm){
return vm->None;
});
vm->register_user_class<VoidP>(mod, "void_p");
vm->register_user_class<C99Struct>(mod, "struct");
vm->register_user_class<VoidP>(mod, "void_p", 0, true);
vm->register_user_class<C99Struct>(mod, "struct", 0, true);
mod->attr().set("NULL", VAR_T(VoidP, nullptr));

View File

@ -545,7 +545,7 @@ namespace pkpy
void add_module_collections(VM *vm)
{
PyObject *mod = vm->new_module("collections");
vm->register_user_class<PyDeque>(mod, "deque");
vm->register_user_class<PyDeque>(mod, "deque", 0, true);
vm->register_user_class<PyDequeIter>(mod, "_deque_iter");
CodeObject_ code = vm->compile(kPythonLibs_collections, "collections.py", EXEC_MODE);
vm->_exec(code, mod);

View File

@ -541,10 +541,10 @@ static Vec2 SmoothDamp(Vec2 current, Vec2 target, Vec2& currentVelocity, float s
void add_module_linalg(VM* vm){
PyObject* linalg = vm->new_module("linalg");
vm->register_user_class<Vec2>(linalg, "vec2");
vm->register_user_class<Vec3>(linalg, "vec3");
vm->register_user_class<Vec4>(linalg, "vec4");
vm->register_user_class<Mat3x3>(linalg, "mat3x3");
vm->register_user_class<Vec2>(linalg, "vec2", 0, true);
vm->register_user_class<Vec3>(linalg, "vec3", 0, true);
vm->register_user_class<Vec4>(linalg, "vec4", 0, true);
vm->register_user_class<Mat3x3>(linalg, "mat3x3", 0, true);
PyObject* float_p = vm->_modules["c"]->attr("float_p");
linalg->attr().set("vec2_p", float_p);

View File

@ -198,7 +198,8 @@ namespace pkpy{
PyObject* obj = heap._new<Type>(tp_type, _all_types.size());
const PyTypeInfo& base_info = _all_types[base];
if(!base_info.subclass_enabled){
TypeError(_S("type ", base_info.name.escape(), " is not `subclass_enabled`"));
Str error = _S("type ", base_info.name.escape(), " is not `subclass_enabled`");
throw std::runtime_error(error.c_str());
}
PyTypeInfo info{
obj,