From c0e61744bbbafbd350a58fff25452542aad5b444 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Sun, 15 Feb 2026 14:26:33 -0500 Subject: [PATCH] xo-interpreter2 stack: mark non-trivial dtors b/c DGlobalSymtab --- include/xo/reader2/ParserStateMachine.hpp | 9 ++++++--- include/xo/reader2/SchematikaParser.hpp | 3 +++ include/xo/reader2/SchematikaReader.hpp | 3 +++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/include/xo/reader2/ParserStateMachine.hpp b/include/xo/reader2/ParserStateMachine.hpp index 74a3e9bb..38cff2b8 100644 --- a/include/xo/reader2/ParserStateMachine.hpp +++ b/include/xo/reader2/ParserStateMachine.hpp @@ -57,6 +57,9 @@ namespace xo { obj expr_alloc, obj aux_alloc); + /** non-trivial dtor for @ref global_symtab_ **/ + ~ParserStateMachine() = default; + /** @defgroup scm-parserstatemachine-accessors accessor methods **/ ///@{ @@ -313,12 +316,12 @@ namespace xo { **/ DLocalSymtab * local_symtab_ = nullptr; -#ifdef NOT_YET /** global symbol table. * Toplevel definitions go here. + * + * Uses mmap -> non-trivial destructor. **/ - DGlobalSymtab * global_symtab_ = nullptr; -#endif + dp global_symtab_; /** current output from parser **/ ParserResult result_; diff --git a/include/xo/reader2/SchematikaParser.hpp b/include/xo/reader2/SchematikaParser.hpp index 13cb18ee..ee86e6d5 100644 --- a/include/xo/reader2/SchematikaParser.hpp +++ b/include/xo/reader2/SchematikaParser.hpp @@ -178,6 +178,9 @@ namespace xo { obj aux_alloc, bool debug_flag); + /** non-trivial dtor because of @ref psm_ **/ + ~SchematikaParser() = default; + /** scm-schematikaparser-access-methods **/ ///@{ diff --git a/include/xo/reader2/SchematikaReader.hpp b/include/xo/reader2/SchematikaReader.hpp index 6f2b325e..73b8166b 100644 --- a/include/xo/reader2/SchematikaReader.hpp +++ b/include/xo/reader2/SchematikaReader.hpp @@ -51,6 +51,9 @@ namespace xo { obj expr_alloc, obj fixed_alloc); + /** non-trivial dtor because of @p parser **/ + ~SchematikaReader() = default; + /** visit reader-owned memory pools; call visitor(info) for each. * Specifically exclude expr_alloc, since we don't consider * that reader-owned