mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	Fix crash caused by 8c1385205a35
(thanks Arfrever for reporting).
This commit is contained in:
		
							parent
							
								
									dea2ec4b1d
								
							
						
					
					
						commit
						fd417cc54b
					
				
					 1 changed files with 8 additions and 6 deletions
				
			
		|  | @ -558,6 +558,9 @@ Py_Finalize(void) | ||||||
|     /* Destroy the database used by _PyImport_{Fixup,Find}Extension */ |     /* Destroy the database used by _PyImport_{Fixup,Find}Extension */ | ||||||
|     _PyImport_Fini(); |     _PyImport_Fini(); | ||||||
| 
 | 
 | ||||||
|  |     /* Cleanup typeobject.c's internal caches. */ | ||||||
|  |     _PyType_Fini(); | ||||||
|  | 
 | ||||||
|     /* unload faulthandler module */ |     /* unload faulthandler module */ | ||||||
|     _PyFaulthandler_Fini(); |     _PyFaulthandler_Fini(); | ||||||
| 
 | 
 | ||||||
|  | @ -578,7 +581,7 @@ Py_Finalize(void) | ||||||
|         _Py_PrintReferences(stderr); |         _Py_PrintReferences(stderr); | ||||||
| #endif /* Py_TRACE_REFS */ | #endif /* Py_TRACE_REFS */ | ||||||
| 
 | 
 | ||||||
|     /* Clear interpreter state */ |     /* Clear interpreter state and all thread states. */ | ||||||
|     PyInterpreterState_Clear(interp); |     PyInterpreterState_Clear(interp); | ||||||
| 
 | 
 | ||||||
|     /* Now we decref the exception classes.  After this point nothing
 |     /* Now we decref the exception classes.  After this point nothing
 | ||||||
|  | @ -594,10 +597,6 @@ Py_Finalize(void) | ||||||
|     _PyGILState_Fini(); |     _PyGILState_Fini(); | ||||||
| #endif /* WITH_THREAD */ | #endif /* WITH_THREAD */ | ||||||
| 
 | 
 | ||||||
|     /* Delete current thread */ |  | ||||||
|     PyThreadState_Swap(NULL); |  | ||||||
|     PyInterpreterState_Delete(interp); |  | ||||||
| 
 |  | ||||||
|     /* Sundry finalizers */ |     /* Sundry finalizers */ | ||||||
|     PyMethod_Fini(); |     PyMethod_Fini(); | ||||||
|     PyFrame_Fini(); |     PyFrame_Fini(); | ||||||
|  | @ -611,11 +610,14 @@ Py_Finalize(void) | ||||||
|     PyFloat_Fini(); |     PyFloat_Fini(); | ||||||
|     PyDict_Fini(); |     PyDict_Fini(); | ||||||
|     PySlice_Fini(); |     PySlice_Fini(); | ||||||
|     _PyType_Fini(); |  | ||||||
| 
 | 
 | ||||||
|     /* Cleanup Unicode implementation */ |     /* Cleanup Unicode implementation */ | ||||||
|     _PyUnicode_Fini(); |     _PyUnicode_Fini(); | ||||||
| 
 | 
 | ||||||
|  |     /* Delete current thread. After this, many C API calls become crashy. */ | ||||||
|  |     PyThreadState_Swap(NULL); | ||||||
|  |     PyInterpreterState_Delete(interp); | ||||||
|  | 
 | ||||||
|     /* reset file system default encoding */ |     /* reset file system default encoding */ | ||||||
|     if (!Py_HasFileSystemDefaultEncoding && Py_FileSystemDefaultEncoding) { |     if (!Py_HasFileSystemDefaultEncoding && Py_FileSystemDefaultEncoding) { | ||||||
|         free((char*)Py_FileSystemDefaultEncoding); |         free((char*)Py_FileSystemDefaultEncoding); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Antoine Pitrou
						Antoine Pitrou