# HG changeset patch # User Karl Heuer # Date 784935850 0 # Node ID c189487b08dd8d3c21524d79491dc1e14e7aaeaf # Parent 6d82f17895cf1c5c9473aef7f2ff0ce9052bd10a (free_float): Don't assume XFASTINT accesses the raw bits. (make_float, free_cons, Fcons, Fmake_symbol, gc_sweep): Likewise. diff -r 6d82f17895cf -r c189487b08dd src/alloc.c --- a/src/alloc.c Tue Nov 15 21:03:22 1994 +0000 +++ b/src/alloc.c Tue Nov 15 21:44:10 1994 +0000 @@ -435,7 +435,7 @@ free_float (ptr) struct Lisp_Float *ptr; { - XSETFASTINT (ptr->type, (EMACS_INT) float_free_list); + *(struct Lisp_Float **)&ptr->type = float_free_list; float_free_list = ptr; } @@ -448,7 +448,7 @@ if (float_free_list) { XSETFLOAT (val, float_free_list); - float_free_list = (struct Lisp_Float *) XFASTINT (float_free_list->type); + float_free_list = *(struct Lisp_Float **)&float_free_list->type; } else { @@ -508,7 +508,7 @@ free_cons (ptr) struct Lisp_Cons *ptr; { - XSETFASTINT (ptr->car, (EMACS_INT) cons_free_list); + *(struct Lisp_Cons **)&ptr->car = cons_free_list; cons_free_list = ptr; } @@ -522,7 +522,7 @@ if (cons_free_list) { XSETCONS (val, cons_free_list); - cons_free_list = (struct Lisp_Cons *) XFASTINT (cons_free_list->car); + cons_free_list = *(struct Lisp_Cons **)&cons_free_list->car; } else { @@ -708,8 +708,7 @@ if (symbol_free_list) { XSETSYMBOL (val, symbol_free_list); - symbol_free_list - = (struct Lisp_Symbol *) XFASTINT (symbol_free_list->value); + symbol_free_list = *(struct Lisp_Symbol **)&symbol_free_list->value; } else { @@ -1788,8 +1787,8 @@ for (i = 0; i < lim; i++) if (!XMARKBIT (cblk->conses[i].car)) { - XSETFASTINT (cblk->conses[i].car, (EMACS_INT) cons_free_list); num_free++; + *(struct Lisp_Cons **)&cblk->conses[i].car = cons_free_list; cons_free_list = &cblk->conses[i]; } else @@ -1818,8 +1817,8 @@ for (i = 0; i < lim; i++) if (!XMARKBIT (fblk->floats[i].type)) { - XSETFASTINT (fblk->floats[i].type, (EMACS_INT) float_free_list); num_free++; + *(struct Lisp_Float **)&fblk->floats[i].type = float_free_list; float_free_list = &fblk->floats[i]; } else @@ -1882,7 +1881,7 @@ for (i = 0; i < lim; i++) if (!XMARKBIT (sblk->symbols[i].plist)) { - XSETFASTINT (sblk->symbols[i].value, (EMACS_INT) symbol_free_list); + *(struct Lisp_Symbol **)&sblk->symbols[i].value = symbol_free_list; symbol_free_list = &sblk->symbols[i]; num_free++; }