2545 |
} |
} |
2546 |
|
|
2547 |
p = XSYMBOL (val); |
p = XSYMBOL (val); |
2548 |
p->name = XSTRING (name); |
p->xname = name; |
2549 |
p->plist = Qnil; |
p->plist = Qnil; |
2550 |
p->value = Qunbound; |
p->value = Qunbound; |
2551 |
p->function = Qunbound; |
p->function = Qunbound; |
4690 |
mark_object (&ptr->function); |
mark_object (&ptr->function); |
4691 |
mark_object (&ptr->plist); |
mark_object (&ptr->plist); |
4692 |
|
|
4693 |
if (!PURE_POINTER_P (ptr->name)) |
if (!PURE_POINTER_P (XSTRING (ptr->xname))) |
4694 |
MARK_STRING (ptr->name); |
MARK_STRING (XSTRING (ptr->xname)); |
4695 |
MARK_INTERVAL_TREE (ptr->name->intervals); |
MARK_INTERVAL_TREE (XSTRING (ptr->xname)->intervals); |
4696 |
|
|
4697 |
/* Note that we do not mark the obarray of the symbol. |
/* Note that we do not mark the obarray of the symbol. |
4698 |
It is safe not to do so because nothing accesses that |
It is safe not to do so because nothing accesses that |
5163 |
/* Check if the symbol was created during loadup. In such a case |
/* Check if the symbol was created during loadup. In such a case |
5164 |
it might be pointed to by pure bytecode which we don't trace, |
it might be pointed to by pure bytecode which we don't trace, |
5165 |
so we conservatively assume that it is live. */ |
so we conservatively assume that it is live. */ |
5166 |
int pure_p = PURE_POINTER_P (sym->name); |
int pure_p = PURE_POINTER_P (XSTRING (sym->xname)); |
5167 |
|
|
5168 |
if (!XMARKBIT (sym->plist) && !pure_p) |
if (!XMARKBIT (sym->plist) && !pure_p) |
5169 |
{ |
{ |
5178 |
{ |
{ |
5179 |
++num_used; |
++num_used; |
5180 |
if (!pure_p) |
if (!pure_p) |
5181 |
UNMARK_STRING (sym->name); |
UNMARK_STRING (XSTRING (sym->xname)); |
5182 |
XUNMARK (sym->plist); |
XUNMARK (sym->plist); |
5183 |
} |
} |
5184 |
} |
} |