On Mon 21 Feb 2011 21:50, l...@gnu.org (Ludovic Courtès) writes:

>> --- a/libguile/ports.c
>> +++ b/libguile/ports.c
>> @@ -661,6 +661,19 @@ scm_i_remove_port (SCM port)
>>    scm_port_non_buffer (p);
>>    p->putback_buf = NULL;
>>    p->putback_buf_size = 0;
>> +
>> +  if (p->input_cd != (iconv_t) -1)
>> +    {
>> +      iconv_close (p->input_cd);
>> +      p->input_cd = (iconv_t) -1;
>> +    }
>> +  
>> +  if (p->output_cd != (iconv_t) -1)
>> +    {
>> +      iconv_close (p->output_cd);
>> +      p->output_cd = (iconv_t) -1;
>> +    }
>> +
>
> I don’t think this is needed: each port has a finalizer,
> ‘finalize_port’, which normally takes care of this, eventually.

It is needed, but only in the case that you `close-port' explicitly.
The block in finalize_port only takes care of gc'd open ports.

Regards,

Andy
-- 
http://wingolog.org/

Reply via email to