[nautilus-actions] Remove fn_free function pointer from NADataDef



commit 7a9b7649cca8d51a3ce8b8dce0baed6ffd0cdf85
Author: Pierre Wieser <pwieser trychlos org>
Date:   Sat Feb 27 23:38:56 2010 +0100

    Remove fn_free function pointer from NADataDef

 ChangeLog                            |    8 ++++++++
 src/api/na-data-def.h                |   10 ----------
 src/core/na-data-boxed.c             |   21 +++++++--------------
 src/core/na-object-action-factory.c  |   16 ----------------
 src/core/na-object-id-factory.c      |    2 --
 src/core/na-object-item-factory.c    |   30 +++---------------------------
 src/core/na-object-profile-factory.c |   11 -----------
 7 files changed, 18 insertions(+), 80 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 25eb8bd..a4d7519 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2009-02-27 Pierre Wieser <pwieser trychlos org>
 
+	* src/api/na-data-def.h: Remove fn_free() function pointer.
+
+	* src/core/na-data-boxed.c:
+	* src/core/na-object-action-factory.c:
+	* src/core/na-object-id-factory.c:
+	* src/core/na-object-profile-factory.c
+	* src/core/na-object-item-factory.c: Updated accordingly.
+
 	* src/core/na-iduplicable.c (get_duplicable_str):
 	Initialize modification status to TRUE if origin is NULL.
 
