diff --git a/libguile/ports-internal.h b/libguile/ports-internal.h index 2b2ccc4fb..7b2bd68b2 100644 --- a/libguile/ports-internal.h +++ b/libguile/ports-internal.h @@ -42,6 +42,7 @@ typedef enum scm_t_port_type_flags { /* port-type description. */ struct scm_t_port_type { + scm_t_bits tag; char *name; int (*print) (SCM exp, SCM port, scm_print_state *pstate); diff --git a/libguile/ports.c b/libguile/ports.c index c2b79ab0e..d21786dc3 100644 --- a/libguile/ports.c +++ b/libguile/ports.c @@ -250,9 +250,10 @@ scm_make_port_type (char *name, { scm_t_port_type *desc; - desc = scm_allocate_pointerless (SCM_I_CURRENT_THREAD, sizeof (*desc)); + desc = scm_allocate_tagged (SCM_I_CURRENT_THREAD, sizeof (*desc)); memset (desc, 0, sizeof (*desc)); + desc->tag = scm_tc7_port_type; desc->name = name; desc->print = scm_port_print; desc->c_read = read; diff --git a/libguile/scm.h b/libguile/scm.h index 5509d239e..c887424ea 100644 --- a/libguile/scm.h +++ b/libguile/scm.h @@ -487,7 +487,7 @@ typedef uintptr_t scm_t_bits; #define scm_tc7_vm_cont 0x47 #define scm_tc7_bytevector 0x4d #define scm_tc7_thread 0x4f -#define scm_tc7_unused_55 0x55 +#define scm_tc7_port_type 0x55 #define scm_tc7_unused_57 0x57 #define scm_tc7_array 0x5d #define scm_tc7_bitvector 0x5f