Index: xfce-rc-simple.c =================================================================== --- xfce-rc-simple.c (revision 24939) +++ xfce-rc-simple.c (working copy) @@ -615,6 +615,7 @@ _xfce_rc_simple_new (XfceRcSimple *share simple->__parent__.delete_entry = _xfce_rc_simple_delete_entry; simple->__parent__.has_entry = _xfce_rc_simple_has_entry; simple->__parent__.read_entry = _xfce_rc_simple_read_entry; + simple->__parent__.free_rc = _xfce_rc_simple_free_rc; if (!readonly) { @@ -1081,5 +1082,15 @@ _xfce_rc_simple_write_entry (XfceRc +void +_xfce_rc_simple_free_rc (XfceRc *rc) +{ + XfceRcSimple *simple = XFCE_RC_SIMPLE (rc); + + _xfce_slice_free (XfceRcSimple, simple); +} + + + #define __XFCE_RC_SIMPLE_C__ #include Index: xfce-rc.c =================================================================== --- xfce-rc.c (revision 24939) +++ xfce-rc.c (working copy) @@ -168,7 +168,7 @@ xfce_rc_close (XfceRc *rc) if (rc->locale != NULL) g_free (rc->locale); - _xfce_slice_free (XfceRc, rc); + (*rc->free_rc) (rc); } Index: xfce-rc-private.h =================================================================== --- xfce-rc-private.h (revision 24939) +++ xfce-rc-private.h (working copy) @@ -46,7 +46,7 @@ struct _XfceRc gboolean translated); /* write_entry == NULL means readonly */ void (*write_entry) (XfceRc *rc, const gchar *key, const gchar *value); - void (*reserved1) (void); + void (*free_rc) (XfceRc *rc); void (*reserved2) (void); void (*reserved3) (void); void (*reserved4) (void); @@ -95,6 +95,7 @@ const gchar* _xfce_rc_simple_read_entry void _xfce_rc_simple_write_entry (XfceRc *rc, const gchar *key, const gchar *value) G_GNUC_INTERNAL; +void _xfce_rc_simple_free_rc (XfceRc *rc); XfceRcConfig* _xfce_rc_config_new (XfceResourceType type, const gchar *resource, @@ -126,6 +127,6 @@ const gchar* _xfce_rc_config_read_entry void _xfce_rc_config_write_entry (XfceRc *rc, const gchar *key, const gchar *value) G_GNUC_INTERNAL; - +void _xfce_rc_config_free_rc (XfceRc *rc); #endif /* !__LIBXFCE4UTIL_XFCE_RC_PRIVATE_H__ */ Index: xfce-rc-config.c =================================================================== --- xfce-rc-config.c (revision 24939) +++ xfce-rc-config.c (working copy) @@ -170,6 +170,7 @@ _xfce_rc_config_new (XfceResourceType ty config->__parent__.delete_entry = _xfce_rc_config_delete_entry; config->__parent__.has_entry = _xfce_rc_config_has_entry; config->__parent__.read_entry = _xfce_rc_config_read_entry; + config->__parent__.free_rc = _xfce_rc_config_free_rc; if (!readonly) { @@ -423,5 +424,15 @@ _xfce_rc_config_write_entry (XfceRc +void +_xfce_rc_config_free_rc (XfceRc *rc) +{ + XfceRcConfig *config = XFCE_RC_CONFIG (rc); + + _xfce_slice_free (XfceRcConfig, config); +} + + + #define __XFCE_RC_CONFIG_C__ #include