r17198 - gnucash/branches/gda-dev2/src - Fix some memory leaks

Phil Longstaff plongstaff at cvs.gnucash.org
Sat Jun 7 17:54:29 EDT 2008


Author: plongstaff
Date: 2008-06-07 17:54:29 -0400 (Sat, 07 Jun 2008)
New Revision: 17198
Trac: http://svn.gnucash.org/trac/changeset/17198

Modified:
   gnucash/branches/gda-dev2/src/backend/dbi/gnc-backend-dbi.c
   gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.c
   gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-util-sql.c
   gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-util-sql.h
   gnucash/branches/gda-dev2/src/backend/sql/gnc-slots-sql.c
   gnucash/branches/gda-dev2/src/backend/sql/gnc-transaction-sql.c
   gnucash/branches/gda-dev2/src/business/business-core/sql/gnc-tax-table-sql.c
   gnucash/branches/gda-dev2/src/valgrind-gdk.supp
   gnucash/branches/gda-dev2/src/valgrind-glib.supp
   gnucash/branches/gda-dev2/src/valgrind-gnucash.supp
   gnucash/branches/gda-dev2/src/valgrind-libguile.supp
Log:
Fix some memory leaks



Modified: gnucash/branches/gda-dev2/src/backend/dbi/gnc-backend-dbi.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/dbi/gnc-backend-dbi.c	2008-06-07 19:56:56 UTC (rev 17197)
+++ gnucash/branches/gda-dev2/src/backend/dbi/gnc-backend-dbi.c	2008-06-07 21:54:29 UTC (rev 17198)
@@ -356,13 +356,21 @@
 	GncSqlRow base;
 
 	dbi_result result;
+	GList* gvalue_list;
 } GncDbiSqlRow;
 
 static void
 row_dispose( GncSqlRow* row )
 {
 	GncDbiSqlRow* dbi_row = (GncDbiSqlRow*)row;
+	GList* node;
 
+	if( dbi_row->gvalue_list != NULL ) {
+		for( node = dbi_row->gvalue_list; node != NULL; node = node->next ) {
+			g_free( node->data );
+		}
+		g_list_free( dbi_row->gvalue_list );
+	}
 	g_free( dbi_row );
 }
 
@@ -394,6 +402,7 @@
 			return NULL;
 	}
 	
+	dbi_row->gvalue_list = g_list_prepend( dbi_row->gvalue_list, value );
 	return value;
 }
 
@@ -417,6 +426,7 @@
 	dbi_result result;
 	gint num_rows;
 	gint cur_row;
+	GncSqlRow* row;
 } GncDbiSqlResult;
 
 static void
@@ -424,7 +434,12 @@
 {
 	GncDbiSqlResult* dbi_result = (GncDbiSqlResult*)result;
 
-	dbi_result_free( dbi_result->result );
+	if( dbi_result->row != NULL ) {
+		gnc_sql_row_dispose( dbi_result->row );
+	}
+	if( dbi_result->result != NULL ) {
+		dbi_result_free( dbi_result->result );
+	}
 	g_free( result );
 }
 
