diff options
author | Robert Mader <robert.mader@posteo.de> | 2020-10-18 13:46:08 +0200 |
---|---|---|
committer | Robert Mader <robert.mader@posteo.de> | 2021-02-22 13:51:30 +0100 |
commit | df4508e8cf990762a6f3d1bbc8fe2256efb7c533 (patch) | |
tree | 64fb825c916f6e8c0fe0ffd86595b09d620b3087 /cogl/cogl-pango | |
parent | ddca606b58dad442fc3267c8c5148a2397cd3ad0 (diff) | |
download | mutter-df4508e8cf990762a6f3d1bbc8fe2256efb7c533.tar.gz |
cogl: Stop using GSlice
It has been inofficially deprecated for years, is known to cause issues
with valgrind and potentially hides memory corruption.
Lets stop using it.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1512>
Diffstat (limited to 'cogl/cogl-pango')
-rw-r--r-- | cogl/cogl-pango/cogl-pango-display-list.c | 12 | ||||
-rw-r--r-- | cogl/cogl-pango/cogl-pango-glyph-cache.c | 8 | ||||
-rw-r--r-- | cogl/cogl-pango/cogl-pango-pipeline-cache.c | 8 | ||||
-rw-r--r-- | cogl/cogl-pango/cogl-pango-render.c | 4 |
4 files changed, 16 insertions, 16 deletions
diff --git a/cogl/cogl-pango/cogl-pango-display-list.c b/cogl/cogl-pango/cogl-pango-display-list.c index 2e5b6414f..44db4c472 100644 --- a/cogl/cogl-pango/cogl-pango-display-list.c +++ b/cogl/cogl-pango/cogl-pango-display-list.c @@ -100,7 +100,7 @@ struct _CoglPangoDisplayListNode CoglPangoDisplayList * _cogl_pango_display_list_new (CoglPangoPipelineCache *pipeline_cache) { - CoglPangoDisplayList *dl = g_slice_new0 (CoglPangoDisplayList); + CoglPangoDisplayList *dl = g_new0 (CoglPangoDisplayList, 1); dl->pipeline_cache = pipeline_cache; @@ -161,7 +161,7 @@ _cogl_pango_display_list_add_texture (CoglPangoDisplayList *dl, else { /* Otherwise create a new node */ - node = g_slice_new (CoglPangoDisplayListNode); + node = g_new0 (CoglPangoDisplayListNode, 1); node->type = COGL_PANGO_DISPLAY_LIST_TEXTURE; node->color_override = dl->color_override; @@ -195,7 +195,7 @@ _cogl_pango_display_list_add_rectangle (CoglPangoDisplayList *dl, float x_1, float y_1, float x_2, float y_2) { - CoglPangoDisplayListNode *node = g_slice_new (CoglPangoDisplayListNode); + CoglPangoDisplayListNode *node = g_new0 (CoglPangoDisplayListNode, 1); node->type = COGL_PANGO_DISPLAY_LIST_RECTANGLE; node->color_override = dl->color_override; @@ -219,7 +219,7 @@ _cogl_pango_display_list_add_trapezoid (CoglPangoDisplayList *dl, float x_22) { CoglContext *ctx = dl->pipeline_cache->ctx; - CoglPangoDisplayListNode *node = g_slice_new (CoglPangoDisplayListNode); + CoglPangoDisplayListNode *node = g_new0 (CoglPangoDisplayListNode, 1); CoglVertexP2 vertices[4] = { { x_11, y_1 }, { x_12, y_2 }, @@ -470,7 +470,7 @@ _cogl_pango_display_list_node_free (CoglPangoDisplayListNode *node) if (node->pipeline) cogl_object_unref (node->pipeline); - g_slice_free (CoglPangoDisplayListNode, node); + g_free (node); } void @@ -486,5 +486,5 @@ void _cogl_pango_display_list_free (CoglPangoDisplayList *dl) { _cogl_pango_display_list_clear (dl); - g_slice_free (CoglPangoDisplayList, dl); + g_free (dl); } diff --git a/cogl/cogl-pango/cogl-pango-glyph-cache.c b/cogl/cogl-pango/cogl-pango-glyph-cache.c index 10b73d752..47550491c 100644 --- a/cogl/cogl-pango/cogl-pango-glyph-cache.c +++ b/cogl/cogl-pango/cogl-pango-glyph-cache.c @@ -77,14 +77,14 @@ cogl_pango_glyph_cache_value_free (CoglPangoGlyphCacheValue *value) { if (value->texture) cogl_object_unref (value->texture); - g_slice_free (CoglPangoGlyphCacheValue, value); + g_free (value); } static void cogl_pango_glyph_cache_key_free (CoglPangoGlyphCacheKey *key) { g_object_unref (key->font); - g_slice_free (CoglPangoGlyphCacheKey, key); + g_free (key); } static unsigned int @@ -326,7 +326,7 @@ cogl_pango_glyph_cache_lookup (CoglPangoGlyphCache *cache, CoglPangoGlyphCacheKey *key; PangoRectangle ink_rect; - value = g_slice_new (CoglPangoGlyphCacheValue); + value = g_new0 (CoglPangoGlyphCacheValue, 1); value->texture = NULL; pango_font_get_glyph_extents (font, glyph, &ink_rect, NULL); @@ -362,7 +362,7 @@ cogl_pango_glyph_cache_lookup (CoglPangoGlyphCache *cache, cache->has_dirty_glyphs = TRUE; } - key = g_slice_new (CoglPangoGlyphCacheKey); + key = g_new0 (CoglPangoGlyphCacheKey, 1); key->font = g_object_ref (font); key->glyph = glyph; diff --git a/cogl/cogl-pango/cogl-pango-pipeline-cache.c b/cogl/cogl-pango/cogl-pango-pipeline-cache.c index fdc340908..566a1b079 100644 --- a/cogl/cogl-pango/cogl-pango-pipeline-cache.c +++ b/cogl/cogl-pango/cogl-pango-pipeline-cache.c @@ -69,7 +69,7 @@ _cogl_pango_pipeline_cache_value_destroy (void *data) /* We don't need to unref the pipeline because it only takes a weak reference */ - g_slice_free (CoglPangoPipelineCacheEntry, cache_entry); + g_free (cache_entry); } CoglPangoPipelineCache * @@ -164,7 +164,7 @@ pipeline_destroy_notify_cb (void *user_data) PipelineDestroyNotifyData *data = user_data; g_hash_table_remove (data->cache->hash_table, data->texture); - g_slice_free (PipelineDestroyNotifyData, data); + g_free (data); } CoglPipeline * @@ -182,7 +182,7 @@ _cogl_pango_pipeline_cache_get (CoglPangoPipelineCache *cache, return cogl_object_ref (entry->pipeline); /* No existing pipeline was found so let's create another */ - entry = g_slice_new (CoglPangoPipelineCacheEntry); + entry = g_new0 (CoglPangoPipelineCacheEntry, 1); if (texture) { @@ -207,7 +207,7 @@ _cogl_pango_pipeline_cache_get (CoglPangoPipelineCache *cache, /* Add a weak reference to the pipeline so we can remove it from the hash table when it is destroyed */ - destroy_data = g_slice_new (PipelineDestroyNotifyData); + destroy_data = g_new0 (PipelineDestroyNotifyData, 1); destroy_data->cache = cache; destroy_data->texture = texture; cogl_object_set_user_data (COGL_OBJECT (entry->pipeline), diff --git a/cogl/cogl-pango/cogl-pango-render.c b/cogl/cogl-pango/cogl-pango-render.c index 07ba0ca4b..108925aeb 100644 --- a/cogl/cogl-pango/cogl-pango-render.c +++ b/cogl/cogl-pango/cogl-pango-render.c @@ -365,7 +365,7 @@ cogl_pango_render_qdata_destroy (CoglPangoLayoutQdata *qdata) cogl_pango_layout_qdata_forget_display_list (qdata); if (qdata->first_line) pango_layout_line_unref (qdata->first_line); - g_slice_free (CoglPangoLayoutQdata, qdata); + g_free (qdata); } void @@ -389,7 +389,7 @@ cogl_pango_show_layout (CoglFramebuffer *fb, if (qdata == NULL) { - qdata = g_slice_new0 (CoglPangoLayoutQdata); + qdata = g_new0 (CoglPangoLayoutQdata, 1); qdata->renderer = priv; g_object_set_qdata_full (G_OBJECT (layout), cogl_pango_layout_get_qdata_key (), |