diff --git a/src/st/st-private.c b/src/st/st-private.c index d40eceb86..e5a27019b 100644 --- a/src/st/st-private.c +++ b/src/st/st-private.c @@ -395,7 +395,10 @@ _st_create_shadow_pipeline (StShadow *shadow_spec, pipeline = cogl_pipeline_copy (shadow_pipeline_template); cogl_pipeline_set_layer_texture (pipeline, 0, texture); - cogl_object_unref (texture); + + if (texture) + cogl_object_unref (texture); + return pipeline; } diff --git a/src/st/st-texture-cache.c b/src/st/st-texture-cache.c index 88c6bf3ec..cec97d538 100644 --- a/src/st/st-texture-cache.c +++ b/src/st/st-texture-cache.c @@ -640,8 +640,12 @@ st_texture_cache_reset_texture (StTextureCachePropertyBind *bind, cairo_image_surface_get_stride (surface), cairo_image_surface_get_data (surface), NULL)); - clutter_texture_set_cogl_texture (bind->texture, texdata); - cogl_object_unref (texdata); + + if (texdata) + { + clutter_texture_set_cogl_texture (bind->texture, texdata); + cogl_object_unref (texdata); + } clutter_actor_set_opacity (CLUTTER_ACTOR (bind->texture), 255); }