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>
This commit is contained in:
Robert Mader 2020-10-18 13:46:08 +02:00
parent ddca606b58
commit df4508e8cf
44 changed files with 133 additions and 139 deletions

View File

@ -100,7 +100,7 @@ struct _CoglPangoDisplayListNode
CoglPangoDisplayList * CoglPangoDisplayList *
_cogl_pango_display_list_new (CoglPangoPipelineCache *pipeline_cache) _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; dl->pipeline_cache = pipeline_cache;
@ -161,7 +161,7 @@ _cogl_pango_display_list_add_texture (CoglPangoDisplayList *dl,
else else
{ {
/* Otherwise create a new node */ /* Otherwise create a new node */
node = g_slice_new (CoglPangoDisplayListNode); node = g_new0 (CoglPangoDisplayListNode, 1);
node->type = COGL_PANGO_DISPLAY_LIST_TEXTURE; node->type = COGL_PANGO_DISPLAY_LIST_TEXTURE;
node->color_override = dl->color_override; 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_1, float y_1,
float x_2, float y_2) 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->type = COGL_PANGO_DISPLAY_LIST_RECTANGLE;
node->color_override = dl->color_override; node->color_override = dl->color_override;
@ -219,7 +219,7 @@ _cogl_pango_display_list_add_trapezoid (CoglPangoDisplayList *dl,
float x_22) float x_22)
{ {
CoglContext *ctx = dl->pipeline_cache->ctx; CoglContext *ctx = dl->pipeline_cache->ctx;
CoglPangoDisplayListNode *node = g_slice_new (CoglPangoDisplayListNode); CoglPangoDisplayListNode *node = g_new0 (CoglPangoDisplayListNode, 1);
CoglVertexP2 vertices[4] = { CoglVertexP2 vertices[4] = {
{ x_11, y_1 }, { x_11, y_1 },
{ x_12, y_2 }, { x_12, y_2 },
@ -470,7 +470,7 @@ _cogl_pango_display_list_node_free (CoglPangoDisplayListNode *node)
if (node->pipeline) if (node->pipeline)
cogl_object_unref (node->pipeline); cogl_object_unref (node->pipeline);
g_slice_free (CoglPangoDisplayListNode, node); g_free (node);
} }
void void
@ -486,5 +486,5 @@ void
_cogl_pango_display_list_free (CoglPangoDisplayList *dl) _cogl_pango_display_list_free (CoglPangoDisplayList *dl)
{ {
_cogl_pango_display_list_clear (dl); _cogl_pango_display_list_clear (dl);
g_slice_free (CoglPangoDisplayList, dl); g_free (dl);
} }

View File

@ -77,14 +77,14 @@ cogl_pango_glyph_cache_value_free (CoglPangoGlyphCacheValue *value)
{ {
if (value->texture) if (value->texture)
cogl_object_unref (value->texture); cogl_object_unref (value->texture);
g_slice_free (CoglPangoGlyphCacheValue, value); g_free (value);
} }
static void static void
cogl_pango_glyph_cache_key_free (CoglPangoGlyphCacheKey *key) cogl_pango_glyph_cache_key_free (CoglPangoGlyphCacheKey *key)
{ {
g_object_unref (key->font); g_object_unref (key->font);
g_slice_free (CoglPangoGlyphCacheKey, key); g_free (key);
} }
static unsigned int static unsigned int
@ -326,7 +326,7 @@ cogl_pango_glyph_cache_lookup (CoglPangoGlyphCache *cache,
CoglPangoGlyphCacheKey *key; CoglPangoGlyphCacheKey *key;
PangoRectangle ink_rect; PangoRectangle ink_rect;
value = g_slice_new (CoglPangoGlyphCacheValue); value = g_new0 (CoglPangoGlyphCacheValue, 1);
value->texture = NULL; value->texture = NULL;
pango_font_get_glyph_extents (font, glyph, &ink_rect, 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; cache->has_dirty_glyphs = TRUE;
} }
key = g_slice_new (CoglPangoGlyphCacheKey); key = g_new0 (CoglPangoGlyphCacheKey, 1);
key->font = g_object_ref (font); key->font = g_object_ref (font);
key->glyph = glyph; key->glyph = glyph;

View File

@ -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 /* We don't need to unref the pipeline because it only takes a weak
reference */ reference */
g_slice_free (CoglPangoPipelineCacheEntry, cache_entry); g_free (cache_entry);
} }
CoglPangoPipelineCache * CoglPangoPipelineCache *
@ -164,7 +164,7 @@ pipeline_destroy_notify_cb (void *user_data)
PipelineDestroyNotifyData *data = user_data; PipelineDestroyNotifyData *data = user_data;
g_hash_table_remove (data->cache->hash_table, data->texture); g_hash_table_remove (data->cache->hash_table, data->texture);
g_slice_free (PipelineDestroyNotifyData, data); g_free (data);
} }
CoglPipeline * CoglPipeline *
@ -182,7 +182,7 @@ _cogl_pango_pipeline_cache_get (CoglPangoPipelineCache *cache,
return cogl_object_ref (entry->pipeline); return cogl_object_ref (entry->pipeline);
/* No existing pipeline was found so let's create another */ /* No existing pipeline was found so let's create another */
entry = g_slice_new (CoglPangoPipelineCacheEntry); entry = g_new0 (CoglPangoPipelineCacheEntry, 1);
if (texture) 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 /* Add a weak reference to the pipeline so we can remove it from the
hash table when it is destroyed */ hash table when it is destroyed */
destroy_data = g_slice_new (PipelineDestroyNotifyData); destroy_data = g_new0 (PipelineDestroyNotifyData, 1);
destroy_data->cache = cache; destroy_data->cache = cache;
destroy_data->texture = texture; destroy_data->texture = texture;
cogl_object_set_user_data (COGL_OBJECT (entry->pipeline), cogl_object_set_user_data (COGL_OBJECT (entry->pipeline),

View File

@ -365,7 +365,7 @@ cogl_pango_render_qdata_destroy (CoglPangoLayoutQdata *qdata)
cogl_pango_layout_qdata_forget_display_list (qdata); cogl_pango_layout_qdata_forget_display_list (qdata);
if (qdata->first_line) if (qdata->first_line)
pango_layout_line_unref (qdata->first_line); pango_layout_line_unref (qdata->first_line);
g_slice_free (CoglPangoLayoutQdata, qdata); g_free (qdata);
} }
void void
@ -389,7 +389,7 @@ cogl_pango_show_layout (CoglFramebuffer *fb,
if (qdata == NULL) if (qdata == NULL)
{ {
qdata = g_slice_new0 (CoglPangoLayoutQdata); qdata = g_new0 (CoglPangoLayoutQdata, 1);
qdata->renderer = priv; qdata->renderer = priv;
g_object_set_qdata_full (G_OBJECT (layout), g_object_set_qdata_full (G_OBJECT (layout),
cogl_pango_layout_get_qdata_key (), cogl_pango_layout_get_qdata_key (),

View File

@ -48,7 +48,7 @@ CoglAttributeBuffer *
cogl_attribute_buffer_new_with_size (CoglContext *context, cogl_attribute_buffer_new_with_size (CoglContext *context,
size_t bytes) size_t bytes)
{ {
CoglAttributeBuffer *buffer = g_slice_new (CoglAttributeBuffer); CoglAttributeBuffer *buffer = g_new0 (CoglAttributeBuffer, 1);
/* parent's constructor */ /* parent's constructor */
_cogl_buffer_initialize (COGL_BUFFER (buffer), _cogl_buffer_initialize (COGL_BUFFER (buffer),
@ -97,6 +97,6 @@ _cogl_attribute_buffer_free (CoglAttributeBuffer *array)
/* parent's destructor */ /* parent's destructor */
_cogl_buffer_fini (COGL_BUFFER (array)); _cogl_buffer_fini (COGL_BUFFER (array));
g_slice_free (CoglAttributeBuffer, array); g_free (array);
} }

View File

@ -190,7 +190,7 @@ cogl_attribute_new (CoglAttributeBuffer *attribute_buffer,
int n_components, int n_components,
CoglAttributeType type) CoglAttributeType type)
{ {
CoglAttribute *attribute = g_slice_new (CoglAttribute); CoglAttribute *attribute = g_new0 (CoglAttribute, 1);
CoglBuffer *buffer = COGL_BUFFER (attribute_buffer); CoglBuffer *buffer = COGL_BUFFER (attribute_buffer);
CoglContext *ctx = buffer->context; CoglContext *ctx = buffer->context;
@ -240,7 +240,7 @@ _cogl_attribute_new_const (CoglContext *context,
gboolean transpose, gboolean transpose,
const float *value) const float *value)
{ {
CoglAttribute *attribute = g_slice_new (CoglAttribute); CoglAttribute *attribute = g_new0 (CoglAttribute, 1);
attribute->name_state = attribute->name_state =
g_hash_table_lookup (context->attribute_name_states_hash, name); g_hash_table_lookup (context->attribute_name_states_hash, name);
@ -521,7 +521,7 @@ _cogl_attribute_free (CoglAttribute *attribute)
else else
_cogl_boxed_value_destroy (&attribute->d.constant.boxed); _cogl_boxed_value_destroy (&attribute->d.constant.boxed);
g_slice_free (CoglAttribute, attribute); g_free (attribute);
} }
static gboolean static gboolean

View File

@ -58,7 +58,7 @@ _cogl_bitmap_free (CoglBitmap *bmp)
if (bmp->buffer) if (bmp->buffer)
cogl_object_unref (bmp->buffer); cogl_object_unref (bmp->buffer);
g_slice_free (CoglBitmap, bmp); g_free (bmp);
} }
gboolean gboolean
@ -190,7 +190,7 @@ cogl_bitmap_new_for_data (CoglContext *context,
if (rowstride == 0) if (rowstride == 0)
rowstride = width * cogl_pixel_format_get_bytes_per_pixel (format, 0); rowstride = width * cogl_pixel_format_get_bytes_per_pixel (format, 0);
bmp = g_slice_new (CoglBitmap); bmp = g_new0 (CoglBitmap, 1);
bmp->context = context; bmp->context = context;
bmp->format = format; bmp->format = format;
bmp->width = width; bmp->width = width;

View File

@ -53,7 +53,7 @@ _cogl_clip_stack_push_entry (CoglClipStack *clip_stack,
size_t size, size_t size,
CoglClipStackType type) CoglClipStackType type)
{ {
CoglClipStack *entry = g_slice_alloc (size); CoglClipStack *entry = g_malloc0 (size);
/* The new entry starts with a ref count of 1 because the stack /* The new entry starts with a ref count of 1 because the stack
holds a reference to it as it is the top entry */ holds a reference to it as it is the top entry */
@ -341,11 +341,11 @@ _cogl_clip_stack_unref (CoglClipStack *entry)
{ {
CoglClipStackRect *rect = (CoglClipStackRect *) entry; CoglClipStackRect *rect = (CoglClipStackRect *) entry;
cogl_matrix_entry_unref (rect->matrix_entry); cogl_matrix_entry_unref (rect->matrix_entry);
g_slice_free1 (sizeof (CoglClipStackRect), entry); g_free (entry);
break; break;
} }
case COGL_CLIP_STACK_WINDOW_RECT: case COGL_CLIP_STACK_WINDOW_RECT:
g_slice_free1 (sizeof (CoglClipStackWindowRect), entry); g_free (entry);
break; break;
case COGL_CLIP_STACK_PRIMITIVE: case COGL_CLIP_STACK_PRIMITIVE:
{ {
@ -353,14 +353,14 @@ _cogl_clip_stack_unref (CoglClipStack *entry)
(CoglClipStackPrimitive *) entry; (CoglClipStackPrimitive *) entry;
cogl_matrix_entry_unref (primitive_entry->matrix_entry); cogl_matrix_entry_unref (primitive_entry->matrix_entry);
cogl_object_unref (primitive_entry->primitive); cogl_object_unref (primitive_entry->primitive);
g_slice_free1 (sizeof (CoglClipStackPrimitive), entry); g_free (entry);
break; break;
} }
case COGL_CLIP_STACK_REGION: case COGL_CLIP_STACK_REGION:
{ {
CoglClipStackRegion *region = (CoglClipStackRegion *) entry; CoglClipStackRegion *region = (CoglClipStackRegion *) entry;
cairo_region_destroy (region->region); cairo_region_destroy (region->region);
g_slice_free1 (sizeof (CoglClipStackRegion), entry); g_free (entry);
break; break;
} }
default: default:

View File

@ -41,7 +41,7 @@ _cogl_closure_disconnect (CoglClosure *closure)
if (closure->destroy_cb) if (closure->destroy_cb)
closure->destroy_cb (closure->user_data); closure->destroy_cb (closure->user_data);
g_slice_free (CoglClosure, closure); g_free (closure);
} }
void void
@ -59,7 +59,7 @@ _cogl_closure_list_add (CoglList *list,
void *user_data, void *user_data,
CoglUserDataDestroyCallback destroy_cb) CoglUserDataDestroyCallback destroy_cb)
{ {
CoglClosure *closure = g_slice_new (CoglClosure); CoglClosure *closure = g_new0 (CoglClosure, 1);
closure->function = function; closure->function = function;
closure->user_data = user_data; closure->user_data = user_data;

View File

@ -42,14 +42,14 @@ COGL_GTYPE_DEFINE_BOXED (Color, color, cogl_color_copy, cogl_color_free);
CoglColor * CoglColor *
cogl_color_new (void) cogl_color_new (void)
{ {
return g_slice_new (CoglColor); return g_new0 (CoglColor, 1);
} }
CoglColor * CoglColor *
cogl_color_copy (const CoglColor *color) cogl_color_copy (const CoglColor *color)
{ {
if (G_LIKELY (color)) if (G_LIKELY (color))
return g_slice_dup (CoglColor, color); return g_memdup2 (color, sizeof (CoglColor));
return NULL; return NULL;
} }
@ -58,7 +58,7 @@ void
cogl_color_free (CoglColor *color) cogl_color_free (CoglColor *color)
{ {
if (G_LIKELY (color)) if (G_LIKELY (color))
g_slice_free (CoglColor, color); g_free (color);
} }
void void

View File

@ -79,14 +79,14 @@ _cogl_display_free (CoglDisplay *display)
display->onscreen_template = NULL; display->onscreen_template = NULL;
} }
g_slice_free (CoglDisplay, display); g_free (display);
} }
CoglDisplay * CoglDisplay *
cogl_display_new (CoglRenderer *renderer, cogl_display_new (CoglRenderer *renderer,
CoglOnscreenTemplate *onscreen_template) CoglOnscreenTemplate *onscreen_template)
{ {
CoglDisplay *display = g_slice_new0 (CoglDisplay); CoglDisplay *display = g_new0 (CoglDisplay, 1);
GError *error = NULL; GError *error = NULL;
_cogl_init (); _cogl_init ();

View File

@ -164,7 +164,7 @@ cogl_framebuffer_add_fence_callback (CoglFramebuffer *framebuffer,
if (!COGL_FLAGS_GET (context->features, COGL_FEATURE_ID_FENCE)) if (!COGL_FLAGS_GET (context->features, COGL_FEATURE_ID_FENCE))
return NULL; return NULL;
fence = g_slice_new (CoglFenceClosure); fence = g_new0 (CoglFenceClosure, 1);
fence->framebuffer = framebuffer; fence->framebuffer = framebuffer;
fence->callback = callback; fence->callback = callback;
fence->user_data = user_data; fence->user_data = user_data;
@ -209,7 +209,7 @@ cogl_framebuffer_cancel_fence_callback (CoglFramebuffer *framebuffer,
#endif #endif
} }
g_slice_free (CoglFenceClosure, fence); g_free (fence);
} }
void void

View File

@ -43,7 +43,7 @@ cogl_frame_info_new (int64_t global_frame_counter)
{ {
CoglFrameInfo *info; CoglFrameInfo *info;
info = g_slice_new0 (CoglFrameInfo); info = g_new0 (CoglFrameInfo, 1);
info->global_frame_counter = global_frame_counter; info->global_frame_counter = global_frame_counter;
return _cogl_frame_info_object_new (info); return _cogl_frame_info_object_new (info);
@ -52,7 +52,7 @@ cogl_frame_info_new (int64_t global_frame_counter)
static void static void
_cogl_frame_info_free (CoglFrameInfo *info) _cogl_frame_info_free (CoglFrameInfo *info)
{ {
g_slice_free (CoglFrameInfo, info); g_free (info);
} }
int64_t int64_t

View File

@ -50,7 +50,7 @@ COGL_GTYPE_DEFINE_CLASS (IndexBuffer, index_buffer);
CoglIndexBuffer * CoglIndexBuffer *
cogl_index_buffer_new (CoglContext *context, size_t bytes) cogl_index_buffer_new (CoglContext *context, size_t bytes)
{ {
CoglIndexBuffer *indices = g_slice_new (CoglIndexBuffer); CoglIndexBuffer *indices = g_new0 (CoglIndexBuffer, 1);
/* parent's constructor */ /* parent's constructor */
_cogl_buffer_initialize (COGL_BUFFER (indices), _cogl_buffer_initialize (COGL_BUFFER (indices),
@ -69,7 +69,7 @@ _cogl_index_buffer_free (CoglIndexBuffer *indices)
/* parent's destructor */ /* parent's destructor */
_cogl_buffer_fini (COGL_BUFFER (indices)); _cogl_buffer_fini (COGL_BUFFER (indices));
g_slice_free (CoglIndexBuffer, indices); g_free (indices);
} }
/* XXX: do we want a convenience function like this as an alternative /* XXX: do we want a convenience function like this as an alternative

View File

@ -69,7 +69,7 @@ cogl_indices_new_for_buffer (CoglIndicesType type,
CoglIndexBuffer *buffer, CoglIndexBuffer *buffer,
size_t offset) size_t offset)
{ {
CoglIndices *indices = g_slice_new (CoglIndices); CoglIndices *indices = g_new0 (CoglIndices, 1);
indices->buffer = cogl_object_ref (buffer); indices->buffer = cogl_object_ref (buffer);
indices->offset = offset; indices->offset = offset;
@ -161,7 +161,7 @@ static void
_cogl_indices_free (CoglIndices *indices) _cogl_indices_free (CoglIndices *indices)
{ {
cogl_object_unref (indices->buffer); cogl_object_unref (indices->buffer);
g_slice_free (CoglIndices, indices); g_free (indices);
} }
CoglIndices * CoglIndices *

View File

@ -140,13 +140,13 @@ _cogl_journal_free (CoglJournal *journal)
if (journal->vbo_pool[i]) if (journal->vbo_pool[i])
cogl_object_unref (journal->vbo_pool[i]); cogl_object_unref (journal->vbo_pool[i]);
g_slice_free (CoglJournal, journal); g_free (journal);
} }
CoglJournal * CoglJournal *
_cogl_journal_new (CoglFramebuffer *framebuffer) _cogl_journal_new (CoglFramebuffer *framebuffer)
{ {
CoglJournal *journal = g_slice_new0 (CoglJournal); CoglJournal *journal = g_new0 (CoglJournal, 1);
journal->framebuffer = framebuffer; journal->framebuffer = framebuffer;
journal->entries = g_array_new (FALSE, FALSE, sizeof (CoglJournalEntry)); journal->entries = g_array_new (FALSE, FALSE, sizeof (CoglJournalEntry));

View File

@ -513,13 +513,13 @@ static void
_cogl_matrix_stack_free (CoglMatrixStack *stack) _cogl_matrix_stack_free (CoglMatrixStack *stack)
{ {
cogl_matrix_entry_unref (stack->last_entry); cogl_matrix_entry_unref (stack->last_entry);
g_slice_free (CoglMatrixStack, stack); g_free (stack);
} }
CoglMatrixStack * CoglMatrixStack *
cogl_matrix_stack_new (CoglContext *ctx) cogl_matrix_stack_new (CoglContext *ctx)
{ {
CoglMatrixStack *stack = g_slice_new (CoglMatrixStack); CoglMatrixStack *stack = g_new0 (CoglMatrixStack, 1);
if (G_UNLIKELY (cogl_matrix_stack_magazine == NULL)) if (G_UNLIKELY (cogl_matrix_stack_magazine == NULL))
{ {

View File

@ -81,7 +81,7 @@ struct _CoglMemoryStack
static CoglMemorySubStack * static CoglMemorySubStack *
_cogl_memory_sub_stack_alloc (size_t bytes) _cogl_memory_sub_stack_alloc (size_t bytes)
{ {
CoglMemorySubStack *sub_stack = g_slice_new (CoglMemorySubStack); CoglMemorySubStack *sub_stack = g_new0 (CoglMemorySubStack, 1);
sub_stack->bytes = bytes; sub_stack->bytes = bytes;
sub_stack->data = g_malloc (bytes); sub_stack->data = g_malloc (bytes);
return sub_stack; return sub_stack;
@ -101,7 +101,7 @@ _cogl_memory_stack_add_sub_stack (CoglMemoryStack *stack,
CoglMemoryStack * CoglMemoryStack *
_cogl_memory_stack_new (size_t initial_size_bytes) _cogl_memory_stack_new (size_t initial_size_bytes)
{ {
CoglMemoryStack *stack = g_slice_new0 (CoglMemoryStack); CoglMemoryStack *stack = g_new0 (CoglMemoryStack, 1);
_cogl_list_init (&stack->sub_stacks); _cogl_list_init (&stack->sub_stacks);
@ -175,7 +175,7 @@ static void
_cogl_memory_sub_stack_free (CoglMemorySubStack *sub_stack) _cogl_memory_sub_stack_free (CoglMemorySubStack *sub_stack)
{ {
g_free (sub_stack->data); g_free (sub_stack->data);
g_slice_free (CoglMemorySubStack, sub_stack); g_free (sub_stack);
} }
void void
@ -190,5 +190,5 @@ _cogl_memory_stack_free (CoglMemoryStack *stack)
_cogl_memory_sub_stack_free (sub_stack); _cogl_memory_sub_stack_free (sub_stack);
} }
g_slice_free (CoglMemoryStack, stack); g_free (stack);
} }

View File

@ -47,13 +47,13 @@ COGL_GTYPE_DEFINE_CLASS (OnscreenTemplate, onscreen_template);
static void static void
_cogl_onscreen_template_free (CoglOnscreenTemplate *onscreen_template) _cogl_onscreen_template_free (CoglOnscreenTemplate *onscreen_template)
{ {
g_slice_free (CoglOnscreenTemplate, onscreen_template); g_free (onscreen_template);
} }
CoglOnscreenTemplate * CoglOnscreenTemplate *
cogl_onscreen_template_new (CoglSwapChain *swap_chain) cogl_onscreen_template_new (CoglSwapChain *swap_chain)
{ {
CoglOnscreenTemplate *onscreen_template = g_slice_new0 (CoglOnscreenTemplate); CoglOnscreenTemplate *onscreen_template = g_new0 (CoglOnscreenTemplate, 1);
char *user_config; char *user_config;
onscreen_template->config.swap_chain = swap_chain; onscreen_template->config.swap_chain = swap_chain;

View File

@ -204,7 +204,7 @@ _cogl_dispatch_onscreen_cb (CoglContext *context)
g_object_unref (onscreen); g_object_unref (onscreen);
cogl_object_unref (info); cogl_object_unref (info);
g_slice_free (CoglOnscreenEvent, event); g_free (event);
} }
while (!_cogl_list_empty (&context->onscreen_dirty_queue)) while (!_cogl_list_empty (&context->onscreen_dirty_queue))
@ -225,7 +225,7 @@ _cogl_dispatch_onscreen_cb (CoglContext *context)
g_object_unref (qe->onscreen); g_object_unref (qe->onscreen);
g_slice_free (CoglOnscreenQueuedDirty, qe); g_free (qe);
} }
} }
@ -252,7 +252,7 @@ _cogl_onscreen_queue_dirty (CoglOnscreen *onscreen,
{ {
CoglFramebuffer *framebuffer = COGL_FRAMEBUFFER (onscreen); CoglFramebuffer *framebuffer = COGL_FRAMEBUFFER (onscreen);
CoglContext *ctx = cogl_framebuffer_get_context (framebuffer); CoglContext *ctx = cogl_framebuffer_get_context (framebuffer);
CoglOnscreenQueuedDirty *qe = g_slice_new (CoglOnscreenQueuedDirty); CoglOnscreenQueuedDirty *qe = g_new0 (CoglOnscreenQueuedDirty, 1);
qe->onscreen = g_object_ref (onscreen); qe->onscreen = g_object_ref (onscreen);
qe->info = *info; qe->info = *info;
@ -283,7 +283,7 @@ _cogl_onscreen_queue_event (CoglOnscreen *onscreen,
CoglFramebuffer *framebuffer = COGL_FRAMEBUFFER (onscreen); CoglFramebuffer *framebuffer = COGL_FRAMEBUFFER (onscreen);
CoglContext *ctx = cogl_framebuffer_get_context (framebuffer); CoglContext *ctx = cogl_framebuffer_get_context (framebuffer);
CoglOnscreenEvent *event = g_slice_new (CoglOnscreenEvent); CoglOnscreenEvent *event = g_new0 (CoglOnscreenEvent, 1);
event->onscreen = g_object_ref (onscreen); event->onscreen = g_object_ref (onscreen);
event->info = cogl_object_ref (info); event->info = cogl_object_ref (info);

View File

@ -45,7 +45,7 @@ _cogl_output_new (const char *name)
{ {
CoglOutput *output; CoglOutput *output;
output = g_slice_new0 (CoglOutput); output = g_new0 (CoglOutput, 1);
output->name = g_strdup (name); output->name = g_strdup (name);
return _cogl_output_object_new (output); return _cogl_output_object_new (output);
@ -56,7 +56,7 @@ _cogl_output_free (CoglOutput *output)
{ {
g_free (output->name); g_free (output->name);
g_slice_free (CoglOutput, output); g_free (output);
} }
gboolean gboolean

View File

@ -66,7 +66,7 @@ value_destroy_cb (void *value)
cogl_object_unref (entry->parent.pipeline); cogl_object_unref (entry->parent.pipeline);
g_slice_free (CoglPipelineHashTableEntry, entry); g_free (entry);
} }
static unsigned int static unsigned int
@ -206,7 +206,7 @@ _cogl_pipeline_hash_table_get (CoglPipelineHashTable *hash,
if (g_hash_table_size (hash->table) >= hash->expected_min_size * 2) if (g_hash_table_size (hash->table) >= hash->expected_min_size * 2)
prune_old_pipelines (hash); prune_old_pipelines (hash);
entry = g_slice_new (CoglPipelineHashTableEntry); entry = g_new0 (CoglPipelineHashTableEntry, 1);
entry->parent.usage_count = 0; entry->parent.usage_count = 0;
entry->hash = hash; entry->hash = hash;
entry->hash_value = dummy_entry.hash_value; entry->hash_value = dummy_entry.hash_value;

View File

@ -161,7 +161,7 @@ _cogl_pipeline_layer_copy_differences (CoglPipelineLayer *dest,
if ((differences & COGL_PIPELINE_LAYER_STATE_NEEDS_BIG_STATE) && if ((differences & COGL_PIPELINE_LAYER_STATE_NEEDS_BIG_STATE) &&
!dest->has_big_state) !dest->has_big_state)
{ {
dest->big_state = g_slice_new (CoglPipelineLayerBigState); dest->big_state = g_new0 (CoglPipelineLayerBigState, 1);
dest->has_big_state = TRUE; dest->has_big_state = TRUE;
} }
@ -408,7 +408,7 @@ init_layer_state:
if (change & COGL_PIPELINE_LAYER_STATE_NEEDS_BIG_STATE && if (change & COGL_PIPELINE_LAYER_STATE_NEEDS_BIG_STATE &&
!layer->has_big_state) !layer->has_big_state)
{ {
layer->big_state = g_slice_new (CoglPipelineLayerBigState); layer->big_state = g_new0 (CoglPipelineLayerBigState, 1);
layer->has_big_state = TRUE; layer->has_big_state = TRUE;
} }
@ -457,7 +457,7 @@ _cogl_pipeline_layer_set_parent (CoglPipelineLayer *layer,
CoglPipelineLayer * CoglPipelineLayer *
_cogl_pipeline_layer_copy (CoglPipelineLayer *src) _cogl_pipeline_layer_copy (CoglPipelineLayer *src)
{ {
CoglPipelineLayer *layer = g_slice_new (CoglPipelineLayer); CoglPipelineLayer *layer = g_new0 (CoglPipelineLayer, 1);
_cogl_pipeline_node_init (COGL_NODE (layer)); _cogl_pipeline_node_init (COGL_NODE (layer));
@ -712,17 +712,17 @@ _cogl_pipeline_layer_free (CoglPipelineLayer *layer)
_cogl_pipeline_snippet_list_free (&layer->big_state->fragment_snippets); _cogl_pipeline_snippet_list_free (&layer->big_state->fragment_snippets);
if (layer->differences & COGL_PIPELINE_LAYER_STATE_NEEDS_BIG_STATE) if (layer->differences & COGL_PIPELINE_LAYER_STATE_NEEDS_BIG_STATE)
g_slice_free (CoglPipelineLayerBigState, layer->big_state); g_free (layer->big_state);
g_slice_free (CoglPipelineLayer, layer); g_free (layer);
} }
void void
_cogl_pipeline_init_default_layers (void) _cogl_pipeline_init_default_layers (void)
{ {
CoglPipelineLayer *layer = g_slice_new0 (CoglPipelineLayer); CoglPipelineLayer *layer = g_new0 (CoglPipelineLayer, 1);
CoglPipelineLayerBigState *big_state = CoglPipelineLayerBigState *big_state =
g_slice_new0 (CoglPipelineLayerBigState); g_new0 (CoglPipelineLayerBigState, 1);
CoglPipelineLayer *new; CoglPipelineLayer *new;
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);

View File

@ -635,7 +635,7 @@ _cogl_get_n_args_for_combine_func (CoglPipelineCombineFunc func);
* static void * static void
* destroy_cache_cb (CoglObject *object, void *user_data) * destroy_cache_cb (CoglObject *object, void *user_data)
* { * {
* g_slice_free (MyValidatedMaterialCache, user_data); * g_free (user_data);
* } * }
* *
* static void * static void
@ -654,7 +654,7 @@ _cogl_get_n_args_for_combine_func (CoglPipelineCombineFunc func);
* &_cogl_my_cache_key); * &_cogl_my_cache_key);
* if (G_UNLIKELY (cache == NULL)) * if (G_UNLIKELY (cache == NULL))
* { * {
* cache = g_slice_new (MyValidatedMaterialCache); * cache = g_new0 (MyValidatedMaterialCache, 1);
* cogl_object_set_user_data (COGL_OBJECT (source), * cogl_object_set_user_data (COGL_OBJECT (source),
* &_cogl_my_cache_key, * &_cogl_my_cache_key,
* cache, destroy_cache_cb); * cache, destroy_cache_cb);

View File

@ -80,10 +80,10 @@ void
_cogl_pipeline_init_default_pipeline (void) _cogl_pipeline_init_default_pipeline (void)
{ {
/* Create new - blank - pipeline */ /* Create new - blank - pipeline */
CoglPipeline *pipeline = g_slice_new0 (CoglPipeline); CoglPipeline *pipeline = g_new0 (CoglPipeline, 1);
/* XXX: NB: It's important that we zero this to avoid polluting /* XXX: NB: It's important that we zero this to avoid polluting
* pipeline hash values with un-initialized data */ * pipeline hash values with un-initialized data */
CoglPipelineBigState *big_state = g_slice_new0 (CoglPipelineBigState); CoglPipelineBigState *big_state = g_new0 (CoglPipelineBigState, 1);
CoglPipelineAlphaFuncState *alpha_state = &big_state->alpha_state; CoglPipelineAlphaFuncState *alpha_state = &big_state->alpha_state;
CoglPipelineBlendState *blend_state = &big_state->blend_state; CoglPipelineBlendState *blend_state = &big_state->blend_state;
CoglPipelineCullFaceState *cull_face_state = &big_state->cull_face_state; CoglPipelineCullFaceState *cull_face_state = &big_state->cull_face_state;
@ -180,8 +180,7 @@ recursively_free_layer_caches (CoglPipeline *pipeline)
return; return;
if (G_UNLIKELY (pipeline->layers_cache != pipeline->short_layers_cache)) if (G_UNLIKELY (pipeline->layers_cache != pipeline->short_layers_cache))
g_slice_free1 (sizeof (CoglPipelineLayer *) * pipeline->n_layers, g_free (pipeline->layers_cache);
pipeline->layers_cache);
pipeline->layers_cache_dirty = TRUE; pipeline->layers_cache_dirty = TRUE;
_cogl_pipeline_node_foreach_child (COGL_NODE (pipeline), _cogl_pipeline_node_foreach_child (COGL_NODE (pipeline),
@ -254,7 +253,7 @@ _cogl_pipeline_revert_weak_ancestors (CoglPipeline *strong)
static CoglPipeline * static CoglPipeline *
_cogl_pipeline_copy (CoglPipeline *src, gboolean is_weak) _cogl_pipeline_copy (CoglPipeline *src, gboolean is_weak)
{ {
CoglPipeline *pipeline = g_slice_new (CoglPipeline); CoglPipeline *pipeline = g_new0 (CoglPipeline, 1);
_cogl_pipeline_node_init (COGL_NODE (pipeline)); _cogl_pipeline_node_init (COGL_NODE (pipeline));
@ -393,11 +392,11 @@ _cogl_pipeline_free (CoglPipeline *pipeline)
_cogl_pipeline_snippet_list_free (&pipeline->big_state->fragment_snippets); _cogl_pipeline_snippet_list_free (&pipeline->big_state->fragment_snippets);
if (pipeline->differences & COGL_PIPELINE_STATE_NEEDS_BIG_STATE) if (pipeline->differences & COGL_PIPELINE_STATE_NEEDS_BIG_STATE)
g_slice_free (CoglPipelineBigState, pipeline->big_state); g_free (pipeline->big_state);
recursively_free_layer_caches (pipeline); recursively_free_layer_caches (pipeline);
g_slice_free (CoglPipeline, pipeline); g_free (pipeline);
} }
gboolean gboolean
@ -433,7 +432,7 @@ _cogl_pipeline_update_layers_cache (CoglPipeline *pipeline)
else else
{ {
pipeline->layers_cache = pipeline->layers_cache =
g_slice_alloc0 (sizeof (CoglPipelineLayer *) * n_layers); g_malloc0 (sizeof (CoglPipelineLayer *) * n_layers);
} }
/* Notes: /* Notes:
@ -838,7 +837,7 @@ _cogl_pipeline_copy_differences (CoglPipeline *dest,
{ {
if (!dest->has_big_state) if (!dest->has_big_state)
{ {
dest->big_state = g_slice_new (CoglPipelineBigState); dest->big_state = g_new0 (CoglPipelineBigState, 1);
dest->has_big_state = TRUE; dest->has_big_state = TRUE;
} }
big_state = dest->big_state; big_state = dest->big_state;
@ -1220,7 +1219,7 @@ _cogl_pipeline_pre_change_notify (CoglPipeline *pipeline,
if (change & COGL_PIPELINE_STATE_NEEDS_BIG_STATE && if (change & COGL_PIPELINE_STATE_NEEDS_BIG_STATE &&
!pipeline->has_big_state) !pipeline->has_big_state)
{ {
pipeline->big_state = g_slice_new (CoglPipelineBigState); pipeline->big_state = g_new0 (CoglPipelineBigState, 1);
pipeline->has_big_state = TRUE; pipeline->has_big_state = TRUE;
} }

View File

@ -63,7 +63,7 @@ _cogl_pixel_buffer_new (CoglContext *context,
const void *data, const void *data,
GError **error) GError **error)
{ {
CoglPixelBuffer *pixel_buffer = g_slice_new0 (CoglPixelBuffer); CoglPixelBuffer *pixel_buffer = g_new0 (CoglPixelBuffer, 1);
CoglBuffer *buffer = COGL_BUFFER (pixel_buffer); CoglBuffer *buffer = COGL_BUFFER (pixel_buffer);
/* parent's constructor */ /* parent's constructor */
@ -111,6 +111,6 @@ _cogl_pixel_buffer_free (CoglPixelBuffer *buffer)
/* parent's destructor */ /* parent's destructor */
_cogl_buffer_fini (COGL_BUFFER (buffer)); _cogl_buffer_fini (COGL_BUFFER (buffer));
g_slice_free (CoglPixelBuffer, buffer); g_free (buffer);
} }

View File

@ -162,7 +162,7 @@ _cogl_poll_renderer_remove_fd (CoglRenderer *renderer, int fd)
{ {
renderer->poll_sources = renderer->poll_sources =
g_list_delete_link (renderer->poll_sources, l); g_list_delete_link (renderer->poll_sources, l);
g_slice_free (CoglPollSource, source); g_free (source);
break; break;
} }
} }
@ -203,7 +203,7 @@ _cogl_poll_renderer_add_fd (CoglRenderer *renderer,
_cogl_poll_renderer_remove_fd (renderer, fd); _cogl_poll_renderer_remove_fd (renderer, fd);
source = g_slice_new0 (CoglPollSource); source = g_new0 (CoglPollSource, 1);
source->fd = fd; source->fd = fd;
source->prepare = prepare; source->prepare = prepare;
source->dispatch = dispatch; source->dispatch = dispatch;
@ -223,7 +223,7 @@ _cogl_poll_renderer_add_source (CoglRenderer *renderer,
{ {
CoglPollSource *source; CoglPollSource *source;
source = g_slice_new0 (CoglPollSource); source = g_new0 (CoglPollSource, 1);
source->fd = -1; source->fd = -1;
source->prepare = prepare; source->prepare = prepare;
source->dispatch = dispatch; source->dispatch = dispatch;
@ -246,7 +246,7 @@ _cogl_poll_renderer_remove_source (CoglRenderer *renderer,
{ {
renderer->poll_sources = renderer->poll_sources =
g_list_delete_link (renderer->poll_sources, l); g_list_delete_link (renderer->poll_sources, l);
g_slice_free (CoglPollSource, source); g_free (source);
break; break;
} }
} }

View File

@ -58,7 +58,7 @@ cogl_primitive_new_with_attributes (CoglVerticesMode mode,
CoglPrimitive *primitive; CoglPrimitive *primitive;
int i; int i;
primitive = g_slice_alloc (sizeof (CoglPrimitive) + primitive = g_malloc0 (sizeof (CoglPrimitive) +
sizeof (CoglAttribute *) * (n_attributes - 1)); sizeof (CoglAttribute *) * (n_attributes - 1));
primitive->mode = mode; primitive->mode = mode;
primitive->first_vertex = 0; primitive->first_vertex = 0;
@ -384,15 +384,12 @@ _cogl_primitive_free (CoglPrimitive *primitive)
cogl_object_unref (primitive->attributes[i]); cogl_object_unref (primitive->attributes[i]);
if (primitive->attributes != &primitive->embedded_attribute) if (primitive->attributes != &primitive->embedded_attribute)
g_slice_free1 (sizeof (CoglAttribute *) * primitive->n_attributes, g_free (primitive->attributes);
primitive->attributes);
if (primitive->indices) if (primitive->indices)
cogl_object_unref (primitive->indices); cogl_object_unref (primitive->indices);
g_slice_free1 (sizeof (CoglPrimitive) + g_free (primitive);
sizeof (CoglAttribute *) *
(primitive->n_embedded_attributes - 1), primitive);
} }
static void static void
@ -441,17 +438,15 @@ cogl_primitive_set_attributes (CoglPrimitive *primitive,
if (n_attributes <= primitive->n_embedded_attributes) if (n_attributes <= primitive->n_embedded_attributes)
{ {
if (primitive->attributes != &primitive->embedded_attribute) if (primitive->attributes != &primitive->embedded_attribute)
g_slice_free1 (sizeof (CoglAttribute *) * primitive->n_attributes, g_free (primitive->attributes);
primitive->attributes);
primitive->attributes = &primitive->embedded_attribute; primitive->attributes = &primitive->embedded_attribute;
} }
else else
{ {
if (primitive->attributes != &primitive->embedded_attribute) if (primitive->attributes != &primitive->embedded_attribute)
g_slice_free1 (sizeof (CoglAttribute *) * primitive->n_attributes, g_free (primitive->attributes);
primitive->attributes);
primitive->attributes = primitive->attributes =
g_slice_alloc (sizeof (CoglAttribute *) * n_attributes); g_malloc0 (sizeof (CoglAttribute *) * n_attributes);
} }
memcpy (primitive->attributes, attributes, memcpy (primitive->attributes, attributes,

View File

@ -121,13 +121,13 @@ struct _CoglRectangleMapStackEntry
static CoglRectangleMapNode * static CoglRectangleMapNode *
_cogl_rectangle_map_node_new (void) _cogl_rectangle_map_node_new (void)
{ {
return g_slice_new (CoglRectangleMapNode); return g_new0 (CoglRectangleMapNode, 1);
} }
static void static void
_cogl_rectangle_map_node_free (CoglRectangleMapNode *node) _cogl_rectangle_map_node_free (CoglRectangleMapNode *node)
{ {
g_slice_free (CoglRectangleMapNode, node); g_free (node);
} }
CoglRectangleMap * CoglRectangleMap *

View File

@ -164,7 +164,7 @@ _cogl_renderer_get_winsys (CoglRenderer *renderer)
static void static void
native_filter_closure_free (CoglNativeFilterClosure *closure) native_filter_closure_free (CoglNativeFilterClosure *closure)
{ {
g_slice_free (CoglNativeFilterClosure, closure); g_free (closure);
} }
static void static void
@ -652,7 +652,7 @@ _cogl_renderer_add_native_filter (CoglRenderer *renderer,
{ {
CoglNativeFilterClosure *closure; CoglNativeFilterClosure *closure;
closure = g_slice_new (CoglNativeFilterClosure); closure = g_new0 (CoglNativeFilterClosure, 1);
closure->func = func; closure->func = func;
closure->data = data; closure->data = data;

View File

@ -181,7 +181,7 @@ _cogl_sampler_cache_get_entry_gl (CoglSamplerCache *cache,
if (entry == NULL) if (entry == NULL)
{ {
entry = g_slice_dup (CoglSamplerCacheEntry, key); entry = g_memdup2 (key, sizeof (CoglSamplerCacheEntry));
cache->context->driver_vtable->sampler_init (cache->context, entry); cache->context->driver_vtable->sampler_init (cache->context, entry);
@ -204,7 +204,7 @@ _cogl_sampler_cache_get_entry_cogl (CoglSamplerCache *cache,
CoglSamplerCacheEntry canonical_key; CoglSamplerCacheEntry canonical_key;
CoglSamplerCacheEntry *gl_entry; CoglSamplerCacheEntry *gl_entry;
entry = g_slice_dup (CoglSamplerCacheEntry, key); entry = g_memdup2 (key, sizeof (CoglSamplerCacheEntry));
/* Get the sampler object number from the canonical GL version /* Get the sampler object number from the canonical GL version
of the sampler state cache */ of the sampler state cache */
@ -271,7 +271,7 @@ hash_table_free_gl_cb (void *key,
context->driver_vtable->sampler_free (context, entry); context->driver_vtable->sampler_free (context, entry);
g_slice_free (CoglSamplerCacheEntry, entry); g_free (entry);
} }
static void static void
@ -281,7 +281,7 @@ hash_table_free_cogl_cb (void *key,
{ {
CoglSamplerCacheEntry *entry = value; CoglSamplerCacheEntry *entry = value;
g_slice_free (CoglSamplerCacheEntry, entry); g_free (entry);
} }
void void

View File

@ -49,7 +49,7 @@ cogl_snippet_new (CoglSnippetHook hook,
const char *declarations, const char *declarations,
const char *post) const char *post)
{ {
CoglSnippet *snippet = g_slice_new0 (CoglSnippet); CoglSnippet *snippet = g_new0 (CoglSnippet, 1);
_cogl_snippet_object_new (snippet); _cogl_snippet_object_new (snippet);
@ -181,5 +181,5 @@ _cogl_snippet_free (CoglSnippet *snippet)
g_free (snippet->pre); g_free (snippet->pre);
g_free (snippet->replace); g_free (snippet->replace);
g_free (snippet->post); g_free (snippet->post);
g_slice_free (CoglSnippet, snippet); g_free (snippet);
} }

View File

@ -46,13 +46,13 @@ COGL_GTYPE_DEFINE_CLASS (SwapChain, swap_chain);
static void static void
_cogl_swap_chain_free (CoglSwapChain *swap_chain) _cogl_swap_chain_free (CoglSwapChain *swap_chain)
{ {
g_slice_free (CoglSwapChain, swap_chain); g_free (swap_chain);
} }
CoglSwapChain * CoglSwapChain *
cogl_swap_chain_new (void) cogl_swap_chain_new (void)
{ {
CoglSwapChain *swap_chain = g_slice_new0 (CoglSwapChain); CoglSwapChain *swap_chain = g_new0 (CoglSwapChain, 1);
swap_chain->length = -1; /* no preference */ swap_chain->length = -1; /* no preference */

View File

@ -155,7 +155,7 @@ _cogl_texture_free_loader (CoglTexture *texture)
cogl_object_unref (loader->src.bitmap.bitmap); cogl_object_unref (loader->src.bitmap.bitmap);
break; break;
} }
g_slice_free (CoglTextureLoader, loader); g_free (loader);
texture->loader = NULL; texture->loader = NULL;
} }
} }
@ -163,7 +163,7 @@ _cogl_texture_free_loader (CoglTexture *texture)
CoglTextureLoader * CoglTextureLoader *
_cogl_texture_create_loader (void) _cogl_texture_create_loader (void)
{ {
return g_slice_new0 (CoglTextureLoader); return g_new0 (CoglTextureLoader, 1);
} }
void void

View File

@ -58,7 +58,7 @@ _xlib_renderer_data_free (CoglXlibRenderer *data)
if (data->xvisinfo) if (data->xvisinfo)
XFree (data->xvisinfo); XFree (data->xvisinfo);
g_slice_free (CoglXlibRenderer, data); g_free (data);
} }
CoglXlibRenderer * CoglXlibRenderer *
@ -71,7 +71,7 @@ _cogl_xlib_renderer_get_data (CoglRenderer *renderer)
data. */ data. */
if (!renderer->custom_winsys_user_data) if (!renderer->custom_winsys_user_data)
renderer->custom_winsys_user_data = g_slice_new0 (CoglXlibRenderer); renderer->custom_winsys_user_data = g_new0 (CoglXlibRenderer, 1);
return renderer->custom_winsys_user_data; return renderer->custom_winsys_user_data;
} }

View File

@ -73,7 +73,7 @@ _cogl_program_free (CoglProgram *program)
g_array_free (program->custom_uniforms, TRUE); g_array_free (program->custom_uniforms, TRUE);
g_slice_free (CoglProgram, program); g_free (program);
} }
CoglHandle CoglHandle
@ -81,7 +81,7 @@ cogl_create_program (void)
{ {
CoglProgram *program; CoglProgram *program;
program = g_slice_new0 (CoglProgram); program = g_new0 (CoglProgram, 1);
program->custom_uniforms = program->custom_uniforms =
g_array_new (FALSE, FALSE, sizeof (CoglProgramUniform)); g_array_new (FALSE, FALSE, sizeof (CoglProgramUniform));

View File

@ -54,7 +54,7 @@ _cogl_shader_free (CoglShader *shader)
if (shader->gl_handle) if (shader->gl_handle)
GE (ctx, glDeleteShader (shader->gl_handle)); GE (ctx, glDeleteShader (shader->gl_handle));
g_slice_free (CoglShader, shader); g_free (shader);
} }
CoglHandle CoglHandle
@ -75,7 +75,7 @@ cogl_create_shader (CoglShaderType type)
return NULL; return NULL;
} }
shader = g_slice_new (CoglShader); shader = g_new0 (CoglShader, 1);
shader->gl_handle = 0; shader->gl_handle = 0;
shader->compilation_pipeline = NULL; shader->compilation_pipeline = NULL;
shader->type = type; shader->type = type;

View File

@ -232,13 +232,13 @@ _cogl_gl_flush_attributes_state (CoglFramebuffer *framebuffer,
* sizeof (options) != 0) * sizeof (options) != 0)
* { * {
* cogl_object_unref (overrides->weak_pipeline); * cogl_object_unref (overrides->weak_pipeline);
* g_slice_free (Overrides, overrides); * g_free (overrides);
* overrides = NULL; * overrides = NULL;
* } * }
* } * }
* if (!overrides) * if (!overrides)
* { * {
* overrides = g_slice_new (Overrides); * overrides = g_new0 (Overrides, 1);
* overrides->weak_pipeline = * overrides->weak_pipeline =
* cogl_pipeline_weak_copy (pipeline); * cogl_pipeline_weak_copy (pipeline);
* _cogl_pipeline_apply_overrides (overrides->weak_pipeline, * _cogl_pipeline_apply_overrides (overrides->weak_pipeline,

View File

@ -113,7 +113,7 @@ shader_state_new (int n_layers,
{ {
CoglPipelineShaderState *shader_state; CoglPipelineShaderState *shader_state;
shader_state = g_slice_new0 (CoglPipelineShaderState); shader_state = g_new0 (CoglPipelineShaderState, 1);
shader_state->ref_count = 1; shader_state->ref_count = 1;
shader_state->unit_state = g_new0 (UnitState, n_layers); shader_state->unit_state = g_new0 (UnitState, n_layers);
shader_state->cache_entry = cache_entry; shader_state->cache_entry = cache_entry;
@ -146,7 +146,7 @@ destroy_shader_state (void *user_data,
g_free (shader_state->unit_state); g_free (shader_state->unit_state);
g_slice_free (CoglPipelineShaderState, shader_state); g_free (shader_state);
} }
} }
@ -869,7 +869,7 @@ ensure_layer_generated (CoglPipeline *pipeline,
layer_index, layer_index,
layer_index); layer_index);
g_slice_free (LayerData, layer_data); g_free (layer_data);
} }
static gboolean static gboolean
@ -884,7 +884,7 @@ _cogl_pipeline_fragend_glsl_add_layer (CoglPipeline *pipeline,
return TRUE; return TRUE;
/* Store the layers in reverse order */ /* Store the layers in reverse order */
layer_data = g_slice_new (LayerData); layer_data = g_new0 (LayerData, 1);
layer_data->layer = layer; layer_data->layer = layer;
if (_cogl_list_empty (&shader_state->layers)) if (_cogl_list_empty (&shader_state->layers))
@ -1016,7 +1016,7 @@ _cogl_pipeline_fragend_glsl_end (CoglPipeline *pipeline,
tmp, tmp,
&shader_state->layers, &shader_state->layers,
link) link)
g_slice_free (LayerData, layer_data); g_free (layer_data);
} }
else else
g_string_append (shader_state->source, g_string_append (shader_state->source,

View File

@ -231,7 +231,7 @@ program_state_new (int n_layers,
{ {
CoglPipelineProgramState *program_state; CoglPipelineProgramState *program_state;
program_state = g_slice_new (CoglPipelineProgramState); program_state = g_new0 (CoglPipelineProgramState, 1);
program_state->ref_count = 1; program_state->ref_count = 1;
program_state->program = 0; program_state->program = 0;
program_state->unit_state = g_new (UnitState, n_layers); program_state->unit_state = g_new (UnitState, n_layers);
@ -278,7 +278,7 @@ destroy_program_state (void *user_data,
if (program_state->uniform_locations) if (program_state->uniform_locations)
g_array_free (program_state->uniform_locations, TRUE); g_array_free (program_state->uniform_locations, TRUE);
g_slice_free (CoglPipelineProgramState, program_state); g_free (program_state);
} }
} }

View File

@ -68,7 +68,7 @@ shader_state_new (CoglPipelineCacheEntry *cache_entry)
{ {
CoglPipelineShaderState *shader_state; CoglPipelineShaderState *shader_state;
shader_state = g_slice_new0 (CoglPipelineShaderState); shader_state = g_new0 (CoglPipelineShaderState, 1);
shader_state->ref_count = 1; shader_state->ref_count = 1;
shader_state->cache_entry = cache_entry; shader_state->cache_entry = cache_entry;
@ -98,7 +98,7 @@ destroy_shader_state (void *user_data,
if (shader_state->gl_shader) if (shader_state->gl_shader)
GE( ctx, glDeleteShader (shader_state->gl_shader) ); GE( ctx, glDeleteShader (shader_state->gl_shader) );
g_slice_free (CoglPipelineShaderState, shader_state); g_free (shader_state);
} }
} }

View File

@ -193,7 +193,7 @@ _cogl_winsys_renderer_disconnect (CoglRenderer *renderer)
eglTerminate (egl_renderer->edpy); eglTerminate (egl_renderer->edpy);
g_slice_free (CoglRendererEGL, egl_renderer); g_free (egl_renderer);
} }
static EGLDisplay static EGLDisplay
@ -236,7 +236,7 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer,
CoglRendererEGL *egl_renderer; CoglRendererEGL *egl_renderer;
CoglXlibRenderer *xlib_renderer; CoglXlibRenderer *xlib_renderer;
renderer->winsys = g_slice_new0 (CoglRendererEGL); renderer->winsys = g_new0 (CoglRendererEGL, 1);
egl_renderer = renderer->winsys; egl_renderer = renderer->winsys;
xlib_renderer = _cogl_xlib_renderer_get_data (renderer); xlib_renderer = _cogl_xlib_renderer_get_data (renderer);
@ -303,7 +303,7 @@ _cogl_winsys_egl_display_setup (CoglDisplay *display,
CoglDisplayEGL *egl_display = display->winsys; CoglDisplayEGL *egl_display = display->winsys;
CoglDisplayXlib *xlib_display; CoglDisplayXlib *xlib_display;
xlib_display = g_slice_new0 (CoglDisplayXlib); xlib_display = g_new0 (CoglDisplayXlib, 1);
egl_display->platform = xlib_display; egl_display->platform = xlib_display;
return TRUE; return TRUE;
@ -314,7 +314,7 @@ _cogl_winsys_egl_display_destroy (CoglDisplay *display)
{ {
CoglDisplayEGL *egl_display = display->winsys; CoglDisplayEGL *egl_display = display->winsys;
g_slice_free (CoglDisplayXlib, egl_display->platform); g_free (egl_display->platform);
} }
static gboolean static gboolean

View File

@ -481,7 +481,7 @@ _cogl_winsys_display_destroy (CoglDisplay *display)
if (egl_renderer->platform_vtable->display_destroy) if (egl_renderer->platform_vtable->display_destroy)
egl_renderer->platform_vtable->display_destroy (display); egl_renderer->platform_vtable->display_destroy (display);
g_slice_free (CoglDisplayEGL, display->winsys); g_free (display->winsys);
display->winsys = NULL; display->winsys = NULL;
} }
@ -495,7 +495,7 @@ _cogl_winsys_display_setup (CoglDisplay *display,
g_return_val_if_fail (display->winsys == NULL, FALSE); g_return_val_if_fail (display->winsys == NULL, FALSE);
egl_display = g_slice_new0 (CoglDisplayEGL); egl_display = g_new0 (CoglDisplayEGL, 1);
display->winsys = egl_display; display->winsys = egl_display;
#ifdef COGL_HAS_WAYLAND_EGL_SERVER_SUPPORT #ifdef COGL_HAS_WAYLAND_EGL_SERVER_SUPPORT

View File

@ -307,7 +307,7 @@ _cogl_winsys_renderer_disconnect (CoglRenderer *renderer)
if (glx_renderer->libgl_module) if (glx_renderer->libgl_module)
g_module_close (glx_renderer->libgl_module); g_module_close (glx_renderer->libgl_module);
g_slice_free (CoglGLXRenderer, renderer->winsys); g_free (renderer->winsys);
} }
static gboolean static gboolean
@ -440,7 +440,7 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer,
CoglGLXRenderer *glx_renderer; CoglGLXRenderer *glx_renderer;
CoglXlibRenderer *xlib_renderer; CoglXlibRenderer *xlib_renderer;
renderer->winsys = g_slice_new0 (CoglGLXRenderer); renderer->winsys = g_new0 (CoglGLXRenderer, 1);
glx_renderer = renderer->winsys; glx_renderer = renderer->winsys;
xlib_renderer = _cogl_xlib_renderer_get_data (renderer); xlib_renderer = _cogl_xlib_renderer_get_data (renderer);
@ -879,7 +879,7 @@ _cogl_winsys_display_destroy (CoglDisplay *display)
glx_display->dummy_xwin = None; glx_display->dummy_xwin = None;
} }
g_slice_free (CoglGLXDisplay, display->winsys); g_free (display->winsys);
display->winsys = NULL; display->winsys = NULL;
} }
@ -892,7 +892,7 @@ _cogl_winsys_display_setup (CoglDisplay *display,
g_return_val_if_fail (display->winsys == NULL, FALSE); g_return_val_if_fail (display->winsys == NULL, FALSE);
glx_display = g_slice_new0 (CoglGLXDisplay); glx_display = g_new0 (CoglGLXDisplay, 1);
display->winsys = glx_display; display->winsys = glx_display;
if (!create_context (display, error)) if (!create_context (display, error))