From: Ludovic Courtès Date: Wed, 10 Sep 2008 20:50:04 +0000 (+0200) Subject: Merge commit '29776e85da637ec4d44b2b2822d6934a50c0084b' into boehm-demers-weiser-gc X-Git-Url: https://git.hcoop.net/bpt/guile.git/commitdiff_plain/6774820f1e83a388b3232cd61a66340886b395d8 Merge commit '29776e85da637ec4d44b2b2822d6934a50c0084b' into boehm-demers-weiser-gc Conflicts: libguile/gc-card.c libguile/gc.c libguile/gc.h libguile/ports.c --- 6774820f1e83a388b3232cd61a66340886b395d8 diff --cc libguile/ports.c index fc716bebf,6cb77966e..9c6129d11 --- a/libguile/ports.c +++ b/libguile/ports.c @@@ -570,35 -511,13 +573,17 @@@ scm_new_port_table_entry (scm_t_bits ta entry->file_name = SCM_BOOL_F; entry->rw_active = SCM_PORT_NEITHER; + entry->port = z; - scm_i_port_table[scm_i_port_table_size] = entry; - scm_i_port_table_size++; + SCM_SET_CELL_TYPE (z, tag); + SCM_SETPTAB_ENTRY (z, entry); - entry->port = z; - SCM_SET_CELL_TYPE(z, tag); - SCM_SETPTAB_ENTRY(z, entry); + scm_hashq_set_x (scm_i_port_weak_hash, z, SCM_BOOL_F); + /* For each new port, register a finalizer so that it port type's free + function can be invoked eventually. */ + register_finalizer_for_port (z); + return z; } #undef FUNC_NAME