[Gnucash-changes] Fix a small memory leak.

David Hampton hampton at cvs.gnucash.org
Thu Jun 2 11:13:12 EDT 2005


Log Message:
-----------
Fix a small memory leak. Also tweak printfs for a 64 bit system.

Tags:
----
gnucash-gnome2-dev

Modified Files:
--------------
    gnucash:
        ChangeLog
    gnucash/src/business/business-gnome:
        dialog-customer.c
        dialog-employee.c
        dialog-invoice.c
        dialog-job.c
        dialog-order.c
        dialog-vendor.c

Revision Data
-------------
Index: ChangeLog
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/ChangeLog,v
retrieving revision 1.1487.2.210
retrieving revision 1.1487.2.211
diff -LChangeLog -LChangeLog -u -r1.1487.2.210 -r1.1487.2.211
--- ChangeLog
+++ ChangeLog
@@ -1,3 +1,20 @@
+2005-06-02  David Hampton  <hampton at employees.org>
+
+	* src/business/business-gnome/dialog-customer.c: Eliminate a
+	double free of memory.
+
+	* src/business/business-gnome/dialog-customer.c:
+	* src/business/business-gnome/dialog-employee.c:
+	* src/business/business-gnome/dialog-invoice.c:
+	* src/business/business-gnome/dialog-job.c:
+	* src/business/business-gnome/dialog-order.c:
+	* src/business/business-gnome/dialog-vendor.c: Fix a small memory
+	leak. Also tweak printfs for a 64 bit system.
+
+	* src/gnome-search/gnc-general-search.c: Remove the custom forall
+	method.  This allows all the child widgets to be properly
+	destroyed.
+
 2005-05-22  David Hampton  <hampton at employees.org>
 
 	* src/gnome-utils/dialog-utils.c (gnc_save_window_size): Protect
Index: dialog-order.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/business/business-gnome/dialog-order.c,v
retrieving revision 1.53.4.7
retrieving revision 1.53.4.8
diff -Lsrc/business/business-gnome/dialog-order.c -Lsrc/business/business-gnome/dialog-order.c -u -r1.53.4.7 -r1.53.4.8
--- src/business/business-gnome/dialog-order.c
+++ src/business/business-gnome/dialog-order.c
@@ -681,6 +681,7 @@
   OrderWindow *ow;
   GladeXML *xml;
   GncOrder *order;
+  gchar *string;
 
   ow = g_new0 (OrderWindow, 1);
   ow->book = bookp;
@@ -712,8 +713,10 @@
                                      ow);
   /* Setup initial values */
   ow->order_guid = *gncOrderGetGUID (order);
