Coding bug in insert-file-contents-internal
Ben Wing
ben at 666.com
Sat Feb 5 00:01:40 EST 2005
> This is a completely tentative patch, bceause I'm still not
> quite clear on the interactions of bindings, GCPRO,
> unwind-protect and the like in the C layer. I *think* it's
> pointless to specbind() DEFVAR_LISPed variables, because it
> seems to me that this would break the magic link between the
> C variable and the Lisp symbol --- the magic forwarding
> symbol would wind up on the specbinding stack --- and the C
> code uses the variable... so I've tried to
> record_unwind_protect it instead. I'm not quite sure if I've
> done it right, or if I need to GCPRO something (I don't think
> so: stuff on the specbinding stack and stuff in DEFVAR_LISPed
> variables are both found by the garbage collector anyway,
> right?) record_unwind_protect()?)
>
>
> It compiles, I don't know if it runs, I don't know if it's
> safe
Yes.
> I don't know if there's a better way to do it:
Yes.
record_unwind_protect() and specbind() (of a Q... Symbol that names the
variable) are both fine. Easiest/best is internal_bind_lisp_object().
More information about the XEmacs-Beta
mailing list