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
2 changed files with 3 additions and 2 deletions
|
@ -276,7 +276,8 @@ _cogl_atlas_texture_free (CoglAtlasTexture *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 */
|
||||
_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_texture_no_allocate, 0, TEST_KNOWN_FAILURE);
|
||||
ADD_TEST (test_texture_no_allocate, 0, 0);
|
||||
|
||||
g_printerr ("Unknown test name \"%s\"\n", argv[1]);
|
||||
|
||||
|
|
Loading…
Reference in a new issue