diff --git a/src/api/na-data-def.h b/src/api/na-data-def.h
index 0dc843d..5723f91 100644
--- a/src/api/na-data-def.h
+++ b/src/api/na-data-def.h
@@ -86,16 +86,6 @@ typedef struct {
 
 	gchar    *gconf_entry;				/* same entry is also used for GConf-based XML docs */
 
-	void   ( *free )( void * );			/* a pointer to a function to free the element data
-										 * a default function is provided for main elementary
-										 * data types:
-										 * - STRING and LOCALE_STRING: g_free
-										 * - STRING_LIST: na_core_utils_slist_free
-										 * - BOOLEAN, UINT, POINTER: none
-										 *
-										 * This may be used mainly when POINTER type is used
-										 * to cast e.g. a GList of items */
-
 	gboolean  obsoleted;				/* whether this data has been obsoleted ?
 										 * if TRUE, then no property will be defined for it
 										 * and the data will not be written when serializing */
diff --git a/src/core/na-data-boxed.c b/src/core/na-data-boxed.c
index bbc789e..005defe 100644
--- a/src/core/na-data-boxed.c
+++ b/src/core/na-data-boxed.c
@@ -322,7 +322,10 @@ instance_dispose( GObject *object )
 	static const gchar *thisfn = "na_data_boxed_instance_dispose";
 	NADataBoxed *self;
 
-	g_debug( "%s: object=%p (%s)", thisfn, ( void * ) object, G_OBJECT_TYPE_NAME( object ));
+	g_debug( "%s: object=%p (%s), name=%s",
+			thisfn,
+			( void * ) object, G_OBJECT_TYPE_NAME( object ),
+			NA_DATA_BOXED( object )->private->def->name );
 
 	g_return_if_fail( NA_IS_DATA_BOXED( object ));
 
@@ -808,11 +811,7 @@ string_spec( const NADataDef *def )
 static void
 string_free( const NADataBoxed *boxed )
 {
-	if( boxed->private->def->free ){
-		( *boxed->private->def->free )( boxed->private->u.string );
-	} else {
-		g_free( boxed->private->u.string );
-	}
+	g_free( boxed->private->u.string );
 	boxed->private->u.string = NULL;
 }
 
@@ -946,11 +945,7 @@ slist_spec( const NADataDef *def )
 static void
 slist_free( const NADataBoxed *boxed )
 {
-	if( boxed->private->def->free ){
-		( *boxed->private->def->free )( boxed->private->u.slist );
-	} else {
-		na_core_utils_slist_free( boxed->private->u.slist );
-	}
+	na_core_utils_slist_free( boxed->private->u.slist );
 	boxed->private->u.slist = NULL;
 }
 
@@ -1145,9 +1140,6 @@ pointer_spec( const NADataDef *def )
 static void
 pointer_free( const NADataBoxed *boxed )
 {
-	if( boxed->private->def->free ){
-		( *boxed->private->def->free )( boxed->private->u.pointer );
-	}
 	boxed->private->u.pointer = NULL;
 }
 
@@ -1206,6 +1198,7 @@ pointer_set_from_boxed( NADataBoxed *boxed, const NADataBoxed *source )
 static void
 pointer_set_from_string( NADataBoxed *boxed, const gchar *pointer )
 {
+	g_warning( "na_data_boxed_pointer_set_from_string: unrelevant function call" );
 }
 
 static void
diff --git a/src/core/na-object-action-factory.c b/src/core/na-object-action-factory.c
index fb61349..a2e1e13 100644
--- a/src/core/na-object-action-factory.c
+++ b/src/core/na-object-action-factory.c
@@ -52,7 +52,6 @@ static NADataDef data_def_action [] = {
 				FALSE,
 				FALSE,
 				"version",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_TARGET_SELECTION,
@@ -66,7 +65,6 @@ static NADataDef data_def_action [] = {
 				FALSE,
 				FALSE,
 				"target-selection",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_TARGET_BACKGROUND,
@@ -80,7 +78,6 @@ static NADataDef data_def_action [] = {
 				FALSE,
 				FALSE,
 				"target-background",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_TARGET_TOOLBAR,
@@ -96,7 +93,6 @@ static NADataDef data_def_action [] = {
 				FALSE,
 				FALSE,
 				"target-toolbar",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_TOOLBAR_LABEL,
@@ -111,7 +107,6 @@ static NADataDef data_def_action [] = {
 				FALSE,
 				TRUE,
 				"toolbar-label",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_TOOLBAR_SAME_LABEL,
@@ -125,7 +120,6 @@ static NADataDef data_def_action [] = {
 				FALSE,
 				FALSE,
 				"toolbar-same-label",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_LAST_ALLOCATED,
@@ -140,7 +134,6 @@ static NADataDef data_def_action [] = {
 				FALSE,
 				FALSE,
 				NULL,
-				NULL,
 				FALSE },
 
 	{ NULL },
@@ -159,7 +152,6 @@ static NADataDef data_def_obsoleted_action [] = {
 				TRUE,
 				FALSE,
 				"path",
-				NULL,
 				TRUE },
 
 	{ NAFO_DATA_PARAMETERS,
@@ -173,7 +165,6 @@ static NADataDef data_def_obsoleted_action [] = {
 				FALSE,
 				FALSE,
 				"parameters",
-				NULL,
 				TRUE },
 
 	{ NAFO_DATA_BASENAMES,
@@ -188,7 +179,6 @@ static NADataDef data_def_obsoleted_action [] = {
 				FALSE,
 				FALSE,
 				"basenames",
-				NULL,
 				TRUE },
 
 	{ NAFO_DATA_MATCHCASE,
@@ -203,7 +193,6 @@ static NADataDef data_def_obsoleted_action [] = {
 				FALSE,
 				FALSE,
 				"matchcase",
-				NULL,
 				TRUE },
 
 	{ NAFO_DATA_MIMETYPES,
@@ -218,7 +207,6 @@ static NADataDef data_def_obsoleted_action [] = {
 				FALSE,
 				FALSE,
 				"mimetypes",
-				NULL,
 				TRUE },
 
 	{ NAFO_DATA_ISFILE,
@@ -233,7 +221,6 @@ static NADataDef data_def_obsoleted_action [] = {
 				FALSE,
 				FALSE,
 				"isfile",
-				NULL,
 				TRUE },
 
 	{ NAFO_DATA_ISDIR,
@@ -248,7 +235,6 @@ static NADataDef data_def_obsoleted_action [] = {
 				FALSE,
 				FALSE,
 				"isdir",
-				NULL,
 				TRUE },
 
 	{ NAFO_DATA_MULTIPLE,
@@ -263,7 +249,6 @@ static NADataDef data_def_obsoleted_action [] = {
 				FALSE,
 				FALSE,
 				"accept-multiple-files",
-				NULL,
 				TRUE },
 
 	{ NAFO_DATA_SCHEMES,
@@ -278,7 +263,6 @@ static NADataDef data_def_obsoleted_action [] = {
 				FALSE,
 				FALSE,
 				"schemes",
-				NULL,
 				TRUE },
 
 	{ NULL },
diff --git a/src/core/na-object-id-factory.c b/src/core/na-object-id-factory.c
index 1a301a5..44adaf0 100644
--- a/src/core/na-object-id-factory.c
+++ b/src/core/na-object-id-factory.c
@@ -51,7 +51,6 @@ NADataDef data_def_id [] = {
 				TRUE,
 				FALSE,
 				NULL,
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_PARENT,
@@ -65,7 +64,6 @@ NADataDef data_def_id [] = {
 				FALSE,
 				FALSE,
 				NULL,
-				NULL,
 				FALSE },
 
 	{ NULL },
diff --git a/src/core/na-object-item-factory.c b/src/core/na-object-item-factory.c
index c834324..e6ce891 100644
--- a/src/core/na-object-item-factory.c
+++ b/src/core/na-object-item-factory.c
@@ -36,8 +36,6 @@
 #include <api/na-data-def.h>
 #include <api/na-data-types.h>
 
-static void free_items_list( void * list );
-
 NADataDef data_def_item [] = {
 
 	{ NAFO_DATA_LABEL,
@@ -52,7 +50,6 @@ NADataDef data_def_item [] = {
 				FALSE,
 				TRUE,
 				"label",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_TOOLTIP,
@@ -66,7 +63,6 @@ NADataDef data_def_item [] = {
 				FALSE,
 				TRUE,
 				"tooltip",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_ICON,
@@ -81,7 +77,6 @@ NADataDef data_def_item [] = {
 				FALSE,
 				TRUE,
 				"icon",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_DESCRIPTION,
@@ -96,21 +91,19 @@ NADataDef data_def_item [] = {
 				FALSE,
 				TRUE,
 				"description",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_SUBITEMS,
-				FALSE,
+				FALSE,			/* not serializable */
 				"Subitems",
 				"List of subitems objects",
 				NAFD_TYPE_POINTER,
 				NULL,
-				FALSE,
-				FALSE,
+				FALSE,			/* not copyable */
+				TRUE,			/*     comparable */
 				FALSE,
 				FALSE,
 				NULL,
-				free_items_list,
 				FALSE },
 
 	{ NAFO_DATA_SUBITEMS_SLIST,
@@ -125,7 +118,6 @@ NADataDef data_def_item [] = {
 				FALSE,
 				FALSE,
 				"items",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_ENABLED,
@@ -141,7 +133,6 @@ NADataDef data_def_item [] = {
 				FALSE,
 				FALSE,
 				"enabled",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_READONLY,
@@ -160,7 +151,6 @@ NADataDef data_def_item [] = {
 				FALSE,
 				FALSE,
 				NULL,
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_PROVIDER,
@@ -174,7 +164,6 @@ NADataDef data_def_item [] = {
 				FALSE,
 				FALSE,
 				NULL,
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_PROVIDER_DATA,
@@ -188,20 +177,7 @@ NADataDef data_def_item [] = {
 				FALSE,
 				FALSE,
 				NULL,
-				NULL,
 				FALSE },
 
 	{ NULL },
 };
-
-static void
-free_items_list( void *list )
-{
-	static const gchar *thisfn = "na_object_item_factory_free_items_list";
-
-	g_debug( "%s: list=%p (count=%d)", thisfn, list, g_list_length(( GList * ) list ));
-
-	if( list ){
-		/*g_list_free(( GList * ) list );*/
-	}
-}
diff --git a/src/core/na-object-profile-factory.c b/src/core/na-object-profile-factory.c
index b033ec8..fc845f1 100644
--- a/src/core/na-object-profile-factory.c
+++ b/src/core/na-object-profile-factory.c
@@ -52,7 +52,6 @@ static NADataDef data_def_profile [] = {
 				FALSE,
 				TRUE,
 				"desc-name",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_PATH,
@@ -66,7 +65,6 @@ static NADataDef data_def_profile [] = {
 				TRUE,
 				FALSE,
 				"path",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_PARAMETERS,
@@ -80,7 +78,6 @@ static NADataDef data_def_profile [] = {
 				FALSE,
 				FALSE,
 				"parameters",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_BASENAMES,
@@ -95,7 +92,6 @@ static NADataDef data_def_profile [] = {
 				FALSE,
 				FALSE,
 				"basenames",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_MATCHCASE,
@@ -110,7 +106,6 @@ static NADataDef data_def_profile [] = {
 				FALSE,
 				FALSE,
 				"matchcase",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_MIMETYPES,
@@ -125,7 +120,6 @@ static NADataDef data_def_profile [] = {
 				FALSE,
 				FALSE,
 				"mimetypes",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_ISFILE,
@@ -140,7 +134,6 @@ static NADataDef data_def_profile [] = {
 				FALSE,
 				FALSE,
 				"isfile",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_ISDIR,
@@ -155,7 +148,6 @@ static NADataDef data_def_profile [] = {
 				FALSE,
 				FALSE,
 				"isdir",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_MULTIPLE,
@@ -170,7 +162,6 @@ static NADataDef data_def_profile [] = {
 				FALSE,
 				FALSE,
 				"accept-multiple-files",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_SCHEMES,
@@ -185,7 +176,6 @@ static NADataDef data_def_profile [] = {
 				FALSE,
 				FALSE,
 				"schemes",
-				NULL,
 				FALSE },
 
 	{ NAFO_DATA_FOLDERS,
@@ -200,7 +190,6 @@ static NADataDef data_def_profile [] = {
 				FALSE,
 				FALSE,
 				"folders",
-				NULL,
 				FALSE },
 
 	{ NULL },



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]