mirror of
https://github.com/brl/mutter.git
synced 2025-01-23 01:48:55 +00:00
Fix freeing an atlas texture that hasn't been allocated
The free function for atlas textures was previously always assuming that there will be a valid sub_texture pointer but this might not be the case if the texture was never successfully allocated. This was causing Cogl to crash if the application tries to make a texture that can not fit in the atlas using the automagic texture API. Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit a7a8b7aefc8cb03fe8b716bee06b3449a7dba85f)
This commit is contained in:
parent
49a30eecfb
commit
fa0df6ea96
@ -276,7 +276,8 @@ _cogl_atlas_texture_free (CoglAtlasTexture *atlas_tex)
|
|||||||
{
|
{
|
||||||
_cogl_atlas_texture_remove_from_atlas (atlas_tex);
|
_cogl_atlas_texture_remove_from_atlas (atlas_tex);
|
||||||
|
|
||||||
cogl_object_unref (atlas_tex->sub_texture);
|
if (atlas_tex->sub_texture)
|
||||||
|
cogl_object_unref (atlas_tex->sub_texture);
|
||||||
|
|
||||||
/* Chain up */
|
/* Chain up */
|
||||||
_cogl_texture_free (COGL_TEXTURE (atlas_tex));
|
_cogl_texture_free (COGL_TEXTURE (atlas_tex));
|
||||||
|
@ -138,7 +138,7 @@ main (int argc, char **argv)
|
|||||||
|
|
||||||
ADD_TEST (test_fence, TEST_REQUIREMENT_FENCE, 0);
|
ADD_TEST (test_fence, TEST_REQUIREMENT_FENCE, 0);
|
||||||
|
|
||||||
ADD_TEST (test_texture_no_allocate, 0, TEST_KNOWN_FAILURE);
|
ADD_TEST (test_texture_no_allocate, 0, 0);
|
||||||
|
|
||||||
g_printerr ("Unknown test name \"%s\"\n", argv[1]);
|
g_printerr ("Unknown test name \"%s\"\n", argv[1]);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user