[v2,8/9] Remove useless Guile SMOB marking functions

Message ID 1397731588-23750-9-git-send-email-wingo@igalia.com
State Committed
Headers

Commit Message

Andy Wingo April 17, 2014, 10:46 a.m. UTC
  gdb/ChangeLog:
	* guile/scm-breakpoint.c (bpscm_mark_breakpoint_smob):
	* guile/scm-exception.c (exscm_mark_exception_smob):
	* guile/scm-iterator.c (itscm_mark_iterator_smob):
	* guile/scm-objfile.c (ofscm_mark_objfile_smob):
	* guile/scm-pretty-print.c (ppscm_mark_pretty_printer_smob)
	(ppscm_mark_pretty_printer_worker_smob):
	* guile/scm-symtab.c (stscm_mark_sal_smob):
	* guile/scm-type.c (tyscm_mark_field_smob):
	* guile/scm-value.c (vlscm_mark_value_smob): Remove useless SMOB
	mark functions -- the SMOB data for all of these is allocated
	using scm_gc_malloc, so it is automatically marked.
---
 gdb/ChangeLog                | 14 ++++++++++++++
 gdb/guile/scm-breakpoint.c   | 14 --------------
 gdb/guile/scm-exception.c    | 12 ------------
 gdb/guile/scm-iterator.c     | 13 -------------
 gdb/guile/scm-objfile.c      | 14 --------------
 gdb/guile/scm-pretty-print.c | 29 -----------------------------
 gdb/guile/scm-symtab.c       | 11 -----------
 gdb/guile/scm-type.c         | 11 -----------
 gdb/guile/scm-value.c        | 13 -------------
 9 files changed, 14 insertions(+), 117 deletions(-)
  

Comments

Doug Evans April 27, 2014, 12:38 a.m. UTC | #1
Andy Wingo <wingo@igalia.com> writes:

> gdb/ChangeLog:
> 	* guile/scm-breakpoint.c (bpscm_mark_breakpoint_smob):
> 	* guile/scm-exception.c (exscm_mark_exception_smob):
> 	* guile/scm-iterator.c (itscm_mark_iterator_smob):
> 	* guile/scm-objfile.c (ofscm_mark_objfile_smob):
> 	* guile/scm-pretty-print.c (ppscm_mark_pretty_printer_smob)
> 	(ppscm_mark_pretty_printer_worker_smob):
> 	* guile/scm-symtab.c (stscm_mark_sal_smob):
> 	* guile/scm-type.c (tyscm_mark_field_smob):
> 	* guile/scm-value.c (vlscm_mark_value_smob): Remove useless SMOB
> 	mark functions -- the SMOB data for all of these is allocated
> 	using scm_gc_malloc, so it is automatically marked.

Comments explaining "why things are the way they are" belong in code and
related docs, not changelog entries.

Instead of explaining why mark functions aren't needed in the changelog
entry, can you add some text to gdb/guile/README?
Thanks!
  

Patch

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 653c3e6..4f869db 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,19 @@ 
 2014-04-17  Andy Wingo  <wingo@igalia.com>
 
+	* guile/scm-breakpoint.c (bpscm_mark_breakpoint_smob):
+	* guile/scm-exception.c (exscm_mark_exception_smob):
+	* guile/scm-iterator.c (itscm_mark_iterator_smob):
+	* guile/scm-objfile.c (ofscm_mark_objfile_smob):
+	* guile/scm-pretty-print.c (ppscm_mark_pretty_printer_smob)
+	(ppscm_mark_pretty_printer_worker_smob):
+	* guile/scm-symtab.c (stscm_mark_sal_smob):
+	* guile/scm-type.c (tyscm_mark_field_smob):
+	* guile/scm-value.c (vlscm_mark_value_smob): Remove useless SMOB
+	mark functions -- the SMOB data for all of these is allocated
+	using scm_gc_malloc, so it is automatically marked.
+
+2014-04-17  Andy Wingo  <wingo@igalia.com>
+
 	* guile/scm-arch.c (arscm_mark_arch_smob):
 	* guile/scm-block.c (bkscm_mark_block_smob)
 	(bkscm_mark_block_syms_progress_smob):
