]> Pileus Git - grits/blobdiff - src/grits-opengl.c
Pass objects to grits_viewer_remove instead of refs
[grits] / src / grits-opengl.c
index 5e2590bf164ea2d52bef8bb0837b0556ecb5500d..774c75725f02e628945fed7e389cf533e00adc92 100644 (file)
@@ -483,18 +483,19 @@ static gpointer grits_opengl_add(GritsViewer *_opengl, GritsObject *object,
        return link;
 }
 
-static GritsObject *grits_opengl_remove(GritsViewer *_opengl, gpointer _link)
+static GritsObject *grits_opengl_remove(GritsViewer *_opengl, GritsObject *object)
 {
        g_assert(GRITS_IS_OPENGL(_opengl));
        GritsOpenGL *opengl = GRITS_OPENGL(_opengl);
-       GList *link = _link;
+       GList *link = object->ref;
        g_mutex_lock(opengl->objects_lock);
-       GritsObject *object = link->data;
        /* Just unlink and free it, link->prev is assured */
        link->prev->next = link->next;
        if (link->next)
                link->next->prev = link->prev;
        g_mutex_unlock(opengl->objects_lock);
+       object->ref    = NULL;
+       object->viewer = NULL;
        g_free(link);
        g_object_unref(object);
        return object;