mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Extend _close() to break cycles.
Break some other cycles too (and destroy the root when done).
This commit is contained in:
		
							parent
							
								
									205afb487a
								
							
						
					
					
						commit
						fed9b914b5
					
				
					 1 changed files with 18 additions and 13 deletions
				
			
		|  | @ -363,12 +363,13 @@ def beginexecuting(self): | |||
|         # Helper for ModifiedInterpreter | ||||
|         self.resetoutput() | ||||
|         self.executing = 1 | ||||
|         self._cancel_check = self.cancel_check | ||||
|         ##self._cancel_check = self.cancel_check | ||||
|         ##sys.settrace(self._cancel_check) | ||||
| 
 | ||||
|     def endexecuting(self): | ||||
|         # Helper for ModifiedInterpreter | ||||
|         sys.settrace(None) | ||||
|         ##sys.settrace(None) | ||||
|         ##self._cancel_check = None | ||||
|         self.executing = 0 | ||||
|         self.canceled = 0 | ||||
| 
 | ||||
|  | @ -386,9 +387,9 @@ def close(self): | |||
|             if self.reading: | ||||
|                 self.top.quit() | ||||
|             return "cancel" | ||||
|         reply = PyShellEditorWindow.close(self) | ||||
|         if reply != "cancel": | ||||
|             self.flist.pyshell = None | ||||
|         return PyShellEditorWindow.close(self) | ||||
| 
 | ||||
|     def _close(self): | ||||
|         # Restore std streams | ||||
|         sys.stdout = self.save_stdout | ||||
|         sys.stderr = self.save_stderr | ||||
|  | @ -396,7 +397,10 @@ def close(self): | |||
|         # Break cycles | ||||
|         self.interp = None | ||||
|         self.console = None | ||||
|         return reply | ||||
|         self.auto = None | ||||
|         self.flist.pyshell = None | ||||
|         self.history = None | ||||
|         OutputWindow._close(self) # Really EditorWindow._close | ||||
| 
 | ||||
|     def ispythonsource(self, filename): | ||||
|         # Override this so EditorWindow never removes the colorizer | ||||
|  | @ -731,6 +735,7 @@ def main(): | |||
| 
 | ||||
|     shell.begin() | ||||
|     root.mainloop() | ||||
|     root.destroy() | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Guido van Rossum
						Guido van Rossum