From c8b34a16f79602ce1173a6f0ac0e5ae43b043da6 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Tue, 9 Apr 2002 22:14:34 +0000 Subject: [PATCH] A little black magic... When the C++ object (for a window or whatever) is deleted there is no way to force the Python shadow object to also be destroyed and clean up all references to it. This leads to crashes if the shadow object tries to call a method with the old C++ pointer... The black magic I've done is to replace the __class__ in the Python instance object with a class that raises an exception whenever a method call is attempted. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15060 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/CHANGES.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/wxPython/CHANGES.txt b/wxPython/CHANGES.txt index 99aa9001cb..24dcc93bb7 100644 --- a/wxPython/CHANGES.txt +++ b/wxPython/CHANGES.txt @@ -75,6 +75,14 @@ Added wxIconBundle and wxTopLevelWindow.SetIcons. Added wxLocale and wxEncodingConverter. +A little black magic... When the C++ object (for a window or +whatever) is deleted there is no way to force the Python shadow object +to also be destroyed and clean up all references to it. This leads to +crashes if the shadow object tries to call a method with the old C++ +pointer. The black magic I've done is to replace the __class__ in the +Python instance object with a class that raises an exception whenever +a method call (or other attribute access) is attempted. This works +for any class that is OOR aware. -- 2.45.2