mirror of https://github.com/aseprite/aseprite.git
				
				
				
			Avoid removing random values from the Lua registry using Events:off()
Fix proposed in: https://github.com/aseprite/aseprite/pull/2980#issuecomment-938495522
This commit is contained in:
		
							parent
							
								
									2ddbbf00d6
								
							
						
					
					
						commit
						318d5ed6a0
					
				| 
						 | 
				
			
			@ -289,7 +289,10 @@ int Events_off(lua_State* L)
 | 
			
		|||
    return luaL_error(L, "first argument must be a function or a EventListener");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (callbackRef != LUA_REFNIL) {
 | 
			
		||||
  if (callbackRef != LUA_REFNIL &&
 | 
			
		||||
      // Check that we are removing a listener from this Events and no
 | 
			
		||||
      // other random value from the Lua registry
 | 
			
		||||
      evs->hasListener(callbackRef)) {
 | 
			
		||||
    evs->remove(callbackRef);
 | 
			
		||||
    luaL_unref(L, LUA_REGISTRYINDEX, callbackRef);
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue