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