From d8fbbb213e87390568a732b68042a9c796fafa77 Mon Sep 17 00:00:00 2001 From: Marius Gerbershagen Date: Sat, 28 Mar 2020 18:51:49 +0100 Subject: [PATCH] gc: fix type info for precise garbage collector mode --- CHANGELOG | 5 +++++ src/c/alloc_2.d | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index f6d611b43..7937d1a4a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -28,6 +28,11 @@ parameter given to configure script). * Pending changes since 20.4.24 +** Announcement +** Enhancements +** Issues fixed +- The generational and precise garbage collector modes work again +** API changes * 20.4.24 changes since 16.1.3 ** Announcement Dear Community, diff --git a/src/c/alloc_2.d b/src/c/alloc_2.d index a22233342..dc08b047d 100644 --- a/src/c/alloc_2.d +++ b/src/c/alloc_2.d @@ -924,8 +924,8 @@ init_alloc(void) type_info[t_doublefloat].descriptor = 0; type_info[t_longfloat].descriptor = 0; type_info[t_complex].descriptor = - to_bitmap(&o, &(o.complex.real)) | - to_bitmap(&o, &(o.complex.imag)); + to_bitmap(&o, &(o.gencomplex.real)) | + to_bitmap(&o, &(o.gencomplex.imag)); #ifdef ECL_COMPLEX_FLOAT type_info[t_csfloat].descriptor = 0; type_info[t_cdfloat].descriptor = 0; @@ -940,6 +940,8 @@ init_alloc(void) type_info[t_package].descriptor = to_bitmap(&o, &(o.pack.name)) | to_bitmap(&o, &(o.pack.nicknames)) | + to_bitmap(&o, &(o.pack.local_nicknames)) | + to_bitmap(&o, &(o.pack.nicknamedby)) | to_bitmap(&o, &(o.pack.shadowings)) | to_bitmap(&o, &(o.pack.uses)) | to_bitmap(&o, &(o.pack.usedby)) | @@ -947,6 +949,9 @@ init_alloc(void) to_bitmap(&o, &(o.pack.external)); type_info[t_hashtable].descriptor = to_bitmap(&o, &(o.hash.data)) | + to_bitmap(&o, &(o.hash.sync_lock)) | + to_bitmap(&o, &(o.hash.generic_test)) | + to_bitmap(&o, &(o.hash.generic_hash)) | to_bitmap(&o, &(o.hash.rehash_size)) | to_bitmap(&o, &(o.hash.threshold)); type_info[t_array].descriptor = @@ -1070,6 +1075,7 @@ init_alloc(void) to_bitmap(&o, &(o.cblock.name)) | to_bitmap(&o, &(o.cblock.links)) | to_bitmap(&o, &(o.cblock.source)) | + to_bitmap(&o, &(o.cblock.refs)) | to_bitmap(&o, &(o.cblock.error)); type_info[t_foreign].descriptor = to_bitmap(&o, &(o.foreign.data)) |