Author: abrander
Date: 2009-07-07 02:18:42 +0200 (Tue, 07 Jul 2009)
New Revision: 2567

Modified:
   trunk/plugins/basic-render/basic-render.c
Log:
Try to keep track of RSSettings in RSBasicRender.

Modified: trunk/plugins/basic-render/basic-render.c
===================================================================
--- trunk/plugins/basic-render/basic-render.c   2009-07-06 16:34:05 UTC (rev 
2566)
+++ trunk/plugins/basic-render/basic-render.c   2009-07-07 00:18:42 UTC (rev 
2567)
@@ -113,6 +113,7 @@
 static void set_property (GObject *object, guint property_id, const GValue 
*value, GParamSpec *pspec);
 static void previous_changed(RSFilter *filter, RSFilter *parent, 
RSFilterChangedMask mask);
 static void settings_changed(RSSettings *settings, RSSettingsMask mask, 
RSBasicRender *basic_render);
+static void settings_weak_notify(gpointer data, GObject *where_the_object_was);
 static void render_tables(RSBasicRender *basic_render);
 static void render_matrix(RSBasicRender *basic_render);
 static gpointer thread_func_float16(gpointer _thread_info);
@@ -270,7 +271,7 @@
                         * sends a "settings-changed"-signal. Should be 
replaced by some
                         * dirty_settings mechanics. */
                        settings_changed(basic_render->settings, MASK_ALL, 
basic_render);
-//                     g_object_unref(settings);
+                       g_object_weak_ref(G_OBJECT(basic_render->settings), 
settings_weak_notify, basic_render);
                        rs_filter_changed(RS_FILTER(object), 
RS_FILTER_CHANGED_PIXELDATA);
                        break;
                case PROP_ICC_PROFILE:
@@ -407,6 +408,14 @@
 }
 
 static void
+settings_weak_notify(gpointer data, GObject *where_the_object_was)
+{
+       RSBasicRender *basic_render = RS_BASIC_RENDER(data);
+
+       basic_render->settings = NULL;
+}
+
+static void
 render_tables(RSBasicRender *basic_render)
 {
        static const gdouble rec65535 = (1.0f / 65536.0f);


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to