summaryrefslogtreecommitdiff
path: root/libguile/gc-malloc.c
diff options
context:
space:
mode:
authorKevin Ryde <user42@zip.com.au>2004-02-16 00:45:55 +0000
committerKevin Ryde <user42@zip.com.au>2004-02-16 00:45:55 +0000
commit4cd3853f3717168dce92ec49a2d51b49abd27d9e (patch)
treea4f5faa70978b93af5baebaf3cfcad688b799f11 /libguile/gc-malloc.c
parentae43d08ea0c556fd6aeb188287a8baa87f3f60a7 (diff)
downloadguile-4cd3853f3717168dce92ec49a2d51b49abd27d9e.tar.gz
(scm_done_malloc, scm_done_free): Allow negative sizes,
which were permitted in the past for these.
Diffstat (limited to 'libguile/gc-malloc.c')
-rw-r--r--libguile/gc-malloc.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/libguile/gc-malloc.c b/libguile/gc-malloc.c
index 8e2190cfb..6cfb62769 100644
--- a/libguile/gc-malloc.c
+++ b/libguile/gc-malloc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001, 2002, 2004 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
@@ -447,7 +447,10 @@ scm_done_malloc (long size)
("scm_done_malloc is deprecated. "
"Use scm_gc_register_collectable_memory instead.");
- scm_gc_register_collectable_memory (NULL, size, "foreign mallocs");
+ if (size >= 0)
+ scm_gc_register_collectable_memory (NULL, size, "foreign mallocs");
+ else
+ scm_gc_unregister_collectable_memory (NULL, -size, "foreign mallocs");
}
void
@@ -457,7 +460,10 @@ scm_done_free (long size)
("scm_done_free is deprecated. "
"Use scm_gc_unregister_collectable_memory instead.");
- scm_gc_unregister_collectable_memory (NULL, size, "foreign mallocs");
+ if (size >= 0)
+ scm_gc_unregister_collectable_memory (NULL, size, "foreign mallocs");
+ else
+ scm_gc_register_collectable_memory (NULL, -size, "foreign mallocs");
}
#endif /* SCM_ENABLE_DEPRECATED == 1 */