deprecate direct scm_protects access
authorAndy Wingo <wingo@pobox.com>
Fri, 18 Nov 2011 10:09:48 +0000 (11:09 +0100)
committerAndy Wingo <wingo@pobox.com>
Mon, 21 Nov 2011 09:56:29 +0000 (10:56 +0100)
* libguile/gc.h:
* libguile/gc.c: Deprecate direct access to scm_protects.

libguile/gc.c
libguile/gc.h

index c68f295..23cc8a3 100644 (file)
@@ -82,11 +82,14 @@ int scm_expensive_debug_cell_accesses_p = 0;
  */
 int scm_debug_cells_gc_interval = 0;
 
+#if SCM_ENABLE_DEPRECATED == 1
 /* Hash table that keeps a reference to objects the user wants to protect from
    garbage collection.  It could arguably be private but applications have come
    to rely on it (e.g., Lilypond 2.13.9).  */
 SCM scm_protects;
-
+#else
+static SCM scm_protects;
+#endif
 
 #if (SCM_DEBUG_CELL_ACCESSES == 1)
 
index 104fb0b..a19b9de 100644 (file)
@@ -3,7 +3,7 @@
 #ifndef SCM_GC_H
 #define SCM_GC_H
 
-/* Copyright (C) 1995,1996,1998,1999,2000,2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1998,1999,2000,2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public License
@@ -242,7 +242,9 @@ SCM_API void scm_gc_register_root (SCM *p);
 SCM_API void scm_gc_unregister_root (SCM *p);
 SCM_API void scm_gc_register_roots (SCM *b, unsigned long n);
 SCM_API void scm_gc_unregister_roots (SCM *b, unsigned long n);
-SCM_API SCM scm_protects;
+#if SCM_ENABLE_DEPRECATED == 1
+SCM_DEPRECATED SCM scm_protects;
+#endif
 SCM_INTERNAL void scm_storage_prehistory (void);
 SCM_INTERNAL void scm_init_gc_protect_object (void);
 SCM_INTERNAL void scm_init_gc (void);