Use lisp integers, not just fixnums, to store addresses.

This commit is contained in:
jjgarcia 2001-07-23 08:43:48 +00:00
parent 63fb67ed0c
commit e537b5fe36
2 changed files with 6 additions and 6 deletions

View file

@ -158,16 +158,16 @@ link_call(cl_object sym, cl_object (**pLK)(), cl_object *args)
switch (type_of(fun)) {
case t_cfun:
putprop(sym, CONS(CONS(MAKE_FIXNUM((int)pLK),
MAKE_FIXNUM((int)*pLK)),
putprop(sym, CONS(CONS(make_unsigned_integer((cl_index)pLK),
make_unsigned_integer((cl_index)*pLK)),
getf(sym->symbol.plist, @'si::link-from', Cnil)),
@'si::link-from');
*pLK = fun->cfun.entry;
return APPLY(narg, fun->cfun.entry, &args[1]);
#ifdef CLOS
case t_gfun:
putprop(sym, CONS(CONS(MAKE_FIXNUM((int)gfun),
MAKE_FIXNUM((int)OBJNULL)),
putprop(sym, CONS(CONS(make_unsigned_integer((cl_index)gfun),
make_unsigned_integer((cl_index)OBJNULL)),
getf(sym->symbol.plist, @'si::link-from', Cnil)),
@'si::link-from');
*gfun = fun;
@ -193,7 +193,7 @@ link_call(cl_object sym, cl_object (**pLK)(), cl_object *args)
pl = getf(s->symbol.plist, @'si::link-from', Cnil);
if (!endp(pl)) {
for (; !endp(pl); pl = CDR(pl))
*(int *)(fix(CAAR(pl))) = fix(CDAR(pl));
*(void **)(fixnnint(CAAR(pl))) = (void *)fixnnint(CDAR(pl));
remf(&s->symbol.plist, @'si::link-from');
}
@(return)

View file

@ -154,7 +154,7 @@ main(int argc, char **argv)
@(defun si::pointer (x)
@
@(return MAKE_FIXNUM((int)x))
@(return make_unsigned_integer((cl_index)x))
@)
#ifdef HAVE_SYS_UTSNAME_H