lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [lmi] odd/any_member-opt ff0e80a 1/5: Remove unused any_me


From: Greg Chicares
Subject: [lmi-commits] [lmi] odd/any_member-opt ff0e80a 1/5: Remove unused any_member<>::object_ field
Date: Sun, 28 Mar 2021 13:53:15 -0400 (EDT)

branch: odd/any_member-opt
commit ff0e80aac9b8f0ddfd631666e41bce0129461ee0
Author: Vadim Zeitlin <vadim@tt-solutions.com>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>

    Remove unused any_member<>::object_ field
    
    The pointer to the object containing the member is already stored in the
    content_ field, there is no need to store it twice.
---
 any_member.hpp | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/any_member.hpp b/any_member.hpp
index 1bd2a80..e747ec3 100644
--- a/any_member.hpp
+++ b/any_member.hpp
@@ -268,7 +268,6 @@ class any_member final
     // any_entity required implementation.
     any_member& assign(std::string const&) override;
 
-    ClassType* object_;
     placeholder* content_;
 };
 
@@ -276,14 +275,12 @@ class any_member final
 
 template<typename ClassType>
 any_member<ClassType>::any_member()
-    :object_  {nullptr}
-    ,content_ {nullptr}
+    :content_ {nullptr}
 {}
 
 template<typename ClassType>
 any_member<ClassType>::any_member(any_member const& other)
     :any_entity {other}
-    ,object_    {other.object_}
     ,content_   {other.content_ ? other.content_->clone() : nullptr}
 {}
 
@@ -296,8 +293,7 @@ any_member<ClassType>::~any_member()
 template<typename ClassType>
 template<typename ValueType>
 any_member<ClassType>::any_member(ClassType* object, ValueType const& value)
-    :object_  {object}
-    ,content_ {::new holder<ClassType,ValueType>(object, value)}
+    :content_ {::new holder<ClassType,ValueType>(object, value)}
 {}
 
 template<typename ClassType>
@@ -370,9 +366,10 @@ ExactMemberType* any_member<ClassType>::exact_cast()
     typedef holder<ClassType,pmd_type> holder_type;
     LMI_ASSERT(content_);
 #if !defined LMI_MSC
-    pmd_type pmd = static_cast<holder_type*>(content_)->held_;
-    LMI_ASSERT(object_);
-    return &(object_->*pmd);
+    holder_type* const holder = static_cast<holder_type*>(content_);
+    pmd_type pmd = holder->held_;
+    LMI_ASSERT(holder->object_);
+    return &(holder->object_->*pmd);
 #else  // defined LMI_MSC
     return static_cast<ExactMemberType*>(content_->defraud());
 #endif // defined LMI_MSC



reply via email to

[Prev in Thread] Current Thread [Next in Thread]