summaryrefslogtreecommitdiff
path: root/libguile/gc.c
diff options
context:
space:
mode:
authorDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2000-11-23 08:59:22 +0000
committerDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2000-11-23 08:59:22 +0000
commit9377887701ecd64970fb8c65929ab2e8516ca929 (patch)
treeb17162c36e4dd8be771edab74f13b6e1e37b9ed3 /libguile/gc.c
parentd7cf43257826796a0503e33b162cb7424a65bdc4 (diff)
downloadguile-9377887701ecd64970fb8c65929ab2e8516ca929.tar.gz
* Deprecated SCM_SETLENGTH.
Diffstat (limited to 'libguile/gc.c')
-rw-r--r--libguile/gc.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/libguile/gc.c b/libguile/gc.c
index 26c1c0c2a..0a6e968f3 100644
--- a/libguile/gc.c
+++ b/libguile/gc.c
@@ -1621,8 +1621,14 @@ scm_gc_sweep ()
#endif
#ifdef HAVE_ARRAYS
case scm_tc7_bvect:
- m += sizeof (long) * ((SCM_BITVECTOR_LENGTH (scmptr) + SCM_LONG_BIT - 1) / SCM_LONG_BIT);
- scm_must_free (SCM_BITVECTOR_BASE (scmptr));
+ {
+ unsigned long int length = SCM_BITVECTOR_LENGTH (scmptr);
+ if (length > 0)
+ {
+ m += sizeof (long) * ((length + SCM_LONG_BIT - 1) / SCM_LONG_BIT);
+ scm_must_free (SCM_BITVECTOR_BASE (scmptr));
+ }
+ }
break;
case scm_tc7_byvect:
case scm_tc7_ivect: