xo-gc: MutationLogStore -> GCObjectStore

This commit is contained in:
Roland Conybeare 2026-04-06 19:37:11 -04:00
commit 5f9a81e668
4 changed files with 26 additions and 22 deletions

View file

@ -389,6 +389,10 @@ namespace xo {
**/
RootSet root_set_;
/** Collector-managed memory.
**/
GCObjectStore gco_store_;
/** "remembered sets": track pointers P->C that require special handling
* during a gc cycle where either:
* 1. xgen pointers g(P) > g(C):
@ -399,10 +403,6 @@ namespace xo {
**/
MutationLogStore mlog_store_;
/** Collector-managed memory.
**/
GCObjectStore gco_store_;
/** counters collected during @ref verify_ok call **/
X1VerifyStats verify_stats_;
};

View file

@ -26,7 +26,8 @@ namespace xo {
using size_type = DArena::size_type;
public:
explicit MutationLogStore(const MutationLogConfig & config);
explicit MutationLogStore(const MutationLogConfig & config,
GCObjectStore * gco_store);
/** Initialize mlog state
* with o/s page size @p page_z
@ -140,8 +141,7 @@ namespace xo {
* helper function to decide whether to keep a mutation log entry
* @return true iff mlog entry appended to @p keep_mlog
**/
bool _check_keep_mutation_aux(const GCObjectStore & gco_store,
const MutationLogEntry & from_entry,
bool _check_keep_mutation_aux(const MutationLogEntry & from_entry,
Generation parent_gen_to,
void * child_to,
MutationLog * keep_mlog);
@ -151,6 +151,11 @@ namespace xo {
/** configuration for mlog store **/
MutationLogConfig config_;
/** stores GCOs (gc-aware objects) owned by the incremental collector
* with this mutaiton-log store
**/
GCObjectStore * gco_store_ = nullptr;
/** Cross-generational mutations tracked in MutationLogs.
* We need three logs per generation:
* A. one to observe and remember mutations in to-space