|
1 | 1 |
|
2 | 2 | void B___ext_init__() { |
3 | | - memset(B_boolD_gcbm, 0xFF, sizeof(B_boolD_gcbm)); |
4 | | - memset(B_complexD_gcbm, 0xFF, sizeof(B_complexD_gcbm)); |
5 | | - memset(B_dictD_gcbm, 0xFF, sizeof(B_dictD_gcbm)); |
6 | | - memset(B_floatD_gcbm, 0xFF, sizeof(B_floatD_gcbm)); |
7 | | - memset(B_i16D_gcbm, 0xFF, sizeof(B_i16D_gcbm)); |
8 | | - memset(B_i32D_gcbm, 0xFF, sizeof(B_i32D_gcbm)); |
9 | | - memset(B_i64D_gcbm, 0xFF, sizeof(B_i64D_gcbm)); |
10 | | - memset(B_intD_gcbm, 0xFF, sizeof(B_intD_gcbm)); |
11 | | - memset(B_listD_gcbm, 0xFF, sizeof(B_listD_gcbm)); |
12 | | - memset(B_rangeD_gcbm, 0xFF, sizeof(B_rangeD_gcbm)); |
13 | | - memset(B_setD_gcbm, 0xFF, sizeof(B_setD_gcbm)); |
14 | | - memset(B_sliceD_gcbm, 0xFF, sizeof(B_sliceD_gcbm)); |
15 | | - memset(B_strD_gcbm, 0xFF, sizeof(B_strD_gcbm)); |
16 | | - memset(B_bytearrayD_gcbm, 0xFF, sizeof(B_bytearrayD_gcbm)); |
17 | | - memset(B_bytesD_gcbm, 0xFF, sizeof(B_bytesD_gcbm)); |
18 | | - memset(B_u16D_gcbm, 0xFF, sizeof(B_u16D_gcbm)); |
19 | | - memset(B_u32D_gcbm, 0xFF, sizeof(B_u32D_gcbm)); |
20 | | - memset(B_u64D_gcbm, 0xFF, sizeof(B_u64D_gcbm)); |
| 3 | + // Here is a list of things that have no fields that need to be scanned. It |
| 4 | + // is noted down as an explicit negative list of things so we don't have to |
| 5 | + // think "did we miss this". No, we did not, it just does not need scanning |
| 6 | + // and the GC bitmap is already initialized to 0 due to the GC malloc |
| 7 | + // actually being a calloc. |
| 8 | + // - B_bool / B_boolD_gcbm |
| 9 | + // - B_complex / B_complexD_gcbm |
| 10 | + // - B_float / B_floatD_gcbm |
| 11 | + // - B_i16 / B_i16D_gcbm |
| 12 | + // - B_i32 / B_i32D_gcbm |
| 13 | + // - B_i64 / B_i64D_gcbm |
| 14 | + // - B_u16 / B_u16D_gcbm |
| 15 | + // - B_u32 / B_u32D_gcbm |
| 16 | + // - B_u64 / B_u64D_gcbm |
| 17 | + // - B_range / B_rangeD_gcbm |
| 18 | + GC_set_bit(B_bytearrayD_gcbm, GC_WORD_OFFSET(struct B_bytearray, str)); |
| 19 | + GC_set_bit(B_bytesD_gcbm, GC_WORD_OFFSET(struct B_bytes, str)); |
| 20 | + GC_set_bit(B_dictD_gcbm, GC_WORD_OFFSET(struct B_dict, table)); |
| 21 | + GC_set_bit(B_intD_gcbm, GC_WORD_OFFSET(struct B_int, val.n)); |
| 22 | + GC_set_bit(B_listD_gcbm, GC_WORD_OFFSET(struct B_list, data)); |
| 23 | + GC_set_bit(B_setD_gcbm, GC_WORD_OFFSET(struct B_set, table)); |
| 24 | + GC_set_bit(B_sliceD_gcbm, GC_WORD_OFFSET(struct B_slice, start)); |
| 25 | + GC_set_bit(B_sliceD_gcbm, GC_WORD_OFFSET(struct B_slice, step)); |
| 26 | + GC_set_bit(B_sliceD_gcbm, GC_WORD_OFFSET(struct B_slice, stop)); |
| 27 | + GC_set_bit(B_strD_gcbm, GC_WORD_OFFSET(struct B_str, str)); |
21 | 28 |
|
22 | 29 | B_HashableD_intG_methods.__eq__ = (B_bool (*)(B_HashableD_int, B_int, B_int))B_OrdD_intD___eq__; |
23 | 30 | B_HashableD_i64G_methods.__eq__ = (B_bool (*)(B_HashableD_i64, B_i64, B_i64))B_OrdD_i64D___eq__; |
|
0 commit comments