Hi folks,

One more patch picked from 'glist_dev' for application after the other GList 
patches have been committed (Ales, you've already got it -- I'm posting it to 
the list so everyone know what's happening).

09dc8f9fd9c77c9e058facb9c2e0b56f461755a2  more-glist-fixes.patch

Cheers,

Peter

-- 
Fisher Society committee                    http://tinyurl.com/o39w2
CUSBC novices, match and league secretary   http://tinyurl.com/mwrc9
CU Spaceflight                              http://tinyurl.com/ognu2

v3sw6YChw7$ln3pr6$ck3ma8u7+Lw3+2m0l7Ci6e4+8t4Gb8en6g6Pa2Xs5Mr4p4
  hackerkey.com                                  peter-b.co.uk

Attachment: pgp7eMbH3ZZda.pgp
Description: PGP signature

* src/o_delete.c: Changed a check to use glib debugging functions. Don't free objects at the end of o_delete, but free only the list.

* src/o_misc.c: Added a sanity check.

---
commit b238607dd1f8385ee6df95bd9941f2898e125c2e
tree d0159661d844495dc012ad618cd108ecabb70017
parent 767a3d5b2c5d5df41c0ab0b1b599ad4411f747eb
author cnieves <cnieves> Sun, 22 Oct 2006 17:27:57 +0000
committer Peter TB Brett <[EMAIL PROTECTED]> Sat, 16 Dec 2006 00:27:00 +0000

 gschem/ChangeLog      |    7 ++++++-
 gschem/src/o_delete.c |   12 +++++-------
 gschem/src/o_misc.c   |    2 ++
 3 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/gschem/ChangeLog b/gschem/ChangeLog
index 36af219..552764b 100644
--- a/gschem/ChangeLog
+++ b/gschem/ChangeLog
@@ -210,7 +210,12 @@
 	in the o_text_draw function added on 2006-10-21.
 	
 2006-10-22 Carlos Nieves Onega <[EMAIL PROTECTED]>
-
+	
+	* src/o_delete.c: Changed a check to use glib debugging functions.
+	  Don't free objects at the end of o_delete, but free only the list.
+	
+	* src/o_misc.c: Added a sanity check.
+	
 	* src/o_basic.c: Don't free objects in the complex place list. It is
 	  only a reference to the objects in the page.
 
diff --git a/gschem/src/o_delete.c b/gschem/src/o_delete.c
index 33e0e8a..97e69e0 100644
--- a/gschem/src/o_delete.c
+++ b/gschem/src/o_delete.c
@@ -250,11 +250,7 @@ void o_delete(TOPLEVEL *w_current)
   while(s_current != NULL) {
 
     object = (OBJECT *) s_current->data;
-    if (object == NULL) {
-      fprintf(stderr, 
-              _("ERROR: NULL object in o_delete_end!\n"));
-      exit(-1);
-    }
+    g_assert (object != NULL);
 
     switch(object->type) {
       case(OBJ_LINE):
@@ -303,8 +299,10 @@ void o_delete(TOPLEVEL *w_current)
 
   w_current->inside_action = 0;
 
-  o_selection_unselect_list (w_current,
-			     &(w_current->page_current->selection_list));
+  /* Objects have been deleted. Free the list, without freeing again 
+     the objects */
+  g_list_free(w_current->page_current->selection_list);
+  w_current->page_current->selection_list = NULL;
   w_current->page_current->CHANGED=1;
 
   /* no longer needed */
diff --git a/gschem/src/o_misc.c b/gschem/src/o_misc.c
index a21102b..753539f 100644
--- a/gschem/src/o_misc.c
+++ b/gschem/src/o_misc.c
@@ -1185,6 +1185,8 @@ void o_update_component(TOPLEVEL *w_current, OBJECT *o_current)
   gboolean is_embedded;
   gchar *basename, *clib;
 
+  g_return_if_fail (o_current != NULL);
+
   is_embedded = o_complex_is_embedded (o_current);
 
   /* identify symbol name */



!-------------------------------------------------------------flip-



_______________________________________________
geda-dev mailing list
[email protected]
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev

Reply via email to