summaryrefslogtreecommitdiff
path: root/libguile/gc.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/gc.c')
-rw-r--r--libguile/gc.c51
1 files changed, 32 insertions, 19 deletions
diff --git a/libguile/gc.c b/libguile/gc.c
index d87e88d2f..5f966acd0 100644
--- a/libguile/gc.c
+++ b/libguile/gc.c
@@ -340,25 +340,38 @@ SCM_DEFINE (scm_gc_stats, "gc-stats", 0, 0, 0,
for (i = table_size; i--;)
{
- heap_segs = scm_cons (scm_cons (scm_ulong2num (bounds[2*i]),
- scm_ulong2num (bounds[2*i+1])),
+ heap_segs = scm_cons (scm_cons (scm_from_ulong (bounds[2*i]),
+ scm_from_ulong (bounds[2*i+1])),
heap_segs);
}
- answer = scm_list_n (scm_cons (sym_gc_time_taken, scm_ulong2num (local_scm_gc_time_taken)),
- scm_cons (sym_cells_allocated, scm_ulong2num (local_scm_cells_allocated)),
- scm_cons (sym_heap_size, scm_ulong2num (local_scm_heap_size)),
- scm_cons (sym_mallocated, scm_ulong2num (local_scm_mallocated)),
- scm_cons (sym_mtrigger, scm_ulong2num (local_scm_mtrigger)),
- scm_cons (sym_times, scm_ulong2num (local_scm_gc_times)),
- scm_cons (sym_gc_mark_time_taken, scm_ulong2num (local_scm_gc_mark_time_taken)),
- scm_cons (sym_cells_marked, scm_i_dbl2big (local_scm_gc_cells_marked)),
- scm_cons (sym_cells_swept, scm_i_dbl2big (local_scm_gc_cells_swept)),
- scm_cons (sym_malloc_yield, scm_long2num (local_scm_gc_malloc_yield_percentage)),
- scm_cons (sym_cell_yield, scm_long2num (local_scm_gc_cell_yield_percentage)),
- scm_cons (sym_protected_objects, scm_ulong2num (local_protected_obj_count)),
- scm_cons (sym_heap_segments, heap_segs),
- SCM_UNDEFINED);
+ answer =
+ scm_list_n (scm_cons (sym_gc_time_taken,
+ scm_from_ulong (local_scm_gc_time_taken)),
+ scm_cons (sym_cells_allocated,
+ scm_from_ulong (local_scm_cells_allocated)),
+ scm_cons (sym_heap_size,
+ scm_from_ulong (local_scm_heap_size)),
+ scm_cons (sym_mallocated,
+ scm_from_ulong (local_scm_mallocated)),
+ scm_cons (sym_mtrigger,
+ scm_from_ulong (local_scm_mtrigger)),
+ scm_cons (sym_times,
+ scm_from_ulong (local_scm_gc_times)),
+ scm_cons (sym_gc_mark_time_taken,
+ scm_from_ulong (local_scm_gc_mark_time_taken)),
+ scm_cons (sym_cells_marked,
+ scm_from_double (local_scm_gc_cells_marked)),
+ scm_cons (sym_cells_swept,
+ scm_from_double (local_scm_gc_cells_swept)),
+ scm_cons (sym_malloc_yield,
+ scm_from_long(local_scm_gc_malloc_yield_percentage)),
+ scm_cons (sym_cell_yield,
+ scm_from_long (local_scm_gc_cell_yield_percentage)),
+ scm_cons (sym_protected_objects,
+ scm_from_ulong (local_protected_obj_count)),
+ scm_cons (sym_heap_segments, heap_segs),
+ SCM_UNDEFINED);
SCM_ALLOW_INTS;
free (bounds);
@@ -406,7 +419,7 @@ SCM_DEFINE (scm_object_address, "object-address", 1, 0, 0,
"returned by this function for @var{obj}")
#define FUNC_NAME s_scm_object_address
{
- return scm_ulong2num ((unsigned long) SCM_UNPACK (obj));
+ return scm_from_ulong (SCM_UNPACK (obj));
}
#undef FUNC_NAME
@@ -762,7 +775,7 @@ void
scm_gc_register_root (SCM *p)
{
SCM handle;
- SCM key = scm_long2num ((long) p);
+ SCM key = scm_from_ulong ((unsigned long) p);
/* This critical section barrier will be replaced by a mutex. */
SCM_REDEFER_INTS;
@@ -778,7 +791,7 @@ void
scm_gc_unregister_root (SCM *p)
{
SCM handle;
- SCM key = scm_long2num ((long) p);
+ SCM key = scm_from_ulong ((unsigned long) p);
/* This critical section barrier will be replaced by a mutex. */
SCM_REDEFER_INTS;