Fix CNullDriver::removeTexture() segfault
`Textures` is not an one-to-one mapping.
Minetest still crashes with this commit but that's because
it attempts to double-free a texture.
broken by 7298b46504
			
			
This commit is contained in:
		| @@ -286,10 +286,16 @@ void CNullDriver::removeTexture(ITexture* texture) | ||||
| 	SSurface s; | ||||
| 	s.Surface = texture; | ||||
|  | ||||
| 	s32 index = Textures.binary_search(s); | ||||
| 	if (index != -1) { | ||||
| 		texture->drop(); | ||||
| 		Textures.erase(index); | ||||
| 	s32 last; | ||||
| 	s32 first = Textures.binary_search_multi(s, last); | ||||
| 	if (first == -1) | ||||
| 		return; | ||||
| 	for (u32 i = first; i <= (u32)last; i++) { | ||||
| 		if (Textures[i].Surface == texture) { | ||||
| 			texture->drop(); | ||||
| 			Textures.erase(i); | ||||
| 			return; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user