This commit is contained in:
blueloveTH 2024-05-03 15:23:16 +08:00
parent bdac85340e
commit 3ae17e00f2
5 changed files with 5 additions and 15 deletions

View File

@ -198,8 +198,6 @@ static PyObject* lua_popx_multi_to_python(VM* vm, int count){
struct PyLuaFunction: PyLuaObject{ struct PyLuaFunction: PyLuaObject{
static void _register(VM* vm, PyObject* mod, PyObject* type){ static void _register(VM* vm, PyObject* mod, PyObject* type){
vm->bind_notimplemented_constructor<PyLuaFunction>(type); vm->bind_notimplemented_constructor<PyLuaFunction>(type);
vm->_all_types[PK_OBJ_GET(Type, type)].subclass_enabled = false;
vm->bind_method<-1>(type, __call__, [](VM* vm, ArgsView args){ vm->bind_method<-1>(type, __call__, [](VM* vm, ArgsView args){
if(args.size() < 1) vm->TypeError("__call__ takes at least 1 argument"); if(args.size() < 1) vm->TypeError("__call__ takes at least 1 argument");
const PyLuaFunction& self = _CAST(PyLuaFunction&, args[0]); const PyLuaFunction& self = _CAST(PyLuaFunction&, args[0]);

View File

@ -352,7 +352,6 @@ struct Array2dIter{
void _gc_mark() const{ PK_OBJ_MARK(ref); } void _gc_mark() const{ PK_OBJ_MARK(ref); }
static void _register(VM* vm, PyObject* mod, PyObject* type){ static void _register(VM* vm, PyObject* mod, PyObject* type){
vm->_all_types[PK_OBJ_GET(Type, type)].subclass_enabled = false;
vm->bind_notimplemented_constructor<Array2dIter>(type); vm->bind_notimplemented_constructor<Array2dIter>(type);
vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0) { return _0; }); vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0) { return _0; });
vm->bind__next__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0) -> unsigned{ vm->bind__next__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0) -> unsigned{

View File

@ -24,7 +24,6 @@ namespace pkpy
void PyDequeIter::_register(VM *vm, PyObject *mod, PyObject *type) void PyDequeIter::_register(VM *vm, PyObject *mod, PyObject *type)
{ {
// Iterator for the deque type // Iterator for the deque type
vm->_all_types[PK_OBJ_GET(Type, type)].subclass_enabled = false;
vm->bind_notimplemented_constructor<PyDequeIter>(type); vm->bind_notimplemented_constructor<PyDequeIter>(type);
vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM *vm, PyObject *obj) vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM *vm, PyObject *obj)

View File

@ -3,7 +3,6 @@
namespace pkpy{ namespace pkpy{
void RangeIter::_register(VM* vm, PyObject* mod, PyObject* type){ void RangeIter::_register(VM* vm, PyObject* mod, PyObject* type){
vm->_all_types[PK_OBJ_GET(Type, type)].subclass_enabled = false;
vm->bind_notimplemented_constructor<RangeIter>(type); vm->bind_notimplemented_constructor<RangeIter>(type);
vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0){ return _0; }); vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0){ return _0; });
vm->bind__next__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0) -> unsigned{ vm->bind__next__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0) -> unsigned{
@ -20,7 +19,6 @@ namespace pkpy{
} }
void ArrayIter::_register(VM* vm, PyObject* mod, PyObject* type){ void ArrayIter::_register(VM* vm, PyObject* mod, PyObject* type){
vm->_all_types[PK_OBJ_GET(Type, type)].subclass_enabled = false;
vm->bind_notimplemented_constructor<ArrayIter>(type); vm->bind_notimplemented_constructor<ArrayIter>(type);
vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0){ return _0; }); vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0){ return _0; });
vm->bind__next__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0) -> unsigned{ vm->bind__next__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0) -> unsigned{
@ -32,7 +30,6 @@ namespace pkpy{
} }
void StringIter::_register(VM* vm, PyObject* mod, PyObject* type){ void StringIter::_register(VM* vm, PyObject* mod, PyObject* type){
vm->_all_types[PK_OBJ_GET(Type, type)].subclass_enabled = false;
vm->bind_notimplemented_constructor<StringIter>(type); vm->bind_notimplemented_constructor<StringIter>(type);
vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0){ return _0; }); vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0){ return _0; });
vm->bind__next__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0) -> unsigned{ vm->bind__next__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0) -> unsigned{
@ -81,7 +78,6 @@ namespace pkpy{
} }
void Generator::_register(VM* vm, PyObject* mod, PyObject* type){ void Generator::_register(VM* vm, PyObject* mod, PyObject* type){
vm->_all_types[PK_OBJ_GET(Type, type)].subclass_enabled = false;
vm->bind_notimplemented_constructor<Generator>(type); vm->bind_notimplemented_constructor<Generator>(type);
vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0){ return _0; }); vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0){ return _0; });
vm->bind__next__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0) -> unsigned{ vm->bind__next__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0) -> unsigned{
@ -94,8 +90,6 @@ namespace pkpy{
} }
void DictItemsIter::_register(VM *vm, PyObject *mod, PyObject *type){ void DictItemsIter::_register(VM *vm, PyObject *mod, PyObject *type){
PyTypeInfo& info = vm->_all_types[PK_OBJ_GET(Type, type)];
info.subclass_enabled = false;
vm->bind_notimplemented_constructor<DictItemsIter>(type); vm->bind_notimplemented_constructor<DictItemsIter>(type);
vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0){ return _0; }); vm->bind__iter__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0){ return _0; });
vm->bind__next__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0) -> unsigned{ vm->bind__next__(PK_OBJ_GET(Type, type), [](VM* vm, PyObject* _0) -> unsigned{

View File

@ -1298,7 +1298,7 @@ StrName _type_name(VM *vm, Type type){
void VM::bind__getitem__(Type type, PyObject* (*f)(VM*, PyObject*, PyObject*)){ void VM::bind__getitem__(Type type, PyObject* (*f)(VM*, PyObject*, PyObject*)){
_all_types[type].m__getitem__ = f; _all_types[type].m__getitem__ = f;
PyObject* nf = bind_method<1>(type, "__getitem__", [](VM* vm, ArgsView args){ PyObject* nf = bind_method<1>(type, __getitem__, [](VM* vm, ArgsView args){
return lambda_get_userdata<PyObject*(*)(VM*, PyObject*, PyObject*)>(args.begin())(vm, args[0], args[1]); return lambda_get_userdata<PyObject*(*)(VM*, PyObject*, PyObject*)>(args.begin())(vm, args[0], args[1]);
}); });
PK_OBJ_GET(NativeFunc, nf).set_userdata(f); PK_OBJ_GET(NativeFunc, nf).set_userdata(f);
@ -1306,7 +1306,7 @@ void VM::bind__getitem__(Type type, PyObject* (*f)(VM*, PyObject*, PyObject*)){
void VM::bind__setitem__(Type type, void (*f)(VM*, PyObject*, PyObject*, PyObject*)){ void VM::bind__setitem__(Type type, void (*f)(VM*, PyObject*, PyObject*, PyObject*)){
_all_types[type].m__setitem__ = f; _all_types[type].m__setitem__ = f;
PyObject* nf = bind_method<2>(type, "__setitem__", [](VM* vm, ArgsView args){ PyObject* nf = bind_method<2>(type, __setitem__, [](VM* vm, ArgsView args){
lambda_get_userdata<void(*)(VM* vm, PyObject*, PyObject*, PyObject*)>(args.begin())(vm, args[0], args[1], args[2]); lambda_get_userdata<void(*)(VM* vm, PyObject*, PyObject*, PyObject*)>(args.begin())(vm, args[0], args[1], args[2]);
return vm->None; return vm->None;
}); });
@ -1315,7 +1315,7 @@ void VM::bind__setitem__(Type type, void (*f)(VM*, PyObject*, PyObject*, PyObjec
void VM::bind__delitem__(Type type, void (*f)(VM*, PyObject*, PyObject*)){ void VM::bind__delitem__(Type type, void (*f)(VM*, PyObject*, PyObject*)){
_all_types[type].m__delitem__ = f; _all_types[type].m__delitem__ = f;
PyObject* nf = bind_method<1>(type, "__delitem__", [](VM* vm, ArgsView args){ PyObject* nf = bind_method<1>(type, __delitem__, [](VM* vm, ArgsView args){
lambda_get_userdata<void(*)(VM*, PyObject*, PyObject*)>(args.begin())(vm, args[0], args[1]); lambda_get_userdata<void(*)(VM*, PyObject*, PyObject*)>(args.begin())(vm, args[0], args[1]);
return vm->None; return vm->None;
}); });
@ -1367,7 +1367,7 @@ void VM::bind__delitem__(Type type, void (*f)(VM*, PyObject*, PyObject*)){
void VM::bind__hash__(Type type, i64 (*f)(VM*, PyObject*)){ void VM::bind__hash__(Type type, i64 (*f)(VM*, PyObject*)){
PyObject* obj = _t(type); PyObject* obj = _t(type);
_all_types[type].m__hash__ = f; _all_types[type].m__hash__ = f;
PyObject* nf = bind_method<0>(obj, "__hash__", [](VM* vm, ArgsView args){ PyObject* nf = bind_method<0>(obj, __hash__, [](VM* vm, ArgsView args){
i64 ret = lambda_get_userdata<decltype(f)>(args.begin())(vm, args[0]); i64 ret = lambda_get_userdata<decltype(f)>(args.begin())(vm, args[0]);
return VAR(ret); return VAR(ret);
}); });
@ -1377,7 +1377,7 @@ void VM::bind__hash__(Type type, i64 (*f)(VM*, PyObject*)){
void VM::bind__len__(Type type, i64 (*f)(VM*, PyObject*)){ void VM::bind__len__(Type type, i64 (*f)(VM*, PyObject*)){
PyObject* obj = _t(type); PyObject* obj = _t(type);
_all_types[type].m__len__ = f; _all_types[type].m__len__ = f;
PyObject* nf = bind_method<0>(obj, "__len__", [](VM* vm, ArgsView args){ PyObject* nf = bind_method<0>(obj, __len__, [](VM* vm, ArgsView args){
i64 ret = lambda_get_userdata<decltype(f)>(args.begin())(vm, args[0]); i64 ret = lambda_get_userdata<decltype(f)>(args.begin())(vm, args[0]);
return VAR(ret); return VAR(ret);
}); });