I have a bit more info. Here is my broken out code.
idx = 0;
{
LIST_LOOP_2 (var, varlist)
{
Lisp_Object *value = &temps[idx++];
EMACS_UINT sam = var.gu.type;
// SAM if (SYMBOLP (var))
// SAM if(RECORDP(var, symbol))
// SAM if(RECORD_TYPEP (var, lrecord_type_symbol))
// SAM if(LRECORDP (var) &&
if(sam == Lisp_Type_Record) {
if(((unsigned int)(XRECORD_LHEADER (var)->type)) == ((unsigned
int)(lrecord_type_symbol)))
*value = Qnil;
else
goto doit;
}
else
{
Lisp_Object tem;
doit:
I run XEmacs in gdb. After the crash:
(gdb) print var
$2 = {gu = {type = Lisp_Type_Int_Even, val = 1}, s = {bits = 1, val = 2}, u = {
bits = 1, val = 2}, ui = 5, i = 5, v = 0x5, cv = 0x5}
(gdb) print sam
$3 = 1
Something is very not right here.....
Cheers,
Sean
P.S. I am running the the Winder