Mercurial > emacs
comparison src/alloc.c @ 1114:903883eed4de
* alloc.c (mark_object): mark a symbol's name after marking its
value, function, and property list rather than before; this way,
symbols' names are readable, giving us a chance to detect some
kinds of heap corruption.
| author | Jim Blandy <jimb@redhat.com> |
|---|---|
| date | Sun, 13 Sep 1992 12:14:54 +0000 |
| parents | 67bfadf24043 |
| children | 2b07af77d7ec |
comparison
equal
deleted
inserted
replaced
| 1113:0ffcf74fb8ad | 1114:903883eed4de |
|---|---|
| 1376 register struct Lisp_Symbol *ptr = XSYMBOL (obj); | 1376 register struct Lisp_Symbol *ptr = XSYMBOL (obj); |
| 1377 struct Lisp_Symbol *ptrx; | 1377 struct Lisp_Symbol *ptrx; |
| 1378 | 1378 |
| 1379 if (XMARKBIT (ptr->plist)) break; | 1379 if (XMARKBIT (ptr->plist)) break; |
| 1380 XMARK (ptr->plist); | 1380 XMARK (ptr->plist); |
| 1381 XSETTYPE (*(Lisp_Object *) &ptr->name, Lisp_String); | |
| 1382 mark_object (&ptr->name); | |
| 1383 mark_object ((Lisp_Object *) &ptr->value); | 1381 mark_object ((Lisp_Object *) &ptr->value); |
| 1384 mark_object (&ptr->function); | 1382 mark_object (&ptr->function); |
| 1385 mark_object (&ptr->plist); | 1383 mark_object (&ptr->plist); |
| 1384 XSETTYPE (*(Lisp_Object *) &ptr->name, Lisp_String); | |
| 1385 mark_object (&ptr->name); | |
| 1386 ptr = ptr->next; | 1386 ptr = ptr->next; |
| 1387 if (ptr) | 1387 if (ptr) |
| 1388 { | 1388 { |
| 1389 ptrx = ptr; /* Use pf ptrx avoids compiler bug on Sun */ | 1389 ptrx = ptr; /* Use pf ptrx avoids compiler bug on Sun */ |
| 1390 XSETSYMBOL (obj, ptrx); | 1390 XSETSYMBOL (obj, ptrx); |
