diff options
author | Han-Wen Nienhuys <hanwen@lilypond.org> | 2002-08-04 15:25:07 +0000 |
---|---|---|
committer | Han-Wen Nienhuys <hanwen@lilypond.org> | 2002-08-04 15:25:07 +0000 |
commit | 402788a93821879d278afd2f8309eed7e7e2e9c4 (patch) | |
tree | 14c2a8ac51c4e5af1cf92fe59473bd32ad7db057 /libguile/vports.c | |
parent | c2cbcc57687ca716fb3e2166859b7be5880d80e2 (diff) | |
download | guile-402788a93821879d278afd2f8309eed7e7e2e9c4.tar.gz |
port GC fix
Diffstat (limited to 'libguile/vports.c')
-rw-r--r-- | libguile/vports.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libguile/vports.c b/libguile/vports.c index ce5ea7925..6addd2b0c 100644 --- a/libguile/vports.c +++ b/libguile/vports.c @@ -189,12 +189,14 @@ SCM_DEFINE (scm_make_soft_port, "make-soft-port", 2, 0, 0, SCM z; SCM_VALIDATE_VECTOR_LEN (1, pv,5); SCM_VALIDATE_STRING (2, modes); - z = scm_cell (scm_tc16_sfport, 0); + SCM_DEFER_INTS; - pt = scm_add_to_port_table (z); + pt = scm_new_port_table_entry (); scm_port_non_buffer (pt); - SCM_SET_CELL_TYPE (z, scm_tc16_sfport | scm_mode_bits (SCM_STRING_CHARS (modes))); + z = scm_cell (scm_tc16_sfport | scm_mode_bits (SCM_STRING_CHARS (modes)), 0); SCM_SETPTAB_ENTRY (z, pt); + pt->port = z; + SCM_SETSTREAM (z, SCM_UNPACK (pv)); SCM_ALLOW_INTS; return z; |