* gnu/packages/patches/hexchat-crash-exit.patch: New file. * gnu/packages/hexchat.scm (orgin): Add patch. * gnu/local.mk (dist_patch_DATA): Add it.
		
			
				
	
	
		
			31 lines
		
	
	
	
		
			971 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			971 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
From d9c637ae8a1137d3ca512d2c560589903a4bd79d Mon Sep 17 00:00:00 2001
 | 
						|
From: Adam Williamson <awilliam@redhat.com>
 | 
						|
Date: Tue, 30 Apr 2019 11:16:01 -0700
 | 
						|
Subject: [PATCH] Python plugin: Call EndInterpreter when deinit'ing the plugin
 | 
						|
 | 
						|
This fixes https://github.com/hexchat/hexchat/issues/2237 , a
 | 
						|
commonly-encountered bug when using Hexchat 2.14 on Python 3.7.
 | 
						|
Thanks to @ncoghlan for the fix.
 | 
						|
 | 
						|
Signed-off-by: Adam Williamson <awilliam@redhat.com>
 | 
						|
---
 | 
						|
 plugins/python/python.c | 3 +++
 | 
						|
 1 file changed, 3 insertions(+)
 | 
						|
 | 
						|
diff --git a/plugins/python/python.c b/plugins/python/python.c
 | 
						|
index 4403474d..475756ba 100644
 | 
						|
--- a/plugins/python/python.c
 | 
						|
+++ b/plugins/python/python.c
 | 
						|
@@ -2806,6 +2806,9 @@ hexchat_plugin_deinit(void)
 | 
						|
 	xchatout_buffer = NULL;
 | 
						|
 
 | 
						|
 	if (interp_plugin) {
 | 
						|
+		PyThreadState *tstate = ((PluginObject*)interp_plugin)->tstate;
 | 
						|
+		PyThreadState_Swap(tstate);
 | 
						|
+		Py_EndInterpreter(tstate);
 | 
						|
 		Py_DECREF(interp_plugin);
 | 
						|
 		interp_plugin = NULL;
 | 
						|
 	}
 | 
						|
-- 
 | 
						|
2.21.0
 | 
						|
 |