-  gtk_entry_set_text (GTK_ENTRY (ow->id_entry),
-		      g_strdup_printf ("%.6lld", gncOrderNextID(bookp)));
+  string = g_strdup_printf ("%.6" G_GINT64_FORMAT,
+			    gncOrderNextID(bookp));
+  gtk_entry_set_text (GTK_ENTRY (ow->id_entry), string);
+  g_free(string);
       
   ow->component_id =
     gnc_register_gui_component (DIALOG_NEW_ORDER_CM_CLASS,
Index: dialog-invoice.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/business/business-gnome/dialog-invoice.c,v
retrieving revision 1.81.4.16
retrieving revision 1.81.4.17
diff -Lsrc/business/business-gnome/dialog-invoice.c -Lsrc/business/business-gnome/dialog-invoice.c -u -r1.81.4.16 -r1.81.4.17
--- src/business/business-gnome/dialog-invoice.c
+++ src/business/business-gnome/dialog-invoice.c
@@ -355,6 +355,7 @@
 gnc_invoice_window_verify_ok (InvoiceWindow *iw)
 {
   const char *res;
+  gchar *string;
 
   /* save the current entry in the ledger? */
   if (!gnc_entry_ledger_check_close (iw->dialog, iw->ledger))
@@ -377,8 +378,10 @@
   /* Check the ID; set one if necessary */
   res = gtk_entry_get_text (GTK_ENTRY (iw->id_entry));
   if (safe_strcmp (res, "") == 0) {
-  gtk_entry_set_text (GTK_ENTRY (iw->id_entry),
-		      g_strdup_printf ("%.6lld", gncInvoiceNextID(iw->book)));
+    string = g_strdup_printf ("%.6" G_GINT64_FORMAT,
+			      gncInvoiceNextID(iw->book));
+    gtk_entry_set_text (GTK_ENTRY (iw->id_entry), string);
+    g_free(string);
   }
       
   return TRUE;
@@ -1622,6 +1625,7 @@
   do {
     GtkTextBuffer* text_buffer;
     const char *string;
+    gchar * tmp_string;
     Timespec ts, ts_zero = {0,0};
     Account *acct;
 
@@ -1671,8 +1675,9 @@
     ts = gncInvoiceGetDatePosted (invoice);
     gnc_date_edit_set_time_ts (GNC_DATE_EDIT (iw->posted_date), ts);
 
-    string = xaccAccountGetFullName (acct, gnc_get_account_separator ());
-    gtk_entry_set_text (GTK_ENTRY (acct_entry), string);
+    tmp_string = xaccAccountGetFullName (acct, gnc_get_account_separator ());
+    gtk_entry_set_text (GTK_ENTRY (acct_entry), tmp_string);
+    g_free(tmp_string);
 
   } while (FALSE);
 
Index: dialog-job.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/business/business-gnome/dialog-job.c,v
retrieving revision 1.27.4.9
retrieving revision 1.27.4.10
diff -Lsrc/business/business-gnome/dialog-job.c -Lsrc/business/business-gnome/dialog-job.c -u -r1.27.4.9 -r1.27.4.10
--- src/business/business-gnome/dialog-job.c
+++ src/business/business-gnome/dialog-job.c
@@ -121,6 +121,7 @@
 gnc_job_verify_ok (JobWindow *jw)
 {
   const char *res;
+  gchar *string;
 
   /* Check for valid name */
   res = gtk_entry_get_text (GTK_ENTRY (jw->name_entry));
@@ -142,8 +143,10 @@
   /* Set a valid id if one was not created */
   res = gtk_entry_get_text (GTK_ENTRY (jw->id_entry));
   if (safe_strcmp (res, "") == 0) {
-    gtk_entry_set_text (GTK_ENTRY (jw->id_entry),
-			g_strdup_printf ("%.6lld", gncJobNextID(jw->book)));
+    string = g_strdup_printf ("%.6" G_GINT64_FORMAT,
+			      gncJobNextID(jw->book));
+    gtk_entry_set_text (GTK_ENTRY (jw->id_entry), string);
+    g_free(string);
   }
 
   /* Now save it off */
Index: dialog-employee.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/business/business-gnome/dialog-employee.c,v
retrieving revision 1.23.4.9
retrieving revision 1.23.4.10
diff -Lsrc/business/business-gnome/dialog-employee.c -Lsrc/business/business-gnome/dialog-employee.c -u -r1.23.4.9 -r1.23.4.10
--- src/business/business-gnome/dialog-employee.c
+++ src/business/business-gnome/dialog-employee.c
@@ -209,6 +209,7 @@
 gnc_employee_window_ok_cb (GtkWidget *widget, gpointer data)
 {
   EmployeeWindow *ew = data;
+  gchar *string;
 
   /* Check for valid username */
   if (check_entry_nonempty (ew->dialog, ew->username_entry,
@@ -232,9 +233,10 @@
 
   /* Set the employee id if one has not been chosen */
   if (safe_strcmp (gtk_entry_get_text (GTK_ENTRY (ew->id_entry)), "") == 0) {
-    gtk_entry_set_text (GTK_ENTRY (ew->id_entry),
-			g_strdup_printf ("%.6lld",
-					 gncEmployeeNextID (ew->book)));
+    string = g_strdup_printf ("%.6" G_GINT64_FORMAT,
+			      gncEmployeeNextID (ew->book));
+    gtk_entry_set_text (GTK_ENTRY (ew->id_entry), string);
+    g_free(string);
   }
 
   /* Now save it off */
Index: dialog-customer.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/business/business-gnome/dialog-customer.c,v
retrieving revision 1.34.4.10
retrieving revision 1.34.4.11
diff -Lsrc/business/business-gnome/dialog-customer.c -Lsrc/business/business-gnome/dialog-customer.c -u -r1.34.4.10 -r1.34.4.11
--- src/business/business-gnome/dialog-customer.c
+++ src/business/business-gnome/dialog-customer.c
@@ -261,6 +261,7 @@
 {
   CustomerWindow *cw = data;
   gnc_numeric min, max;
+  gchar *string;
 
   /* Check for valid company name */
   if (check_entry_nonempty (cw->dialog, cw->company_entry,
@@ -296,9 +297,10 @@
 
   /* Set the customer id if one has not been chosen */
   if (safe_strcmp (gtk_entry_get_text (GTK_ENTRY (cw->id_entry)), "") == 0) {
-    gtk_entry_set_text (GTK_ENTRY (cw->id_entry),
-			g_strdup_printf ("%.6lld",
-					 gncCustomerNextID (cw->book)));
+    string = g_strdup_printf ("%.6" G_GINT64_FORMAT,
+			      gncCustomerNextID (cw->book));
+    gtk_entry_set_text (GTK_ENTRY (cw->id_entry), string);
+    g_free(string);
   }
 
   /* Now save it off */
Index: dialog-vendor.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/business/business-gnome/dialog-vendor.c,v
retrieving revision 1.32.4.10
retrieving revision 1.32.4.11
diff -Lsrc/business/business-gnome/dialog-vendor.c -Lsrc/business/business-gnome/dialog-vendor.c -u -r1.32.4.10 -r1.32.4.11
--- src/business/business-gnome/dialog-vendor.c
+++ src/business/business-gnome/dialog-vendor.c
@@ -198,6 +198,7 @@
 gnc_vendor_window_ok_cb (GtkWidget *widget, gpointer data)
 {
   VendorWindow *vw = data;
+  gchar *string;
 
   /* Check for valid company name */
   if (check_entry_nonempty (vw->dialog, vw->company_entry,
@@ -218,10 +219,12 @@
   }
 
   /* Check for valid id and set one if necessary */
-  if (safe_strcmp (gtk_entry_get_text (GTK_ENTRY (vw->id_entry)), "") == 0)
-    gtk_entry_set_text (GTK_ENTRY (vw->id_entry),
-			g_strdup_printf ("%.6lld",
-					 gncVendorNextID(vw->book)));
+  if (safe_strcmp (gtk_entry_get_text (GTK_ENTRY (vw->id_entry)), "") == 0) {
+    string = g_strdup_printf ("%.6" G_GINT64_FORMAT,
+			      gncVendorNextID(vw->book));
+    gtk_entry_set_text (GTK_ENTRY (vw->id_entry), string);
+    g_free(string);
+  }
 
   /* Now save it off */
   {


More information about the gnucash-changes mailing list