From d2aa0d0c55165e39087734d768115395632753f8 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Sat, 4 Apr 2026 14:38:14 -0400 Subject: [PATCH] refactor: make AGCObject.shallow_copy() non-const prep for moving to ACollector interface --- include/xo/expression2/DDefineExpr.hpp | 2 +- include/xo/expression2/DLocalSymtab.hpp | 2 +- include/xo/expression2/DTypename.hpp | 2 +- include/xo/expression2/define/IGCObject_DDefineExpr.hpp | 4 ++-- include/xo/expression2/detail/AExpression.hpp | 5 +++++ include/xo/expression2/detail/IGCObject_DApplyExpr.hpp | 4 ++-- include/xo/expression2/detail/IGCObject_DConstant.hpp | 4 ++-- include/xo/expression2/detail/IGCObject_DIfElseExpr.hpp | 4 ++-- include/xo/expression2/detail/IGCObject_DLambdaExpr.hpp | 4 ++-- include/xo/expression2/detail/IGCObject_DSequenceExpr.hpp | 4 ++-- include/xo/expression2/detail/IGCObject_DVarRef.hpp | 4 ++-- include/xo/expression2/symtab/ASymbolTable.hpp | 5 +++++ include/xo/expression2/symtab/IGCObject_DGlobalSymtab.hpp | 4 ++-- include/xo/expression2/symtab/IGCObject_DLocalSymtab.hpp | 4 ++-- include/xo/expression2/typename/IGCObject_DTypename.hpp | 4 ++-- include/xo/expression2/variable/IGCObject_DVariable.hpp | 4 ++-- src/expression2/DDefineExpr.cpp | 2 +- src/expression2/DLocalSymtab.cpp | 2 +- src/expression2/DTypename.cpp | 2 +- src/expression2/IGCObject_DApplyExpr.cpp | 3 +-- src/expression2/IGCObject_DConstant.cpp | 3 +-- src/expression2/IGCObject_DDefineExpr.cpp | 3 +-- src/expression2/IGCObject_DGlobalSymtab.cpp | 3 +-- src/expression2/IGCObject_DIfElseExpr.cpp | 3 +-- src/expression2/IGCObject_DLambdaExpr.cpp | 3 +-- src/expression2/IGCObject_DLocalSymtab.cpp | 3 +-- src/expression2/IGCObject_DSequenceExpr.cpp | 3 +-- src/expression2/IGCObject_DTypename.cpp | 3 +-- src/expression2/IGCObject_DVarRef.cpp | 3 +-- src/expression2/facet/IGCObject_DVariable.cpp | 3 +-- 30 files changed, 49 insertions(+), 50 deletions(-) diff --git a/include/xo/expression2/DDefineExpr.hpp b/include/xo/expression2/DDefineExpr.hpp index 6ad8494f..34a4baa5 100644 --- a/include/xo/expression2/DDefineExpr.hpp +++ b/include/xo/expression2/DDefineExpr.hpp @@ -73,7 +73,7 @@ namespace xo { ///@{ std::size_t shallow_size() const noexcept; - DDefineExpr * shallow_copy(obj mm) const noexcept; + DDefineExpr * shallow_copy(obj mm) noexcept; std::size_t forward_children(obj gc) noexcept; ///@} diff --git a/include/xo/expression2/DLocalSymtab.hpp b/include/xo/expression2/DLocalSymtab.hpp index c5de7878..0d32472b 100644 --- a/include/xo/expression2/DLocalSymtab.hpp +++ b/include/xo/expression2/DLocalSymtab.hpp @@ -98,7 +98,7 @@ namespace xo { ///@{ std::size_t shallow_size() const noexcept; - DLocalSymtab * shallow_copy(obj mm) const noexcept; + DLocalSymtab * shallow_copy(obj mm) noexcept; std::size_t forward_children(obj gc) noexcept; ///@} diff --git a/include/xo/expression2/DTypename.hpp b/include/xo/expression2/DTypename.hpp index 1d9d0629..eeee5dbb 100644 --- a/include/xo/expression2/DTypename.hpp +++ b/include/xo/expression2/DTypename.hpp @@ -54,7 +54,7 @@ namespace xo { ///@{ size_t shallow_size() const noexcept; - DTypename * shallow_copy(obj mm) const noexcept; + DTypename * shallow_copy(obj mm) noexcept; size_t forward_children(obj gc) noexcept; ///@} diff --git a/include/xo/expression2/define/IGCObject_DDefineExpr.hpp b/include/xo/expression2/define/IGCObject_DDefineExpr.hpp index 8e516773..cf4e3062 100644 --- a/include/xo/expression2/define/IGCObject_DDefineExpr.hpp +++ b/include/xo/expression2/define/IGCObject_DDefineExpr.hpp @@ -52,10 +52,10 @@ namespace xo { // const methods /** memory consumption for this instance **/ static size_type shallow_size(const DDefineExpr & self) noexcept; - /** copy instance using allocator **/ - static Opaque shallow_copy(const DDefineExpr & self, obj mm) noexcept; // non-const methods + /** copy instance using allocator **/ + static Opaque shallow_copy(DDefineExpr & self, obj mm) noexcept; /** during GC: forward immdiate children **/ static size_type forward_children(DDefineExpr & self, obj gc) noexcept; ///@} diff --git a/include/xo/expression2/detail/AExpression.hpp b/include/xo/expression2/detail/AExpression.hpp index 96d68a65..e615fb46 100644 --- a/include/xo/expression2/detail/AExpression.hpp +++ b/include/xo/expression2/detail/AExpression.hpp @@ -48,6 +48,11 @@ public: /** @defgroup scm-expression-methods **/ ///@{ // const methods + /** An uninitialized AExpression instance will have zero vtable pointer (per {linux,osx} abi). + * Use case for this is narrow. We go to some lengths to avoid null vtable pointers. For example + * obj will have non-null vtable (via IFacet_Any) with all methods terminating. + **/ + bool _has_null_vptr() const noexcept { return *reinterpret_cast(this) == nullptr; } /** RTTI: unique id# for actual runtime data representation **/ virtual typeseq _typeseq() const noexcept = 0; /** destroy instance @p d; calls c++ dtor only for actual runtime type; does not recover memory **/ diff --git a/include/xo/expression2/detail/IGCObject_DApplyExpr.hpp b/include/xo/expression2/detail/IGCObject_DApplyExpr.hpp index effcd01c..a1675363 100644 --- a/include/xo/expression2/detail/IGCObject_DApplyExpr.hpp +++ b/include/xo/expression2/detail/IGCObject_DApplyExpr.hpp @@ -52,10 +52,10 @@ namespace xo { // const methods /** memory consumption for this instance **/ static size_type shallow_size(const DApplyExpr & self) noexcept; - /** copy instance using allocator **/ - static Opaque shallow_copy(const DApplyExpr & self, obj mm) noexcept; // non-const methods + /** copy instance using allocator **/ + static Opaque shallow_copy(DApplyExpr & self, obj mm) noexcept; /** during GC: forward immdiate children **/ static size_type forward_children(DApplyExpr & self, obj gc) noexcept; ///@} diff --git a/include/xo/expression2/detail/IGCObject_DConstant.hpp b/include/xo/expression2/detail/IGCObject_DConstant.hpp index 608d4d6a..68404957 100644 --- a/include/xo/expression2/detail/IGCObject_DConstant.hpp +++ b/include/xo/expression2/detail/IGCObject_DConstant.hpp @@ -52,10 +52,10 @@ namespace xo { // const methods /** memory consumption for this instance **/ static size_type shallow_size(const DConstant & self) noexcept; - /** copy instance using allocator **/ - static Opaque shallow_copy(const DConstant & self, obj mm) noexcept; // non-const methods + /** copy instance using allocator **/ + static Opaque shallow_copy(DConstant & self, obj mm) noexcept; /** during GC: forward immdiate children **/ static size_type forward_children(DConstant & self, obj gc) noexcept; ///@} diff --git a/include/xo/expression2/detail/IGCObject_DIfElseExpr.hpp b/include/xo/expression2/detail/IGCObject_DIfElseExpr.hpp index 63fdb6ee..1e1fcca5 100644 --- a/include/xo/expression2/detail/IGCObject_DIfElseExpr.hpp +++ b/include/xo/expression2/detail/IGCObject_DIfElseExpr.hpp @@ -52,10 +52,10 @@ namespace xo { // const methods /** memory consumption for this instance **/ static size_type shallow_size(const DIfElseExpr & self) noexcept; - /** copy instance using allocator **/ - static Opaque shallow_copy(const DIfElseExpr & self, obj mm) noexcept; // non-const methods + /** copy instance using allocator **/ + static Opaque shallow_copy(DIfElseExpr & self, obj mm) noexcept; /** during GC: forward immdiate children **/ static size_type forward_children(DIfElseExpr & self, obj gc) noexcept; ///@} diff --git a/include/xo/expression2/detail/IGCObject_DLambdaExpr.hpp b/include/xo/expression2/detail/IGCObject_DLambdaExpr.hpp index 91bb24da..f33e9ed7 100644 --- a/include/xo/expression2/detail/IGCObject_DLambdaExpr.hpp +++ b/include/xo/expression2/detail/IGCObject_DLambdaExpr.hpp @@ -52,10 +52,10 @@ namespace xo { // const methods /** memory consumption for this instance **/ static size_type shallow_size(const DLambdaExpr & self) noexcept; - /** copy instance using allocator **/ - static Opaque shallow_copy(const DLambdaExpr & self, obj mm) noexcept; // non-const methods + /** copy instance using allocator **/ + static Opaque shallow_copy(DLambdaExpr & self, obj mm) noexcept; /** during GC: forward immdiate children **/ static size_type forward_children(DLambdaExpr & self, obj gc) noexcept; ///@} diff --git a/include/xo/expression2/detail/IGCObject_DSequenceExpr.hpp b/include/xo/expression2/detail/IGCObject_DSequenceExpr.hpp index 20d21159..7648aab3 100644 --- a/include/xo/expression2/detail/IGCObject_DSequenceExpr.hpp +++ b/include/xo/expression2/detail/IGCObject_DSequenceExpr.hpp @@ -52,10 +52,10 @@ namespace xo { // const methods /** memory consumption for this instance **/ static size_type shallow_size(const DSequenceExpr & self) noexcept; - /** copy instance using allocator **/ - static Opaque shallow_copy(const DSequenceExpr & self, obj mm) noexcept; // non-const methods + /** copy instance using allocator **/ + static Opaque shallow_copy(DSequenceExpr & self, obj mm) noexcept; /** during GC: forward immdiate children **/ static size_type forward_children(DSequenceExpr & self, obj gc) noexcept; ///@} diff --git a/include/xo/expression2/detail/IGCObject_DVarRef.hpp b/include/xo/expression2/detail/IGCObject_DVarRef.hpp index 228e74c0..c5ca5f19 100644 --- a/include/xo/expression2/detail/IGCObject_DVarRef.hpp +++ b/include/xo/expression2/detail/IGCObject_DVarRef.hpp @@ -52,10 +52,10 @@ namespace xo { // const methods /** memory consumption for this instance **/ static size_type shallow_size(const DVarRef & self) noexcept; - /** copy instance using allocator **/ - static Opaque shallow_copy(const DVarRef & self, obj mm) noexcept; // non-const methods + /** copy instance using allocator **/ + static Opaque shallow_copy(DVarRef & self, obj mm) noexcept; /** during GC: forward immdiate children **/ static size_type forward_children(DVarRef & self, obj gc) noexcept; ///@} diff --git a/include/xo/expression2/symtab/ASymbolTable.hpp b/include/xo/expression2/symtab/ASymbolTable.hpp index 59cf246f..40349861 100644 --- a/include/xo/expression2/symtab/ASymbolTable.hpp +++ b/include/xo/expression2/symtab/ASymbolTable.hpp @@ -45,6 +45,11 @@ public: /** @defgroup scm-symboltable-methods **/ ///@{ // const methods + /** An uninitialized ASymbolTable instance will have zero vtable pointer (per {linux,osx} abi). + * Use case for this is narrow. We go to some lengths to avoid null vtable pointers. For example + * obj will have non-null vtable (via IFacet_Any) with all methods terminating. + **/ + bool _has_null_vptr() const noexcept { return *reinterpret_cast(this) == nullptr; } /** RTTI: unique id# for actual runtime data representation **/ virtual typeseq _typeseq() const noexcept = 0; /** destroy instance @p d; calls c++ dtor only for actual runtime type; does not recover memory **/ diff --git a/include/xo/expression2/symtab/IGCObject_DGlobalSymtab.hpp b/include/xo/expression2/symtab/IGCObject_DGlobalSymtab.hpp index fe487e1a..cf444eb8 100644 --- a/include/xo/expression2/symtab/IGCObject_DGlobalSymtab.hpp +++ b/include/xo/expression2/symtab/IGCObject_DGlobalSymtab.hpp @@ -52,10 +52,10 @@ namespace xo { // const methods /** memory consumption for this instance **/ static size_type shallow_size(const DGlobalSymtab & self) noexcept; - /** copy instance using allocator **/ - static Opaque shallow_copy(const DGlobalSymtab & self, obj mm) noexcept; // non-const methods + /** copy instance using allocator **/ + static Opaque shallow_copy(DGlobalSymtab & self, obj mm) noexcept; /** during GC: forward immdiate children **/ static size_type forward_children(DGlobalSymtab & self, obj gc) noexcept; ///@} diff --git a/include/xo/expression2/symtab/IGCObject_DLocalSymtab.hpp b/include/xo/expression2/symtab/IGCObject_DLocalSymtab.hpp index 6c0ec0c7..d91f214a 100644 --- a/include/xo/expression2/symtab/IGCObject_DLocalSymtab.hpp +++ b/include/xo/expression2/symtab/IGCObject_DLocalSymtab.hpp @@ -52,10 +52,10 @@ namespace xo { // const methods /** memory consumption for this instance **/ static size_type shallow_size(const DLocalSymtab & self) noexcept; - /** copy instance using allocator **/ - static Opaque shallow_copy(const DLocalSymtab & self, obj mm) noexcept; // non-const methods + /** copy instance using allocator **/ + static Opaque shallow_copy(DLocalSymtab & self, obj mm) noexcept; /** during GC: forward immdiate children **/ static size_type forward_children(DLocalSymtab & self, obj gc) noexcept; ///@} diff --git a/include/xo/expression2/typename/IGCObject_DTypename.hpp b/include/xo/expression2/typename/IGCObject_DTypename.hpp index f01740d4..d2302a6f 100644 --- a/include/xo/expression2/typename/IGCObject_DTypename.hpp +++ b/include/xo/expression2/typename/IGCObject_DTypename.hpp @@ -50,10 +50,10 @@ namespace xo { // const methods /** memory consumption for this instance **/ static size_type shallow_size(const DTypename & self) noexcept; - /** copy instance using allocator **/ - static Opaque shallow_copy(const DTypename & self, obj mm) noexcept; // non-const methods + /** copy instance using allocator **/ + static Opaque shallow_copy(DTypename & self, obj mm) noexcept; /** during GC: forward immdiate children **/ static size_type forward_children(DTypename & self, obj gc) noexcept; ///@} diff --git a/include/xo/expression2/variable/IGCObject_DVariable.hpp b/include/xo/expression2/variable/IGCObject_DVariable.hpp index 0b23f630..1bdb2a0f 100644 --- a/include/xo/expression2/variable/IGCObject_DVariable.hpp +++ b/include/xo/expression2/variable/IGCObject_DVariable.hpp @@ -52,10 +52,10 @@ namespace xo { // const methods /** memory consumption for this instance **/ static size_type shallow_size(const DVariable & self) noexcept; - /** copy instance using allocator **/ - static Opaque shallow_copy(const DVariable & self, obj mm) noexcept; // non-const methods + /** copy instance using allocator **/ + static Opaque shallow_copy(DVariable & self, obj mm) noexcept; /** during GC: forward immdiate children **/ static size_type forward_children(DVariable & self, obj gc) noexcept; ///@} diff --git a/src/expression2/DDefineExpr.cpp b/src/expression2/DDefineExpr.cpp index aa1ea105..e5ec63b0 100644 --- a/src/expression2/DDefineExpr.cpp +++ b/src/expression2/DDefineExpr.cpp @@ -85,7 +85,7 @@ namespace xo { } DDefineExpr * - DDefineExpr::shallow_copy(obj mm) const noexcept + DDefineExpr::shallow_copy(obj mm) noexcept { return mm.std_copy_for(this); } diff --git a/src/expression2/DLocalSymtab.cpp b/src/expression2/DLocalSymtab.cpp index 539d5d78..14dd9262 100644 --- a/src/expression2/DLocalSymtab.cpp +++ b/src/expression2/DLocalSymtab.cpp @@ -119,7 +119,7 @@ namespace xo { } DLocalSymtab * - DLocalSymtab::shallow_copy(obj mm) const noexcept + DLocalSymtab::shallow_copy(obj mm) noexcept { return mm.std_copy_for(this); } diff --git a/src/expression2/DTypename.cpp b/src/expression2/DTypename.cpp index fd62336b..36c9e74f 100644 --- a/src/expression2/DTypename.cpp +++ b/src/expression2/DTypename.cpp @@ -47,7 +47,7 @@ namespace xo { } DTypename * - DTypename::shallow_copy(obj mm) const noexcept + DTypename::shallow_copy(obj mm) noexcept { return mm.std_copy_for(this); } diff --git a/src/expression2/IGCObject_DApplyExpr.cpp b/src/expression2/IGCObject_DApplyExpr.cpp index ad6571e0..fe587a2d 100644 --- a/src/expression2/IGCObject_DApplyExpr.cpp +++ b/src/expression2/IGCObject_DApplyExpr.cpp @@ -22,11 +22,10 @@ namespace xo { } auto - IGCObject_DApplyExpr::shallow_copy(const DApplyExpr & self, obj mm) noexcept -> Opaque + IGCObject_DApplyExpr::shallow_copy(DApplyExpr & self, obj mm) noexcept -> Opaque { return self.shallow_copy(mm); } - auto IGCObject_DApplyExpr::forward_children(DApplyExpr & self, obj gc) noexcept -> size_type { diff --git a/src/expression2/IGCObject_DConstant.cpp b/src/expression2/IGCObject_DConstant.cpp index ea3be262..73453419 100644 --- a/src/expression2/IGCObject_DConstant.cpp +++ b/src/expression2/IGCObject_DConstant.cpp @@ -22,11 +22,10 @@ namespace xo { } auto - IGCObject_DConstant::shallow_copy(const DConstant & self, obj mm) noexcept -> Opaque + IGCObject_DConstant::shallow_copy(DConstant & self, obj mm) noexcept -> Opaque { return self.shallow_copy(mm); } - auto IGCObject_DConstant::forward_children(DConstant & self, obj gc) noexcept -> size_type { diff --git a/src/expression2/IGCObject_DDefineExpr.cpp b/src/expression2/IGCObject_DDefineExpr.cpp index eb43932b..ffbd4bc8 100644 --- a/src/expression2/IGCObject_DDefineExpr.cpp +++ b/src/expression2/IGCObject_DDefineExpr.cpp @@ -22,11 +22,10 @@ namespace xo { } auto - IGCObject_DDefineExpr::shallow_copy(const DDefineExpr & self, obj mm) noexcept -> Opaque + IGCObject_DDefineExpr::shallow_copy(DDefineExpr & self, obj mm) noexcept -> Opaque { return self.shallow_copy(mm); } - auto IGCObject_DDefineExpr::forward_children(DDefineExpr & self, obj gc) noexcept -> size_type { diff --git a/src/expression2/IGCObject_DGlobalSymtab.cpp b/src/expression2/IGCObject_DGlobalSymtab.cpp index d59e6bbf..f88060cb 100644 --- a/src/expression2/IGCObject_DGlobalSymtab.cpp +++ b/src/expression2/IGCObject_DGlobalSymtab.cpp @@ -22,11 +22,10 @@ namespace xo { } auto - IGCObject_DGlobalSymtab::shallow_copy(const DGlobalSymtab & self, obj mm) noexcept -> Opaque + IGCObject_DGlobalSymtab::shallow_copy(DGlobalSymtab & self, obj mm) noexcept -> Opaque { return self.shallow_copy(mm); } - auto IGCObject_DGlobalSymtab::forward_children(DGlobalSymtab & self, obj gc) noexcept -> size_type { diff --git a/src/expression2/IGCObject_DIfElseExpr.cpp b/src/expression2/IGCObject_DIfElseExpr.cpp index 8a0f03d5..a861dbc4 100644 --- a/src/expression2/IGCObject_DIfElseExpr.cpp +++ b/src/expression2/IGCObject_DIfElseExpr.cpp @@ -22,11 +22,10 @@ namespace xo { } auto - IGCObject_DIfElseExpr::shallow_copy(const DIfElseExpr & self, obj mm) noexcept -> Opaque + IGCObject_DIfElseExpr::shallow_copy(DIfElseExpr & self, obj mm) noexcept -> Opaque { return self.shallow_copy(mm); } - auto IGCObject_DIfElseExpr::forward_children(DIfElseExpr & self, obj gc) noexcept -> size_type { diff --git a/src/expression2/IGCObject_DLambdaExpr.cpp b/src/expression2/IGCObject_DLambdaExpr.cpp index c7724cd5..be64dab3 100644 --- a/src/expression2/IGCObject_DLambdaExpr.cpp +++ b/src/expression2/IGCObject_DLambdaExpr.cpp @@ -22,11 +22,10 @@ namespace xo { } auto - IGCObject_DLambdaExpr::shallow_copy(const DLambdaExpr & self, obj mm) noexcept -> Opaque + IGCObject_DLambdaExpr::shallow_copy(DLambdaExpr & self, obj mm) noexcept -> Opaque { return self.shallow_copy(mm); } - auto IGCObject_DLambdaExpr::forward_children(DLambdaExpr & self, obj gc) noexcept -> size_type { diff --git a/src/expression2/IGCObject_DLocalSymtab.cpp b/src/expression2/IGCObject_DLocalSymtab.cpp index ca96d3b6..eb3e06c3 100644 --- a/src/expression2/IGCObject_DLocalSymtab.cpp +++ b/src/expression2/IGCObject_DLocalSymtab.cpp @@ -22,11 +22,10 @@ namespace xo { } auto - IGCObject_DLocalSymtab::shallow_copy(const DLocalSymtab & self, obj mm) noexcept -> Opaque + IGCObject_DLocalSymtab::shallow_copy(DLocalSymtab & self, obj mm) noexcept -> Opaque { return self.shallow_copy(mm); } - auto IGCObject_DLocalSymtab::forward_children(DLocalSymtab & self, obj gc) noexcept -> size_type { diff --git a/src/expression2/IGCObject_DSequenceExpr.cpp b/src/expression2/IGCObject_DSequenceExpr.cpp index 54ad1bd5..bbcf9084 100644 --- a/src/expression2/IGCObject_DSequenceExpr.cpp +++ b/src/expression2/IGCObject_DSequenceExpr.cpp @@ -22,11 +22,10 @@ namespace xo { } auto - IGCObject_DSequenceExpr::shallow_copy(const DSequenceExpr & self, obj mm) noexcept -> Opaque + IGCObject_DSequenceExpr::shallow_copy(DSequenceExpr & self, obj mm) noexcept -> Opaque { return self.shallow_copy(mm); } - auto IGCObject_DSequenceExpr::forward_children(DSequenceExpr & self, obj gc) noexcept -> size_type { diff --git a/src/expression2/IGCObject_DTypename.cpp b/src/expression2/IGCObject_DTypename.cpp index 2b898fbf..f9c40e81 100644 --- a/src/expression2/IGCObject_DTypename.cpp +++ b/src/expression2/IGCObject_DTypename.cpp @@ -22,11 +22,10 @@ namespace xo { } auto - IGCObject_DTypename::shallow_copy(const DTypename & self, obj mm) noexcept -> Opaque + IGCObject_DTypename::shallow_copy(DTypename & self, obj mm) noexcept -> Opaque { return self.shallow_copy(mm); } - auto IGCObject_DTypename::forward_children(DTypename & self, obj gc) noexcept -> size_type { diff --git a/src/expression2/IGCObject_DVarRef.cpp b/src/expression2/IGCObject_DVarRef.cpp index 61596baa..788e0a00 100644 --- a/src/expression2/IGCObject_DVarRef.cpp +++ b/src/expression2/IGCObject_DVarRef.cpp @@ -22,11 +22,10 @@ namespace xo { } auto - IGCObject_DVarRef::shallow_copy(const DVarRef & self, obj mm) noexcept -> Opaque + IGCObject_DVarRef::shallow_copy(DVarRef & self, obj mm) noexcept -> Opaque { return self.shallow_copy(mm); } - auto IGCObject_DVarRef::forward_children(DVarRef & self, obj gc) noexcept -> size_type { diff --git a/src/expression2/facet/IGCObject_DVariable.cpp b/src/expression2/facet/IGCObject_DVariable.cpp index e0dc04f7..0bf7915d 100644 --- a/src/expression2/facet/IGCObject_DVariable.cpp +++ b/src/expression2/facet/IGCObject_DVariable.cpp @@ -22,11 +22,10 @@ namespace xo { } auto - IGCObject_DVariable::shallow_copy(const DVariable & self, obj mm) noexcept -> Opaque + IGCObject_DVariable::shallow_copy(DVariable & self, obj mm) noexcept -> Opaque { return self.shallow_copy(mm); } - auto IGCObject_DVariable::forward_children(DVariable & self, obj gc) noexcept -> size_type {