diff --git a/libguile/gc-card.c b/libguile/gc-card.c index 1acd95e17..f14b54e64 100644 --- a/libguile/gc-card.c +++ b/libguile/gc-card.c @@ -414,7 +414,7 @@ scm_i_tag_name (scm_t_bits tag) break; } - return "unknown type"; + return NULL; } diff --git a/libguile/gc.c b/libguile/gc.c index ef290d3c1..0f3c98c18 100644 --- a/libguile/gc.c +++ b/libguile/gc.c @@ -280,7 +280,11 @@ static SCM tag_table_to_type_alist (void *closure, SCM key, SCM val, SCM acc) { scm_t_bits c_tag = scm_to_int (key); - key = scm_from_locale_string (scm_i_tag_name (c_tag)); + + char const * name = scm_i_tag_name (c_tag); + if (name != NULL) + key = scm_from_locale_string (name); + return scm_cons (scm_cons (key, val), acc); }