@@ -441,10 +456,15 @@
 {
 	GncDbiSqlResult* dbi_result = (GncDbiSqlResult*)result;
 
+	if( dbi_result->row != NULL ) {
+		gnc_sql_row_dispose( dbi_result->row );
+		dbi_result->row = NULL;
+	}
 	if( dbi_result->num_rows > 0 ) {
 		dbi_result_first_row( dbi_result->result );
 		dbi_result->cur_row = 1;
-		return create_dbi_row( dbi_result->result );
+		dbi_result->row = create_dbi_row( dbi_result->result );
+		return dbi_result->row;
 	} else {
 		return NULL;
 	}
@@ -455,10 +475,15 @@
 {
 	GncDbiSqlResult* dbi_result = (GncDbiSqlResult*)result;
 
+	if( dbi_result->row != NULL ) {
+		gnc_sql_row_dispose( dbi_result->row );
+		dbi_result->row = NULL;
+	}
 	if( dbi_result->cur_row < dbi_result->num_rows ) {
 		dbi_result_next_row( dbi_result->result );
 		dbi_result->cur_row++;
-		return create_dbi_row( dbi_result->result );
+		dbi_result->row = create_dbi_row( dbi_result->result );
+		return dbi_result->row;
 	} else {
 		return NULL;
 	}
@@ -521,7 +546,7 @@
 }
 
 static GncSqlStatement*
-create_dbi_statement( const gchar* sql )
+create_dbi_statement( gchar* sql )
 {
 	GncDbiSqlStatement* stmt;
 
@@ -530,6 +555,7 @@
 	stmt->base.toSql = stmt_to_sql;
 	stmt->base.addWhereCond = stmt_add_where_cond;
 	stmt->sql = g_string_new( sql );
+	g_free( sql );
 
 	return (GncSqlStatement*)stmt;
 }
@@ -580,7 +606,7 @@
 }
 
 static GncSqlStatement*
