GNU bug report logs - #10668
FFI: ‘set-pointer-finalizer!’ overrides the previous finalizer

Previous Next

Package: guile;

Reported by: ludo <at> gnu.org (Ludovic Courtès)

Date: Mon, 30 Jan 2012 22:33:01 UTC

Severity: normal

Done: Andy Wingo <wingo <at> pobox.com>

Bug is archived. No further changes may be made.

Full log


Message #10 received at 10668-done <at> debbugs.gnu.org (full text, mbox):

From: Andy Wingo <wingo <at> pobox.com>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: 10668-done <at> debbugs.gnu.org
Subject: Re: bug#10668: FFI: ‘set-pointer-finalizer!’ overrides the previous finalizer
Date: Fri, 06 Jul 2012 20:26:20 +0200
On Mon 30 Jan 2012 23:31, ludo <at> gnu.org (Ludovic Courtès) writes:

> The ‘set-pointer-finalizer!’ procedure is harmful because it erases any
> previously set finalizer.
>
> Said finalizer could come from a guardian:
>
>    (define ptr (make-pointer 123))
>    (define g (make-guardian))
>    (g ptr)
>    (set-pointer-finalizer! ptr (dynamic-func "scm_is_pair" (dynamic-link)))
>    (set! ptr #f)
>    (gc)
>
>    (g)          ;; Should return PTR.
>    => #f

This has worked since 75ba64d6797f5857cc9885eb753126119a8c8b68.

Andy
-- 
http://wingolog.org/




This bug report was last modified 12 years and 327 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.