Aidan Kehoe <kehoea(a)parhasard.net> writes:
Ar an chéad lá de mí Meitheamh, scríobh Aidan Kehoe:
> The functions are used ultimately by internal_bind_int and the
> corresponding unbinding code; the C integers bound are
> entering_debugger, in_warnings and inhibit_flags. The below
> should fix things, if I understand things correctly; no need to
> change record_unwind_protect_restoring_int, since
> NUMBER_FITS_IN_AN_EMACS_INT on an integer value will always be
> true on AMD64.
Still, changing it is clearer:
--- eval.c~ 2007-06-01 04:24:21.000000000 +0200
+++ eval.c 2007-06-02 00:31:01.000000000 +0200
@@ -6011,11 +6011,13 @@
if (INTP (lval))
val = XINT (lval);
- else
+#if SIZEOF_EMACS_INT <= SIZEOF_INT
+ else
{
val = (int) get_opaque_ptr (lval);
free_opaque_ptr (lval);
}
+#endif
*addr = val;
free_opaque_ptr (opaque);
@@ -6034,7 +6036,7 @@
if (NUMBER_FITS_IN_AN_EMACS_INT (val))
lval = make_int (val);
- else
+ else if (SIZEOF_EMACS_INT <= SIZEOF_INT)
lval = make_opaque_ptr ((void *) val);
return record_unwind_protect (restore_int, noseeum_cons (opaque, lval));
}
This mixture of preprocessing conditionals and C level conditionals
appears inconsistent.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta