diff --git a/src/st/st-texture-cache.c b/src/st/st-texture-cache.c index 0c794a3ab..3bf3a5e97 100644 --- a/src/st/st-texture-cache.c +++ b/src/st/st-texture-cache.c @@ -780,13 +780,13 @@ st_texture_cache_load (StTextureCache *cache, if (!texture) { texture = load (cache, key, data, error); - if (texture) + if (texture && policy == ST_TEXTURE_CACHE_POLICY_FOREVER) g_hash_table_insert (cache->priv->keyed_cache, g_strdup (key), texture); - else - return NULL; } - cogl_object_ref (texture); + if (texture && policy == ST_TEXTURE_CACHE_POLICY_FOREVER) + cogl_object_ref (texture); + return texture; } diff --git a/src/st/st-theme-node-drawing.c b/src/st/st-theme-node-drawing.c index 8942966bf..2123cc487 100644 --- a/src/st/st-theme-node-drawing.c +++ b/src/st/st-theme-node-drawing.c @@ -402,7 +402,7 @@ st_theme_node_lookup_corner (StThemeNode *node, return COGL_INVALID_HANDLE; key = corner_to_string (&corner); - texture = st_texture_cache_load (cache, key, ST_TEXTURE_CACHE_POLICY_NONE, load_corner, &corner, NULL); + texture = st_texture_cache_load (cache, key, ST_TEXTURE_CACHE_POLICY_FOREVER, load_corner, &corner, NULL); if (texture) {