Changeset 8248
- Timestamp:
- Jan 23, 2008, 12:48:36 AM (17 years ago)
- Location:
- trunk/source/lisp-kernel
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/lisp-kernel/ppc-gc.c
r7668 r8248 303 303 ((hash_table_vector_header *) base)->cache_key = undefined; 304 304 ((hash_table_vector_header *) base)->cache_value = lisp_nil; 305 } 306 deref(ptr_to_lispobj(base),1) = GCweakvll;307 GCweakvll =n;308 return; 305 deref(ptr_to_lispobj(base),1) = GCweakvll; 306 GCweakvll = n; 307 return; 308 } 309 309 } 310 310 … … 563 563 ((hash_table_vector_header *) base)->cache_key = undefined; 564 564 ((hash_table_vector_header *) base)->cache_value = lisp_nil; 565 } 566 deref(ptr_to_lispobj(base),1) = GCweakvll;567 GCweakvll =n;568 return; 565 deref(ptr_to_lispobj(base),1) = GCweakvll; 566 GCweakvll = n; 567 return; 568 } 569 569 } 570 570 … … 732 732 ((hash_table_vector_header *) base)->cache_key = undefined; 733 733 ((hash_table_vector_header *) base)->cache_value = lisp_nil; 734 } 735 736 deref(ptr_to_lispobj(base),1) = GCweakvll;737 GCweakvll = this;738 goto Climb; 734 735 deref(ptr_to_lispobj(base),1) = GCweakvll; 736 GCweakvll = this; 737 goto Climb; 738 } 739 739 } 740 740 … … 990 990 ((hash_table_vector_header *) start)->cache_key = undefined; 991 991 ((hash_table_vector_header *) start)->cache_value = lisp_nil; 992 } 993 994 start[1] = GCweakvll; 995 GCweakvll = (LispObj) (((natural) start) + fulltag_misc); 996 } else { 997 998 if (subtag == subtag_pool) { 999 start[1] = lisp_nil; 1000 } 1001 1002 if (subtag == subtag_weak) { 1003 natural weak_type = (natural) start[2]; 1004 if (weak_type >> population_termination_bit) 1005 element_count -= 2; 1006 else 1007 element_count -= 1; 1008 start[1] = GCweakvll; 1009 GCweakvll = (LispObj) (((natural) start) + fulltag_misc); 1010 } 1011 1012 base = start + element_count + 1; 1013 while(element_count--) { 1014 mark_root(*--base); 1015 } 1016 } 992 993 start[1] = GCweakvll; 994 GCweakvll = (LispObj) (((natural) start) + fulltag_misc); 995 element_count = 0; 996 } 997 } 998 if (subtag == subtag_pool) { 999 start[1] = lisp_nil; 1000 } 1001 1002 if (subtag == subtag_weak) { 1003 natural weak_type = (natural) start[2]; 1004 if (weak_type >> population_termination_bit) 1005 element_count -= 2; 1006 else 1007 element_count -= 1; 1008 start[1] = GCweakvll; 1009 GCweakvll = (LispObj) (((natural) start) + fulltag_misc); 1010 } 1011 1012 base = start + element_count + 1; 1013 while(element_count--) { 1014 mark_root(*--base); 1015 } 1017 1016 start += size; 1018 1017 } -
trunk/source/lisp-kernel/x86-gc.c
r8244 r8248 998 998 ((hash_table_vector_header *) start)->cache_key = undefined; 999 999 ((hash_table_vector_header *) start)->cache_value = lisp_nil; 1000 } 1001 1002 start[1] = GCweakvll; 1003 GCweakvll = (LispObj) (((natural) start) + fulltag_misc); 1004 } else { 1005 1006 if (subtag == subtag_pool) { 1007 start[1] = lisp_nil; 1008 } 1009 1010 if (subtag == subtag_weak) { 1011 natural weak_type = (natural) start[2]; 1012 if (weak_type >> population_termination_bit) 1013 element_count -= 2; 1014 else 1015 element_count -= 1; 1016 start[1] = GCweakvll; 1017 GCweakvll = (LispObj) (((natural) start) + fulltag_misc); 1018 } 1019 1020 base = start + element_count + 1; 1021 if (subtag == subtag_function) { 1022 element_count -= (int)start[1]; 1000 start[1] = GCweakvll; 1001 GCweakvll = (LispObj) (((natural) start) + fulltag_misc); 1002 element_count = 0; 1023 1003 } 1024 while(element_count--) { 1025 mark_root(*--base); 1026 } 1004 } 1005 if (subtag == subtag_pool) { 1006 start[1] = lisp_nil; 1007 } 1008 1009 if (subtag == subtag_weak) { 1010 natural weak_type = (natural) start[2]; 1011 if (weak_type >> population_termination_bit) 1012 element_count -= 2; 1013 else 1014 element_count -= 1; 1015 start[1] = GCweakvll; 1016 GCweakvll = (LispObj) (((natural) start) + fulltag_misc); 1017 } 1018 1019 base = start + element_count + 1; 1020 if (subtag == subtag_function) { 1021 element_count -= (int)start[1]; 1022 } 1023 while(element_count--) { 1024 mark_root(*--base); 1027 1025 } 1028 1026 start += size;
Note:
See TracChangeset
for help on using the changeset viewer.
