degesch: Lua: fix a resource leak
This commit is contained in:
		
							parent
							
								
									a7be2bf160
								
							
						
					
					
						commit
						a259e96405
					
				| @ -7638,16 +7638,20 @@ lua_plugin_call (struct lua_plugin *self, | |||||||
| 	int n_params, int n_results, struct error **e) | 	int n_params, int n_results, struct error **e) | ||||||
| { | { | ||||||
| 	lua_State *L = self->L; | 	lua_State *L = self->L; | ||||||
| 	lua_pushcfunction (L, lua_plugin_error_handler); |  | ||||||
| 
 | 
 | ||||||
|  | 	// We need to pop the error handler at the end
 | ||||||
|  | 	lua_pushcfunction (L, lua_plugin_error_handler); | ||||||
| 	int error_handler_idx = -n_params - 2; | 	int error_handler_idx = -n_params - 2; | ||||||
| 	lua_insert (L, error_handler_idx); | 	lua_insert (L, error_handler_idx); | ||||||
| 
 | 
 | ||||||
| 	if (!lua_pcall (L, n_params, n_results, error_handler_idx)) | 	if (!lua_pcall (L, n_params, n_results, error_handler_idx)) | ||||||
|  | 	{ | ||||||
|  | 		lua_remove (L, -n_results - 1); | ||||||
| 		return true; | 		return true; | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	(void) lua_plugin_process_error (self, lua_tostring (L, -1), e); | 	(void) lua_plugin_process_error (self, lua_tostring (L, -1), e); | ||||||
| 	lua_pop (L, 1); | 	lua_pop (L, 2); | ||||||
| 	return false; | 	return false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user