Fix for Bug #2001303, "segfault with local gschemrc". Protects the
scheme menu_items in structure st_menu for the time the C code use
them.
---
 libgeda/src/s_menu.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/libgeda/src/s_menu.c b/libgeda/src/s_menu.c
index 3bc3974..f0f316f 100644
--- a/libgeda/src/s_menu.c
+++ b/libgeda/src/s_menu.c
@@ -97,6 +97,7 @@ int s_menu_add_entry(char *new_menu, SCM menu_items)
   }
 
   menu[menu_index].menu_name = g_strdup (new_menu);
+  scm_gc_protect_object (menu_items);
   menu[menu_index].menu_items = menu_items;
   menu_index++;
   
@@ -132,6 +133,7 @@ void s_menu_free()
     if (menu[i].menu_name) {
       g_free(menu[i].menu_name);
       menu[i].menu_name = NULL;
+      scm_gc_unprotect_object (menu[i].menu_items);
     }          
   }
 
-- 
1.5.6




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

Reply via email to