* 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.
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";
return "port";
break;
case scm_tc7_smob:
- return "smob"; /* should not occur. */
+ {
+ int k = 0xff & (tag >> 8);
+ return (scm_smobs[k].name);
+ }
break;
}