From f7c1c956f4059fd26ce38f1a461c43b9cbbe32c4 Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Tue, 2 Jan 2024 20:41:54 +0800 Subject: [PATCH] ... --- src/compiler.cpp | 1 - src/pocketpy.cpp | 1 + src/pocketpy_c.cpp | 2 -- src/vm.cpp | 1 - 4 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/compiler.cpp b/src/compiler.cpp index d28ed62b..0b93abd5 100644 --- a/src/compiler.cpp +++ b/src/compiler.cpp @@ -1202,7 +1202,6 @@ __EAT_DOTS_END: PyObject* e_obj = vm->call(vm->builtins->attr(type), VAR(msg)); Exception& e = PK_OBJ_GET(Exception, e_obj); e.st_push(src, lineno, cursor, ""); - e._self = e_obj; throw e; } } // namespace pkpy \ No newline at end of file diff --git a/src/pocketpy.cpp b/src/pocketpy.cpp index cef2c3a8..47ebecc2 100644 --- a/src/pocketpy.cpp +++ b/src/pocketpy.cpp @@ -1301,6 +1301,7 @@ void init_builtins(VM* _vm) { StrName cls_name = obj_type_name(vm, cls); PyObject* e_obj = vm->heap.gcnew(cls, cls_name); e_obj->_enable_instance_dict(); + PK_OBJ_GET(Exception, e_obj)._self = e_obj; return e_obj; }); diff --git a/src/pocketpy_c.cpp b/src/pocketpy_c.cpp index 0cf96911..dd779e5b 100644 --- a/src/pocketpy_c.cpp +++ b/src/pocketpy_c.cpp @@ -50,7 +50,6 @@ static PyObject* stack_item(VM* vm, int index){ } catch(const std::exception& re){ \ PyObject* e_t = vm->_t(vm->tp_exception); \ vm->_c.error = vm->call(e_t, VAR(re.what())); \ - PK_OBJ_GET(Exception, vm->_c.error)._self = vm->_c.error; \ return false; \ } @@ -505,7 +504,6 @@ bool pkpy_error(pkpy_vm* vm_handle, const char* name, pkpy_CString message) { } } vm->_c.error = vm->call(e_t, VAR(std::string_view(message.data, message.size))); - PK_OBJ_GET(Exception, vm->_c.error)._self = vm->_c.error; return false; } diff --git a/src/vm.cpp b/src/vm.cpp index 89710410..271ae2d9 100644 --- a/src/vm.cpp +++ b/src/vm.cpp @@ -1176,7 +1176,6 @@ void VM::_builtin_error(StrName type, const Str& msg){ _builtin_error(type, VAR( void VM::_error(PyObject* e_obj){ PK_ASSERT(isinstance(e_obj, tp_exception)) Exception& e = PK_OBJ_GET(Exception, e_obj); - e._self = e_obj; if(callstack.empty()){ e.is_re = false; throw e;