|
|
@@ -6,13 +6,13 @@
|
|
|
namespace pkpy {
|
|
|
|
|
|
#define PY_CLASS(T, mod, name) \
|
|
|
- static Type _type(VM* vm) { return vm->_cxx_typeid_map[&typeid(T)]; } \
|
|
|
+ static Type _type(VM* vm) { return vm->_cxx_typeid_map[typeid(T)]; } \
|
|
|
static PyObject* register_class(VM* vm, PyObject* mod, Type base=0) { \
|
|
|
std::string_view mod_name = PK_OBJ_GET(Str, mod->attr("__name__")).sv(); \
|
|
|
if(mod_name != #mod) throw std::runtime_error(_S("register_class() failed: ", mod_name, " != ", #mod).str()); \
|
|
|
PyObject* type = vm->new_type_object(mod, #name, base); \
|
|
|
mod->attr().set(#name, type); \
|
|
|
- vm->_cxx_typeid_map[&typeid(T)] = PK_OBJ_GET(Type, type); \
|
|
|
+ vm->_cxx_typeid_map[typeid(T)] = PK_OBJ_GET(Type, type); \
|
|
|
T::_register(vm, mod, type); \
|
|
|
return type; \
|
|
|
}
|