This commit is contained in:
blueloveTH 2023-05-13 16:31:56 +08:00
parent f406488a2c
commit de45471a9d

View File

@ -69,24 +69,6 @@ struct PlainOldData{
}
};
inline void add_module_c(VM* vm){
PyObject* mod = vm->new_module("c");
vm->bind_func<1>(mod, "malloc", [](VM* vm, ArgsView args){
i64 size = CAST(i64, args[0]);
return VAR(malloc(size));
});
vm->bind_func<1>(mod, "free", [](VM* vm, ArgsView args){
void* p = CAST(void*, args[0]);
free(p);
return vm->None;
});
VoidP::register_class(vm, mod);
PlainOldData::register_class(vm, mod);
}
inline PyObject* py_var(VM* vm, void* p){
return VAR_T(VoidP, p);
}
@ -163,4 +145,23 @@ inline void bind_any_c_fp(VM* vm, PyObject* obj, Str name, T fp){
func->attr().set("__proxy__", VAR_T(VoidP, proxy));
obj->attr().set(name, func);
}
inline void add_module_c(VM* vm){
PyObject* mod = vm->new_module("c");
vm->bind_func<1>(mod, "malloc", [](VM* vm, ArgsView args){
i64 size = CAST(i64, args[0]);
return VAR(malloc(size));
});
vm->bind_func<1>(mod, "free", [](VM* vm, ArgsView args){
void* p = CAST(void*, args[0]);
free(p);
return vm->None;
});
VoidP::register_class(vm, mod);
PlainOldData::register_class(vm, mod);
}
} // namespace pkpy