1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-07-02 07:40:30 +02:00

Port type objects are tagged

* libguile/scm.h (scm_tc7_port_type):
* libguile/ports-internal.h (struct scm_t_port_type):
* libguile/ports.c (scm_make_port_type): These objects have been
allocated pointerless since 2011, but since 2016 at least they have had
SCM members.  Oops!
This commit is contained in:
Andy Wingo 2025-06-25 12:29:21 +02:00
parent 1520a5e425
commit 9e9567b22a
3 changed files with 4 additions and 2 deletions

View file

@ -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);

View file

@ -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;

View file

@ -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