-conn_create_statement_from_sql( GncSqlConnection* conn, const gchar* sql )
+conn_create_statement_from_sql( GncSqlConnection* conn, gchar* sql )
 {
 	GncDbiSqlConnection* dbi_conn = (GncDbiSqlConnection*)conn;
 
@@ -613,6 +639,7 @@
 	dbname = dbi_conn_get_option( dbi_conn->conn, "dbname" );
 	tables = dbi_conn_get_table_list( dbi_conn->conn, dbname, table_name );
 	nTables = dbi_result_get_numrows( tables );
+	dbi_result_free( tables );
 
 	if( nTables == 1 ) {
 		return TRUE;

Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.c	2008-06-07 19:56:56 UTC (rev 17197)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.c	2008-06-07 21:54:29 UTC (rev 17198)
@@ -796,7 +796,7 @@
 }
 
 static GncSqlStatement*
-conn_create_statement_from_sql( GncSqlConnection* conn, const gchar* sql )
+conn_create_statement_from_sql( GncSqlConnection* conn, gchar* sql )
 {
 	GncGdaSqlConnection* gda_conn = (GncGdaSqlConnection*)conn;
 

Modified: gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-util-sql.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-util-sql.c	2008-06-07 19:56:56 UTC (rev 17197)
+++ gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-util-sql.c	2008-06-07 21:54:29 UTC (rev 17198)
@@ -71,18 +71,6 @@
 	return 0;
 }
 
-static GValue*
-create_gvalue_from_string( gchar* s )
-{
-	GValue* s_gval;
-
-	s_gval = g_new0( GValue, 1 );
-	g_value_init( s_gval, G_TYPE_STRING );
-	g_value_take_string( s_gval, s );
-
-	return s_gval;
-}
-
 /* ----------------------------------------------------------------- */
 static gpointer
 get_autoinc_id( gpointer pObject, const QofParam* param )
@@ -185,7 +173,6 @@
 add_string_col_info_to_list( const GncSqlBackend* be, const col_cvt_t* table_row,
 								GList** pList )
 {
-    const gchar* dbms_type;
 	GncSqlColumnInfo* info;
 
 	g_return_if_fail( be != NULL );
@@ -275,7 +262,6 @@
 add_int_col_info_to_list( const GncSqlBackend* be, const col_cvt_t* table_row,
 								GList** pList )
 {
-    const gchar* dbms_type;
 	GncSqlColumnInfo* info;
 
 	g_return_if_fail( be != NULL );
@@ -355,7 +341,6 @@
 add_boolean_col_info_to_list( const GncSqlBackend* be, const col_cvt_t* table_row,
 								GList** pList )
 {
-    const gchar* dbms_type;
 	GncSqlColumnInfo* info;
 
 	g_return_if_fail( be != NULL );
@@ -429,7 +414,6 @@
 add_int64_col_info_to_list( const GncSqlBackend* be, const col_cvt_t* table_row,
 								GList** pList )
 {
-    const gchar* dbms_type;
 	GncSqlColumnInfo* info;
 
 	g_return_if_fail( be != NULL );
@@ -504,7 +488,6 @@
 add_double_col_info_to_list( const GncSqlBackend* be, const col_cvt_t* table_row,
 								GList** pList )
 {
-    const gchar* dbms_type;
 	GncSqlColumnInfo* info;
 
 	g_return_if_fail( be != NULL );
@@ -587,7 +570,6 @@
 add_guid_col_info_to_list( const GncSqlBackend* be, const col_cvt_t* table_row,
 								GList** pList )
 {
-    const gchar* dbms_type;
 	GncSqlColumnInfo* info;
 
 	g_return_if_fail( be != NULL );
@@ -739,7 +721,6 @@
 add_timespec_col_info_to_list( const GncSqlBackend* be, const col_cvt_t* table_row,
 								GList** pList )
 {
-    const gchar* dbms_type;
 	GncSqlColumnInfo* info;
 
 	g_return_if_fail( be != NULL );
@@ -843,7 +824,6 @@
 add_date_col_info_to_list( const GncSqlBackend* be, const col_cvt_t* table_row,
 								GList** pList )
 {
-    const gchar* dbms_type;
 	GncSqlColumnInfo* info;
 
 	g_return_if_fail( be != NULL );
@@ -943,7 +923,6 @@
 add_numeric_col_info_to_list( const GncSqlBackend* be, const col_cvt_t* table_row,
 								GList** pList )
 {
-    const gchar* dbms_type;
 	GncSqlColumnInfo* info;
     gchar* buf;
 	const col_cvt_t* subtable_row;
@@ -1199,7 +1178,7 @@
 }
 
 GncSqlStatement*
-gnc_sql_create_statement_from_sql( const GncSqlBackend* be, const gchar* sql )
+gnc_sql_create_statement_from_sql( const GncSqlBackend* be, gchar* sql )
 {
     GError* error = NULL;
 	GncSqlStatement* stmt;
@@ -1216,7 +1195,7 @@
 }
 
 GncSqlResult*
-gnc_sql_execute_select_sql( const GncSqlBackend* be, const gchar* sql )
+gnc_sql_execute_select_sql( const GncSqlBackend* be, gchar* sql )
 {
 	GncSqlStatement* stmt;
     GError* error = NULL;
@@ -1238,7 +1217,7 @@
 }
 
 gint
-gnc_sql_execute_nonselect_sql( const GncSqlBackend* be, const gchar* sql )
+gnc_sql_execute_nonselect_sql( const GncSqlBackend* be, gchar* sql )
 {
 	GncSqlStatement* stmt;
     GError* error = NULL;
@@ -1260,7 +1239,7 @@
 }
 
 int
-gnc_sql_execute_select_get_count( const GncSqlBackend* be, const gchar* sql )
+gnc_sql_execute_select_get_count( const GncSqlBackend* be, gchar* sql )
 {
     int count = 0;
     GncSqlResult* result;
@@ -1392,8 +1371,6 @@
     }
 }
 
-#define INITIAL_SQL_BUF_LEN 500
-
 static GSList*
 create_gslist_from_values( GncSqlBackend* be,
                             QofIdTypeConst obj_name, gpointer pObject,
@@ -1427,9 +1404,11 @@
 			g_free( string );
 			return str;
 		} else {
+			PWARN( "not transformable, gtype = %d\n", G_VALUE_TYPE(value) );
 			return "$$$";
 		}
 	} else {
+		PWARN( "value is NULL or not G_IS_VALUE()\n" );
 		return "";
 	}
 }
@@ -1554,59 +1533,7 @@
 }
 
 /* ================================================================= */
-#if 0
-void
-gnc_gda_add_table_column( GdaServerOperation* op, const gchar* arg, const gchar* dbms_type,
-            gint size, gint flags, guint col_num )
-{
-    gchar* buf;
-	GError* error = NULL;
-	gboolean ok;
 
-	g_return_if_fail( op != NULL );
-	g_return_if_fail( arg != NULL );
-	g_return_if_fail( dbms_type != NULL );
-
-	ok = gda_server_operation_set_value_at( op, arg, &error, "/FIELDS_A/@COLUMN_NAME/%d", col_num );
-	if( !ok ) return;
-	ok = gda_server_operation_set_value_at( op, dbms_type, &error, "/FIELDS_A/@COLUMN_TYPE/%d", col_num );
-	if( !ok ) return;
-    if( size != 0 ) {
-        buf = g_strdup_printf( "%d", size );
-		ok = gda_server_operation_set_value_at( op, buf, &error, "/FIELDS_A/@COLUMN_SIZE/%d", col_num );
-        g_free( buf );
-		if( !ok ) return;
-    }
-	ok = gda_server_operation_set_value_at( op,
-										(flags & COL_PKEY) ? "TRUE" : "FALSE",
-										&error, "/FIELDS_A/@COLUMN_PKEY/%d", col_num );
-	if( error != NULL ) {
-		PWARN( "Error setting PKEY for %s: %s\n", arg, error->message );
-	}
-	if( !ok ) return;
-	ok = gda_server_operation_set_value_at( op,
-										(flags & COL_NNUL) ? "TRUE" : "FALSE",
-										&error, "/FIELDS_A/@COLUMN_NNUL/%d", col_num );
-	if( error != NULL ) {
-		PWARN( "Error setting NNUL for %s: %s\n", arg, error->message );
-	}
-	if( !ok ) return;
-	ok = gda_server_operation_set_value_at( op,
-										(flags & COL_AUTOINC) ? "TRUE" : "FALSE",
-										&error, "/FIELDS_A/@COLUMN_AUTOINC/%d", col_num );
-	if( error != NULL ) {
-		PWARN( "Error setting AUTOINC for %s: %s\n", arg, error->message );
-	}
-	if( !ok ) return;
-	ok = gda_server_operation_set_value_at( op,
-										(flags & COL_UNIQUE) ? "TRUE" : "FALSE",
-										&error, "/FIELDS_A/@COLUMN_UNIQUE/%d", col_num );
-	if( error != NULL ) {
-		PWARN( "Error setting UNIQUE for %s: %s\n", arg, error->message );
-	}
-}
-#endif
-
 static gboolean
 create_table( const GncSqlBackend* be, const gchar* table_name,
 				const col_cvt_t* col_table, GError** pError )
@@ -1705,7 +1632,6 @@
 
 		sql = g_strdup_printf( "SELECT * FROM %s", VERSION_TABLE_NAME );
 		result = gnc_sql_execute_select_sql( be, sql );
-		g_free( sql );
 		if( result != NULL ) {
 			const GValue* name;
 			const GValue* version;

Modified: gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-util-sql.h
===================================================================
--- gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-util-sql.h	2008-06-07 19:56:56 UTC (rev 17197)
+++ gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-util-sql.h	2008-06-07 21:54:29 UTC (rev 17198)
@@ -68,7 +68,7 @@
 	void (*dispose)( GncSqlConnection* );
 	GncSqlResult* (*executeSelectStatement)( GncSqlConnection*, GncSqlStatement* );
 	gint (*executeNonSelectStatement)( GncSqlConnection*, GncSqlStatement* );
-	GncSqlStatement* (*createStatementFromSql)( GncSqlConnection*, const gchar* );
+	GncSqlStatement* (*createStatementFromSql)( GncSqlConnection*, gchar* );
 	gboolean (*doesTableExist)( GncSqlConnection*, const gchar* );
 	void (*beginTransaction)( GncSqlConnection* );
 	void (*rollbackTransaction)( GncSqlConnection* );
@@ -256,10 +256,10 @@
 gint gnc_sql_execute_statement( GncSqlBackend* pBackend, GncSqlStatement* statement );
 GncSqlResult* gnc_sql_execute_select_statement( GncSqlBackend* pBackend, GncSqlStatement* statement );
 GncSqlResult* gnc_sql_execute_sql_statement( GncSqlBackend* pBackend, GncSqlStatement* sqlStmt );
-GncSqlResult* gnc_sql_execute_select_sql( const GncSqlBackend* pBackend, const gchar* sql );
-gint gnc_sql_execute_nonselect_sql( const GncSqlBackend* pBackend, const gchar* sql );
-GncSqlStatement* gnc_sql_create_statement_from_sql( const GncSqlBackend* pBackend, const gchar* sql );
-int gnc_sql_execute_select_get_count( const GncSqlBackend* pBackend, const gchar* sql );
+GncSqlResult* gnc_sql_execute_select_sql( const GncSqlBackend* pBackend, gchar* sql );
+gint gnc_sql_execute_nonselect_sql( const GncSqlBackend* pBackend, gchar* sql );
+GncSqlStatement* gnc_sql_create_statement_from_sql( const GncSqlBackend* pBackend, gchar* sql );
+int gnc_sql_execute_select_get_count( const GncSqlBackend* pBackend, gchar* sql );
 int gnc_sql_execute_statement_get_count( GncSqlBackend* pBackend, GncSqlStatement* statement );
 void gnc_sql_load_object( const GncSqlBackend* be, GncSqlRow* row,
 						QofIdTypeConst obj_name, gpointer pObject,

Modified: gnucash/branches/gda-dev2/src/backend/sql/gnc-slots-sql.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/sql/gnc-slots-sql.c	2008-06-07 19:56:56 UTC (rev 17197)
+++ gnucash/branches/gda-dev2/src/backend/sql/gnc-slots-sql.c	2008-06-07 21:54:29 UTC (rev 17198)
@@ -427,8 +427,6 @@
 
 	buf = g_strdup_printf( "SELECT * FROM %s WHERE obj_guid='%s'", TABLE_NAME, guid_buf );
 	stmt = gnc_sql_create_statement_from_sql( be, buf );
-	g_free( buf );
-
 	result = gnc_sql_execute_select_statement( be, stmt );
 	gnc_sql_statement_dispose( stmt );
     if( result != NULL ) {
@@ -526,7 +524,7 @@
         }
 		gnc_sql_result_dispose( result );
     }
-	g_string_free( sql, TRUE );
+	g_string_free( sql, FALSE );
 }
 
 /* ================================================================= */

Modified: gnucash/branches/gda-dev2/src/backend/sql/gnc-transaction-sql.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/sql/gnc-transaction-sql.c	2008-06-07 19:56:56 UTC (rev 17197)
+++ gnucash/branches/gda-dev2/src/backend/sql/gnc-transaction-sql.c	2008-06-07 21:54:29 UTC (rev 17198)
@@ -281,7 +281,7 @@
 
 		gnc_sql_result_dispose( result );
     }
-	g_string_free( sql, TRUE );
+	g_string_free( sql, FALSE );
 }
 
 static void
@@ -357,6 +357,7 @@
 	sql = g_strdup_printf( "SELECT * FROM %s WHERE guid = %s", TRANSACTION_TABLE, guid_buf );
 	stmt = gnc_sql_create_statement_from_sql( be, sql );
 	query_transactions( be, stmt );
+	gnc_sql_statement_dispose( stmt );
 }
 
 /* ================================================================= */
@@ -370,8 +371,8 @@
 
 	sql = g_strdup_printf( "SELECT * FROM %s", TRANSACTION_TABLE );
 	stmt = gnc_sql_create_statement_from_sql( be, sql );
-	g_free( sql );
 	query_transactions( be, stmt );
+	gnc_sql_statement_dispose( stmt );
 }
 
 /* ================================================================= */
@@ -639,15 +640,16 @@
 run_split_query( GncSqlBackend* be, gpointer pQuery )
 {
     GncSqlStatement* stmt;
-    const gchar* sql;
+    gchar* sql;
 
 	g_return_if_fail( be != NULL );
 	g_return_if_fail( pQuery != NULL );
 
-    sql = (const gchar*)pQuery;
+    sql = (gchar*)pQuery;
 
 	stmt = gnc_sql_create_statement_from_sql( be, sql );
     query_transactions( be, stmt );
+	gnc_sql_statement_dispose( stmt );
 }
 
 static void

Modified: gnucash/branches/gda-dev2/src/business/business-core/sql/gnc-tax-table-sql.c
===================================================================
--- gnucash/branches/gda-dev2/src/business/business-core/sql/gnc-tax-table-sql.c	2008-06-07 19:56:56 UTC (rev 17197)
+++ gnucash/branches/gda-dev2/src/business/business-core/sql/gnc-tax-table-sql.c	2008-06-07 21:54:29 UTC (rev 17198)
@@ -234,6 +234,7 @@
     /* First time, create the query */
     stmt = gnc_sql_create_select_statement( be, TT_TABLE_NAME, tt_col_table );
     result = gnc_sql_execute_sql_statement( be, stmt );
+	gnc_sql_statement_dispose( stmt );
     if( result != NULL ) {
         GncSqlRow* row;
 

Modified: gnucash/branches/gda-dev2/src/valgrind-gdk.supp
===================================================================
--- gnucash/branches/gda-dev2/src/valgrind-gdk.supp	2008-06-07 19:56:56 UTC (rev 17197)
+++ gnucash/branches/gda-dev2/src/valgrind-gdk.supp	2008-06-07 21:54:29 UTC (rev 17198)
@@ -1,4 +1,31 @@
 {
+	qtcurve Cond
+	Memcheck:Cond
+	obj:/usr/lib/kde3/plugins/styles/qtcurve.so
+	fun:drawArrow
+	obj:/usr/lib/gtk-2.0/*/engines/libqtengine.so
+	fun:gtk_paint_arrow
+}
+{
+	qtcurve Cond #2
+	Memcheck:Cond
+	obj:/usr/lib/libkdefx.so*
+	obj:/usr/lib/kde3/plugins/styles/qtcurve.so
+	fun:drawArrow
+	obj:/usr/lib/gtk-2.0/*/engines/libqtengine.so
+	fun:gtk_paint_arrow
+}
+{
+	qtcurve Cond #3
+	Memcheck:Cond
+	obj:/usr/lib/libqt-mt.so*
+	obj:/usr/lib/libkdefx.so*
+	obj:/usr/lib/kde3/plugins/styles/qtcurve.so
+	fun:drawArrow
+	obj:/usr/lib/gtk-2.0/*/engines/libqtengine.so
+	fun:gtk_paint_arrow
+}
+{
    <insert some suppression name here>
    Memcheck:Leak
    fun:malloc

Modified: gnucash/branches/gda-dev2/src/valgrind-glib.supp
===================================================================
--- gnucash/branches/gda-dev2/src/valgrind-glib.supp	2008-06-07 19:56:56 UTC (rev 17197)
+++ gnucash/branches/gda-dev2/src/valgrind-glib.supp	2008-06-07 21:54:29 UTC (rev 17198)
@@ -41,7 +41,7 @@
 	Memcheck:Leak
 	fun:memalign
 	fun:posix_memalign
-	obj:/opt/gnome/lib/libglib-2.0.so.0.1200.4
+	obj:/usr/lib/libglib-2.0.so.0.1600.3
 	fun:g_slice_alloc
 	fun:g_array_sized_new
 	fun:g_array_new

Modified: gnucash/branches/gda-dev2/src/valgrind-gnucash.supp
===================================================================
--- gnucash/branches/gda-dev2/src/valgrind-gnucash.supp	2008-06-07 19:56:56 UTC (rev 17197)
+++ gnucash/branches/gda-dev2/src/valgrind-gnucash.supp	2008-06-07 21:54:29 UTC (rev 17198)
@@ -37,12 +37,69 @@
 #     if Free: name of free-ing fn)
 
 {
-	libld-2.7(Value4)
-	Memcheck:Value4
+	libld-2.7(Addr4)
+	Memcheck:Addr4
 	obj:/lib/ld-2.7.so
 	obj:/lib/ld-2.7.so
 }
 {
+	libld-2.7(Addr4 #2)
+	Memcheck:Addr4
+	obj:/lib/ld-2.7.so
+	obj:/lib/ld-2.7.so
+	obj:/lib/tls/i686/cmov/libc-2.7.so
+	obj:/lib/ld-2.7.so
+	obj:/lib/tls/i686/cmov/libc-2.7.so
+}
+{
+	libld-2.7(Addr4 #3)
+	Memcheck:Addr4
+	obj:/lib/ld-2.7.so
+	obj:/lib/tls/i686/cmov/libc-2.7.so
+	fun:_dl_sym
+}
+{
+	libld-2.7(Addr4 #4)
+	Memcheck:Addr4
+	obj:/lib/ld-2.7.so
+	obj:/lib/tls/i686/cmov/libdl-2.7.so
+	obj:/lib/ld-2.7.so
+	obj:/lib/tls/i686/cmov/libdl-2.7.so
+}
+{
+	libld-2.7(Cond)
+	Memcheck:Cond
+	obj:/lib/ld-2.7.so
+	obj:/lib/tls/i686/cmov/libc-2.7.so
+	fun:_dl_sym
+}
+{
+	libld-2.7(Cond #2)
+	Memcheck:Cond
+	obj:/lib/ld-2.7.so
+	obj:/lib/ld-2.7.so
+	obj:/lib/tls/i686/cmov/libc-2.7.so
+	obj:/lib/ld-2.7.so
+	obj:/lib/tls/i686/cmov/libc-2.7.so
+}
+{
+	libld-2.7(Cond #3)
+	Memcheck:Cond
+	obj:/lib/ld-2.7.so
+	obj:/lib/ld-2.7.so
+	obj:/lib/tls/i686/cmov/libdl-2.7.so
+	obj:/lib/ld-2.7.so
+	obj:/lib/tls/i686/cmov/libdl-2.7.so
+}
+{
+	libld-2.7(Cond #4)
+	Memcheck:Cond
+	obj:/lib/ld-2.7.so
+	obj:/lib/tls/i686/cmov/libdl-2.7.so
+	obj:/lib/ld-2.7.so
+	obj:/lib/tls/i686/cmov/libdl-2.7.so
+}
+{
    libglib-1.2.so.0(Value4)
    Memcheck:Value4
    fun:g_hash_table_lookup

Modified: gnucash/branches/gda-dev2/src/valgrind-libguile.supp
===================================================================
--- gnucash/branches/gda-dev2/src/valgrind-libguile.supp	2008-06-07 19:56:56 UTC (rev 17197)
+++ gnucash/branches/gda-dev2/src/valgrind-libguile.supp	2008-06-07 21:54:29 UTC (rev 17198)
@@ -50,9 +50,9 @@
    libguile.so(Leak)
    Memcheck:Leak
    fun:malloc
-   obj:/usr/lib/libguile.so.12.3.0
-   obj:/usr/lib/libguile.so.12.3.0
-   obj:/usr/lib/libguile.so.12.3.0
+   obj:*libguile.so*
+   obj:*libguile.so*
+   obj:*libguile.so*
 }
 {
    scm_make_port_type Leak
@@ -60,13 +60,13 @@
    fun:realloc
    fun:scm_make_port_type
    fun:scm_init_vports
-   obj:/usr/lib/libguile.so.12.3.0
+   obj:*libguile.so*
 }
 {
    scm_gc_for_newcell Leak
    Memcheck:Leak
-   fun:realloc
-   obj:/usr/lib/libguile.so.12.3.0
+   fun:malloc
+   obj:*libguile.so*
    fun:scm_gc_for_newcell
    fun:scm_acons
 }



More information about the gnucash-changes mailing list