diff --git a/gdb/guile/scm-breakpoint.c b/gdb/guile/scm-breakpoint.c
index a66b82e..fbbd81b 100644
--- a/gdb/guile/scm-breakpoint.c
+++ b/gdb/guile/scm-breakpoint.c
@@ -70,19 +70,6 @@  static SCM internal_keyword;
 
 /* Administrivia for breakpoint smobs.  */
 
-/* The smob "mark" function for <gdb:breakpoint>.  */
-
-static SCM
-bpscm_mark_breakpoint_smob (SCM self)
-{
-  breakpoint_smob *bp_smob = (breakpoint_smob *) SCM_SMOB_DATA (self);
-
-  /* We don't mark containing_scm here.  It is just a backlink to our
-     container, and is gc'protected until the breakpoint is deleted.  */
-
-  return bp_smob->stop;
-}
-
 /* The smob "free" function for <gdb:breakpoint>.  */
 
 static size_t
@@ -1177,7 +1164,6 @@  gdbscm_initialize_breakpoints (void)
 {
   breakpoint_smob_tag
     = gdbscm_make_smob_type (breakpoint_smob_name, sizeof (breakpoint_smob));
-  scm_set_smob_mark (breakpoint_smob_tag, bpscm_mark_breakpoint_smob);
   scm_set_smob_free (breakpoint_smob_tag, bpscm_free_breakpoint_smob);
   scm_set_smob_print (breakpoint_smob_tag, bpscm_print_breakpoint_smob);
 
diff --git a/gdb/guile/scm-exception.c b/gdb/guile/scm-exception.c
index 316f0b4..3b65b55 100644
--- a/gdb/guile/scm-exception.c
+++ b/gdb/guile/scm-exception.c
@@ -98,17 +98,6 @@  static unsigned long gdbscm_exception_count = 0;
 
 /* Administrivia for exception smobs.  */
 
-/* The smob "mark" function for <gdb:exception>.  */
-
-static SCM
-exscm_mark_exception_smob (SCM self)
-{
-  exception_smob *e_smob = (exception_smob *) SCM_SMOB_DATA (self);
-
-  scm_gc_mark (e_smob->key);
-  return e_smob->args;
-}
-
 /* The smob "print" function for <gdb:exception>.  */
 
 static int
@@ -661,7 +650,6 @@  gdbscm_initialize_exceptions (void)
 {
   exception_smob_tag = gdbscm_make_smob_type (exception_smob_name,
 					      sizeof (exception_smob));
-  scm_set_smob_mark (exception_smob_tag, exscm_mark_exception_smob);
   scm_set_smob_print (exception_smob_tag, exscm_print_exception_smob);
 
   gdbscm_define_functions (exception_functions, 1);
diff --git a/gdb/guile/scm-iterator.c b/gdb/guile/scm-iterator.c
index 080339b..0bbca43 100644
--- a/gdb/guile/scm-iterator.c
+++ b/gdb/guile/scm-iterator.c
@@ -107,18 +107,6 @@  itscm_set_iterator_smob_progress_x (iterator_smob *i_smob, SCM progress)
 
 /* Administrivia for iterator smobs.  */
 
-/* The smob "mark" function for <gdb:iterator>.  */
-
-static SCM
-itscm_mark_iterator_smob (SCM self)
-{
-  iterator_smob *i_smob = (iterator_smob *) SCM_SMOB_DATA (self);
-
-  scm_gc_mark (i_smob->object);
-  scm_gc_mark (i_smob->progress);
-  return i_smob->next_x;
-}
-
 /* The smob "print" function for <gdb:iterator>.  */
 
 static int
@@ -358,7 +346,6 @@  gdbscm_initialize_iterators (void)
 {
   iterator_smob_tag = gdbscm_make_smob_type (iterator_smob_name,
 					     sizeof (iterator_smob));
-  scm_set_smob_mark (iterator_smob_tag, itscm_mark_iterator_smob);
   scm_set_smob_print (iterator_smob_tag, itscm_print_iterator_smob);
 
   gdbscm_define_functions (iterator_functions, 1);
diff --git a/gdb/guile/scm-objfile.c b/gdb/guile/scm-objfile.c
index 693d404..34ed773 100644
--- a/gdb/guile/scm-objfile.c
+++ b/gdb/guile/scm-objfile.c
@@ -59,19 +59,6 @@  ofscm_objfile_smob_pretty_printers (objfile_smob *o_smob)
 
 /* Administrivia for objfile smobs.  */
 
-/* The smob "mark" function for <gdb:objfile>.  */
-
-static SCM
-ofscm_mark_objfile_smob (SCM self)
-{
-  objfile_smob *o_smob = (objfile_smob *) SCM_SMOB_DATA (self);
-
-  /* We don't mark containing_scm here.  It is just a backlink to our
-     container, and is gc-protected until the objfile is deleted.  */
-
-  return o_smob->pretty_printers;
-}
-
 /* The smob "print" function for <gdb:objfile>.  */
 
 static int
@@ -396,7 +383,6 @@  gdbscm_initialize_objfiles (void)
 {
   objfile_smob_tag
     = gdbscm_make_smob_type (objfile_smob_name, sizeof (objfile_smob));
-  scm_set_smob_mark (objfile_smob_tag, ofscm_mark_objfile_smob);
   scm_set_smob_print (objfile_smob_tag, ofscm_print_objfile_smob);
 
   gdbscm_define_functions (objfile_functions, 1);
diff --git a/gdb/guile/scm-pretty-print.c b/gdb/guile/scm-pretty-print.c
index f25eac3..dbdd749 100644
--- a/gdb/guile/scm-pretty-print.c
+++ b/gdb/guile/scm-pretty-print.c
@@ -121,18 +121,6 @@  static SCM ppscm_string_string;
 
 /* Administrivia for pretty-printer matcher smobs.  */
 
-/* The smob "mark" function for <gdb:pretty-printer>.  */
-
-static SCM
-ppscm_mark_pretty_printer_smob (SCM self)
-{
-  pretty_printer_smob *pp_smob = (pretty_printer_smob *) SCM_SMOB_DATA (self);
-
-  scm_gc_mark (pp_smob->name);
-  scm_gc_mark (pp_smob->enabled);
-  return pp_smob->lookup;
-}
-
 /* The smob "print" function for <gdb:pretty-printer>.  */
 
 static int
@@ -248,19 +236,6 @@  gdbscm_set_pretty_printer_enabled_x (SCM self, SCM enabled)
 /* Administrivia for pretty-printer-worker smobs.
    These are created when a matcher recognizes a value.  */
 
-/* The smob "mark" function for <gdb:pretty-printer-worker>.  */
-
-static SCM
-ppscm_mark_pretty_printer_worker_smob (SCM self)
-{
-  pretty_printer_worker_smob *w_smob
-    = (pretty_printer_worker_smob *) SCM_SMOB_DATA (self);
-
-  scm_gc_mark (w_smob->display_hint);
-  scm_gc_mark (w_smob->to_string);
-  return w_smob->children;
-}
-
 /* The smob "print" function for <gdb:pretty-printer-worker>.  */
 
 static int
@@ -1096,16 +1071,12 @@  gdbscm_initialize_pretty_printers (void)
   pretty_printer_smob_tag
     = gdbscm_make_smob_type (pretty_printer_smob_name,
 			     sizeof (pretty_printer_smob));
-  scm_set_smob_mark (pretty_printer_smob_tag,
-		     ppscm_mark_pretty_printer_smob);
   scm_set_smob_print (pretty_printer_smob_tag,
 		      ppscm_print_pretty_printer_smob);
 
   pretty_printer_worker_smob_tag
     = gdbscm_make_smob_type (pretty_printer_worker_smob_name,
 			     sizeof (pretty_printer_worker_smob));
-  scm_set_smob_mark (pretty_printer_worker_smob_tag,
-		     ppscm_mark_pretty_printer_worker_smob);
   scm_set_smob_print (pretty_printer_worker_smob_tag,
 		      ppscm_print_pretty_printer_worker_smob);
 
diff --git a/gdb/guile/scm-symtab.c b/gdb/guile/scm-symtab.c
index 2d09da3..8910973 100644
--- a/gdb/guile/scm-symtab.c
+++ b/gdb/guile/scm-symtab.c
@@ -386,16 +386,6 @@  gdbscm_symtab_static_block (SCM self)
 
 /* Administrivia for sal (symtab-and-line) smobs.  */
 
-/* The smob "mark" function for <gdb:sal>.  */
-
-static SCM
-stscm_mark_sal_smob (SCM self)
-{
-  sal_smob *s_smob = (sal_smob *) SCM_SMOB_DATA (self);
-
-  return s_smob->symtab_scm;
-}
-
 /* The smob "free" function for <gdb:sal>.  */
 
 static size_t
@@ -702,7 +692,6 @@  gdbscm_initialize_symtabs (void)
   scm_set_smob_print (symtab_smob_tag, stscm_print_symtab_smob);
 
   sal_smob_tag = gdbscm_make_smob_type (sal_smob_name, sizeof (sal_smob));
-  scm_set_smob_mark (sal_smob_tag, stscm_mark_sal_smob);
   scm_set_smob_free (sal_smob_tag, stscm_free_sal_smob);
   scm_set_smob_print (sal_smob_tag, stscm_print_sal_smob);
 
diff --git a/gdb/guile/scm-type.c b/gdb/guile/scm-type.c
index 4e09cbc..7a9cb68 100644
--- a/gdb/guile/scm-type.c
+++ b/gdb/guile/scm-type.c
@@ -401,16 +401,6 @@  save_objfile_types (struct objfile *objfile, void *datum)
 
 /* Administrivia for field smobs.  */
 
-/* The smob "mark" function for <gdb:field>.  */
-
-static SCM
-tyscm_mark_field_smob (SCM self)
-{
-  field_smob *f_smob = (field_smob *) SCM_SMOB_DATA (self);
-
-  return f_smob->type_scm;
-}
-
 /* The smob "print" function for <gdb:field>.  */
 
 static int
@@ -1469,7 +1459,6 @@  gdbscm_initialize_types (void)
 
   field_smob_tag = gdbscm_make_smob_type (field_smob_name,
 					  sizeof (field_smob));
-  scm_set_smob_mark (field_smob_tag, tyscm_mark_field_smob);
   scm_set_smob_print (field_smob_tag, tyscm_print_field_smob);
 
   gdbscm_define_integer_constants (type_integer_constants, 1);
diff --git a/gdb/guile/scm-value.c b/gdb/guile/scm-value.c
index d8f90ec..df2be12 100644
--- a/gdb/guile/scm-value.c
+++ b/gdb/guile/scm-value.c
@@ -120,18 +120,6 @@  vlscm_forget_value_smob (value_smob *v_smob)
     v_smob->next->prev = v_smob->prev;
 }
 
-/* The smob "mark" function for <gdb:value>.  */
-
-static SCM
-vlscm_mark_value_smob (SCM self)
-{
-  value_smob *v_smob = (value_smob *) SCM_SMOB_DATA (self);
-
-  scm_gc_mark (v_smob->address);
-  scm_gc_mark (v_smob->type);
-  return v_smob->dynamic_type;
-}
-
 /* The smob "free" function for <gdb:value>.  */
 
 static size_t
@@ -1489,7 +1477,6 @@  gdbscm_initialize_values (void)
 {
   value_smob_tag = gdbscm_make_smob_type (value_smob_name,
 					  sizeof (value_smob));
-  scm_set_smob_mark (value_smob_tag, vlscm_mark_value_smob);
   scm_set_smob_free (value_smob_tag, vlscm_free_value_smob);
   scm_set_smob_print (value_smob_tag, vlscm_print_value_smob);
   scm_set_smob_equalp (value_smob_tag, vlscm_equal_p_value_smob);