ProjectController.py
changeset 3493 ff25207ec303
parent 3421 70ef15fca028
child 3480 078d72552c3e
--- a/ProjectController.py	Mon May 23 16:27:56 2022 +0200
+++ b/ProjectController.py	Mon May 23 18:10:13 2022 +0200
@@ -1722,10 +1722,16 @@
             for weakcallable, buffer_list in WeakCallableDict.iteritems():
                 function = getattr(weakcallable, function_name, None)
                 if function is not None:
-                    if buffer_list:
-                        function(*cargs)
-                    else:
-                        function(*tuple([lst[-1] for lst in cargs]))
+                    # FIXME: apparently, despite of weak ref objects,
+                    # some dead C/C++ wx object are still reachable from here
+                    # leading to RuntimeError exception
+                    try:
+                        if buffer_list:
+                            function(*cargs)
+                        else:
+                            function(*tuple([lst[-1] for lst in cargs]))
+                    except RuntimeError:
+                        pass
 
     def GetTicktime(self):
         return self._Ticktime