This commit is contained in:
blueloveTH 2023-05-13 15:30:14 +08:00
parent c24dd51198
commit ca1cb6a9d2

View File

@ -150,12 +150,13 @@ inline PyObject* _any_c_wrapper(VM* vm, ArgsView args){
return (*pf)(vm, args); return (*pf)(vm, args);
} }
template<int ARGC, typename T> template<typename T>
inline void bind_any_c_fp(VM* vm, PyObject* obj, Str name, T fp){ inline void bind_any_c_fp(VM* vm, PyObject* obj, Str name, T fp){
static_assert(std::is_pod_v<T>); static_assert(std::is_pod_v<T>);
static_assert(std::is_pointer_v<T>); static_assert(std::is_pointer_v<T>);
PyObject* func = VAR(NativeFunc(_any_c_wrapper, ARGC, false)); auto proxy = new NativeProxyFuncC(fp);
func->attr().set("__proxy__", VAR_T(VoidP, new NativeProxyFuncC(fp))); PyObject* func = VAR(NativeFunc(_any_c_wrapper, proxy->N, false));
func->attr().set("__proxy__", VAR_T(VoidP, proxy));
obj->attr().set(name, func); obj->attr().set(name, func);
} }
} // namespace pkpy } // namespace pkpy