mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 19:40:18 +00:00
some fix
This commit is contained in:
parent
fa73e3122f
commit
dd734f71dc
@ -69,7 +69,7 @@ PyObject* VM::bind(PyObject* obj, const char* sig, Ret(*func)(Params...), BindTy
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename Ret, typename T, typename... Params>
|
template<typename Ret, typename T, typename... Params>
|
||||||
PyObject* VM::bind(VM* vm, PyObject* obj, const char* sig, Ret(T::*func)(Params...), BindType bt){
|
PyObject* VM::bind(PyObject* obj, const char* sig, Ret(T::*func)(Params...), BindType bt){
|
||||||
auto proxy = new NativeProxyMethodC<Ret, T, Params...>(func);
|
auto proxy = new NativeProxyMethodC<Ret, T, Params...>(func);
|
||||||
return vm->bind(obj, sig, __proxy_wrapper, proxy, bt);
|
return vm->bind(obj, sig, __proxy_wrapper, proxy, bt);
|
||||||
}
|
}
|
||||||
@ -81,7 +81,7 @@ PyObject* VM::bind(PyObject* obj, const char* sig, const char* docstring, Ret(*f
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename Ret, typename T, typename... Params>
|
template<typename Ret, typename T, typename... Params>
|
||||||
PyObject* VM::bind(VM* vm, PyObject* obj, const char* sig, const char* docstring, Ret(T::*func)(Params...), BindType bt){
|
PyObject* VM::bind(PyObject* obj, const char* sig, const char* docstring, Ret(T::*func)(Params...), BindType bt){
|
||||||
auto proxy = new NativeProxyMethodC<Ret, T, Params...>(func);
|
auto proxy = new NativeProxyMethodC<Ret, T, Params...>(func);
|
||||||
return vm->bind(obj, sig, docstring, __proxy_wrapper, proxy, bt);
|
return vm->bind(obj, sig, docstring, __proxy_wrapper, proxy, bt);
|
||||||
}
|
}
|
||||||
|
@ -300,22 +300,21 @@ public:
|
|||||||
PyObject* bind_func(Type type, StrName name, int argc, NativeFuncC fn, UserData userdata={}, BindType bt=BindType::DEFAULT){
|
PyObject* bind_func(Type type, StrName name, int argc, NativeFuncC fn, UserData userdata={}, BindType bt=BindType::DEFAULT){
|
||||||
return bind_func(_t(type), name, argc, fn, userdata, bt);
|
return bind_func(_t(type), name, argc, fn, userdata, bt);
|
||||||
}
|
}
|
||||||
PyObject* bind(PyObject*, const char*, const char*, NativeFuncC, UserData userdata={}, BindType bt=BindType::DEFAULT);
|
|
||||||
PyObject* bind(PyObject*, const char*, NativeFuncC, UserData userdata={}, BindType bt=BindType::DEFAULT);
|
|
||||||
|
|
||||||
template<typename Ret, typename... Params>
|
|
||||||
PyObject* bind(PyObject* obj, const char* sig, Ret(*func)(Params...), BindType bt=BindType::DEFAULT);
|
|
||||||
template<typename Ret, typename T, typename... Params>
|
|
||||||
PyObject* bind(VM* vm, PyObject* obj, const char* sig, Ret(T::*func)(Params...), BindType bt=BindType::DEFAULT);
|
|
||||||
template<typename Ret, typename... Params>
|
|
||||||
PyObject* bind(PyObject* obj, const char* sig, const char* docstring, Ret(*func)(Params...), BindType bt=BindType::DEFAULT);
|
|
||||||
template<typename Ret, typename T, typename... Params>
|
|
||||||
PyObject* bind(VM* vm, PyObject* obj, const char* sig, const char* docstring, Ret(T::*func)(Params...), BindType bt=BindType::DEFAULT);
|
|
||||||
|
|
||||||
PyObject* bind_property(PyObject*, const char*, NativeFuncC fget, NativeFuncC fset=nullptr);
|
PyObject* bind_property(PyObject*, const char*, NativeFuncC fget, NativeFuncC fset=nullptr);
|
||||||
template<typename T, typename F, bool ReadOnly=false>
|
template<typename T, typename F, bool ReadOnly=false>
|
||||||
PyObject* bind_field(PyObject*, const char*, F T::*);
|
PyObject* bind_field(PyObject*, const char*, F T::*);
|
||||||
|
// without docstring
|
||||||
|
PyObject* bind(PyObject*, const char*, NativeFuncC, UserData userdata={}, BindType bt=BindType::DEFAULT);
|
||||||
|
template<typename Ret, typename... Params>
|
||||||
|
PyObject* bind(PyObject*, const char*, Ret(*)(Params...), BindType bt=BindType::DEFAULT);
|
||||||
|
template<typename Ret, typename T, typename... Params>
|
||||||
|
PyObject* bind(PyObject*, const char*, Ret(T::*)(Params...), BindType bt=BindType::DEFAULT);
|
||||||
|
// with docstring
|
||||||
|
PyObject* bind(PyObject*, const char*, const char*, NativeFuncC, UserData userdata={}, BindType bt=BindType::DEFAULT);
|
||||||
|
template<typename Ret, typename... Params>
|
||||||
|
PyObject* bind(PyObject*, const char*, const char*, Ret(*)(Params...), BindType bt=BindType::DEFAULT);
|
||||||
|
template<typename Ret, typename T, typename... Params>
|
||||||
|
PyObject* bind(PyObject*, const char*, const char*, Ret(T::*)(Params...), BindType bt=BindType::DEFAULT);
|
||||||
/********** error **********/
|
/********** error **********/
|
||||||
void _error(PyObject*);
|
void _error(PyObject*);
|
||||||
void StackOverflowError() { __builtin_error("StackOverflowError"); }
|
void StackOverflowError() { __builtin_error("StackOverflowError"); }
|
||||||
|
@ -361,13 +361,7 @@ bool pkpy_push_function(pkpy_vm* vm_handle, const char* sig, pkpy_CFunction f) {
|
|||||||
PK_ASSERT_NO_ERROR()
|
PK_ASSERT_NO_ERROR()
|
||||||
PyObject* f_obj;
|
PyObject* f_obj;
|
||||||
PK_PROTECTED(
|
PK_PROTECTED(
|
||||||
f_obj = vm->bind(
|
f_obj = vm->bind(nullptr, sig, c_function_wrapper, f);
|
||||||
nullptr,
|
|
||||||
sig,
|
|
||||||
nullptr,
|
|
||||||
c_function_wrapper,
|
|
||||||
f
|
|
||||||
);
|
|
||||||
)
|
)
|
||||||
vm->s_data.push(f_obj);
|
vm->s_data.push(f_obj);
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user