X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fruntime%2Fgc-common.c;h=a8f6aaf13ee99388611495bf6d857e5aa22498c3;hb=6ddaf294e5a7e3b1792ed1d9c342894c38538773;hp=a526dedd71262f763f4489a62a29898923847de6;hpb=79cc569a97e444389350ea3f5b1017374fe16bec;p=sbcl.git diff --git a/src/runtime/gc-common.c b/src/runtime/gc-common.c index a526ded..a8f6aaf 100644 --- a/src/runtime/gc-common.c +++ b/src/runtime/gc-common.c @@ -649,7 +649,7 @@ scav_instance(lispobj *where, lispobj object) { lispobj nuntagged; long ntotal = HeaderValue(object); - lispobj layout = ((struct instance *)native_pointer(where))->slots[0]; + lispobj layout = ((struct instance *)where)->slots[0]; if (!layout) return 1; @@ -1507,8 +1507,7 @@ size_weak_pointer(lispobj *where) void scan_weak_pointers(void) { struct weak_pointer *wp; - for (wp = weak_pointers; wp != NULL; - wp=(struct weak_pointer *)native_pointer(wp->next)) { + for (wp = weak_pointers; wp != NULL; wp=wp->next) { lispobj value = wp->value; lispobj *first_pointer; gc_assert(widetag_of(wp->header)==WEAK_POINTER_WIDETAG); @@ -1727,6 +1726,7 @@ gc_init_tables(void) scavtab[CHARACTER_WIDETAG] = scav_immediate; scavtab[SAP_WIDETAG] = scav_unboxed; scavtab[UNBOUND_MARKER_WIDETAG] = scav_immediate; + scavtab[NO_TLS_VALUE_MARKER_WIDETAG] = scav_immediate; scavtab[INSTANCE_HEADER_WIDETAG] = scav_instance; #ifdef LISP_FEATURE_SPARC scavtab[FDEFN_WIDETAG] = scav_boxed; @@ -1861,6 +1861,7 @@ gc_init_tables(void) transother[CHARACTER_WIDETAG] = trans_immediate; transother[SAP_WIDETAG] = trans_unboxed; transother[UNBOUND_MARKER_WIDETAG] = trans_immediate; + transother[NO_TLS_VALUE_MARKER_WIDETAG] = trans_immediate; transother[WEAK_POINTER_WIDETAG] = trans_weak_pointer; transother[INSTANCE_HEADER_WIDETAG] = trans_boxed; transother[FDEFN_WIDETAG] = trans_boxed; @@ -2000,6 +2001,7 @@ gc_init_tables(void) sizetab[CHARACTER_WIDETAG] = size_immediate; sizetab[SAP_WIDETAG] = size_unboxed; sizetab[UNBOUND_MARKER_WIDETAG] = size_immediate; + sizetab[NO_TLS_VALUE_MARKER_WIDETAG] = size_immediate; sizetab[WEAK_POINTER_WIDETAG] = size_weak_pointer; sizetab[INSTANCE_HEADER_WIDETAG] = size_boxed; sizetab[FDEFN_WIDETAG] = size_boxed;