From 74ec8d786fd0abd8e2818b373ef8bc7d36fee8ad Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Thu, 28 Jul 2011 17:47:31 +0200 Subject: [PATCH] fix scm_i_tag_name * libguile/gc.c (scm_i_tag_name): Fix to work as intended, though it was not called. See http://article.gmane.org/gmane.lisp.guile.devel/12685. --- libguile/gc.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/libguile/gc.c b/libguile/gc.c index 3ae978fc0..c68f295b1 100644 --- a/libguile/gc.c +++ b/libguile/gc.c @@ -739,13 +739,7 @@ accumulate_gc_timer (void * hook_data SCM_UNUSED, char const * scm_i_tag_name (scm_t_bits tag) { - if (tag >= 255) - { - int k = 0xff & (tag >> 8); - return (scm_smobs[k].name); - } - - switch (tag) /* 7 bits */ + switch (tag & 0x7f) /* 7 bits */ { case scm_tcs_struct: return "struct"; @@ -806,7 +800,10 @@ scm_i_tag_name (scm_t_bits tag) return "port"; break; case scm_tc7_smob: - return "smob"; /* should not occur. */ + { + int k = 0xff & (tag >> 8); + return (scm_smobs[k].name); + } break; } -- 2.20.1