diff --git a/src/pocketpy.h b/src/pocketpy.h index dbbbe908..464f44bb 100644 --- a/src/pocketpy.h +++ b/src/pocketpy.h @@ -200,10 +200,9 @@ inline void init_builtins(VM* _vm) { }); _vm->bind__repr__(_vm->tp_object, [](VM* vm, PyObject* obj) { - PyObject* self = obj; - if(is_tagged(obj)) self = nullptr; + if(is_tagged(obj)) FATAL_ERROR(); std::stringstream ss; - ss << "<" << OBJ_NAME(vm->_t(self)) << " object at " << std::hex << self << ">"; + ss << "<" << OBJ_NAME(vm->_t(obj)) << " object at " << std::hex << obj << ">"; return VAR(ss.str()); }); diff --git a/src/vm.h b/src/vm.h index d56a606b..65bbbbad 100644 --- a/src/vm.h +++ b/src/vm.h @@ -340,9 +340,8 @@ public: #define BIND_UNARY_SPECIAL(name) \ void bind##name(Type type, PyObject* (*f)(VM* vm, PyObject*)){ \ - PyObject* obj = _t(type); \ _all_types[type].m##name = f; \ - bind_method<0>(obj, #name, [](VM* vm, ArgsView args){ \ + bind_method<0>(_t(type), #name, [](VM* vm, ArgsView args){ \ return vm->_inst_type_info(args[0])->m##name(vm, args[0]); \ }); \ }