compatible fix

This commit is contained in:
blueloveTH 2024-04-29 13:04:53 +08:00
parent f752acdfc8
commit c7495853ec
2 changed files with 9 additions and 0 deletions

View File

@ -253,6 +253,7 @@ public:
void bind__str__(Type type, PyObject* (*f)(VM*, PyObject*));
void bind__iter__(Type type, PyObject* (*f)(VM*, PyObject*));
void bind__next__(Type type, unsigned (*f)(VM*, PyObject*));
[[deprecated]] void bind__next__(Type type, PyObject* (*f)(VM*, PyObject*));
void bind__neg__(Type type, PyObject* (*f)(VM*, PyObject*));
void bind__invert__(Type type, PyObject* (*f)(VM*, PyObject*));
void bind__hash__(Type type, i64 (*f)(VM* vm, PyObject*));

View File

@ -1333,6 +1333,14 @@ void VM::bind__delitem__(Type type, void (*f)(VM*, PyObject*, PyObject*)){
PK_OBJ_GET(NativeFunc, nf).set_userdata(f); \
}
void VM::bind__next__(Type type, PyObject* (*f)(VM*, PyObject*)){
PyObject* nf = bind_method<0>(_t(type), __next__, [](VM* vm, ArgsView args){
auto f = lambda_get_userdata<PyObject*(*)(VM*, PyObject*)>(args.begin());
return f(vm, args[0]);
});
PK_OBJ_GET(NativeFunc, nf).set_userdata(f);
}
#define BIND_UNARY_SPECIAL(name) \
void VM::bind##name(Type type, PyObject* (*f)(VM*, PyObject*)){ \
_all_types[type].m##name = f; \