From e2a5c1ffc800b50b10a198db0ec1d97aaaa6712c Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 28 Apr 2022 00:36:40 +0200 Subject: [PATCH] Don't provide wxSharedClientDataContainer::m_data accessors This is not really necessary and breaks encapsulation of this private method. It is enough to provide just a way to copy the data from another object as this is all that the derived classes really need. --- include/wx/clntdata.h | 6 ++++-- src/common/clntdata.cpp | 4 ++-- src/generic/grid.cpp | 6 +++--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/include/wx/clntdata.h b/include/wx/clntdata.h index a6899cab5b..a340575191 100644 --- a/include/wx/clntdata.h +++ b/include/wx/clntdata.h @@ -181,8 +181,10 @@ public: protected: bool HasClientDataContainer() const { return m_data.get() != NULL; } - wxSharedPtr GetClientDataContainer() const { return m_data; } - void SetClientDataContainer(wxSharedPtr data) { m_data = data; } + void CopyClientDataContainer(const wxSharedClientDataContainer& other) + { + m_data = other.m_data; + } private: // Helper function that will create m_data if it is currently NULL diff --git a/src/common/clntdata.cpp b/src/common/clntdata.cpp index 2caad76c70..7e964b7de1 100644 --- a/src/common/clntdata.cpp +++ b/src/common/clntdata.cpp @@ -79,7 +79,7 @@ void wxSharedClientDataContainer::SetClientObject(wxClientData *data) wxClientData *wxSharedClientDataContainer::GetClientObject() const { - return HasClientDataContainer() ? GetClientDataContainer()->GetClientObject() : NULL; + return HasClientDataContainer() ? m_data->GetClientObject() : NULL; } void wxSharedClientDataContainer::SetClientData(void *data) @@ -89,7 +89,7 @@ void wxSharedClientDataContainer::SetClientData(void *data) void *wxSharedClientDataContainer::GetClientData() const { - return HasClientDataContainer() ? GetClientDataContainer()->GetClientData() : NULL; + return HasClientDataContainer() ? m_data->GetClientData() : NULL; } wxClientDataContainer *wxSharedClientDataContainer::GetValidClientData() diff --git a/src/generic/grid.cpp b/src/generic/grid.cpp index 02ad59fd83..92cc045492 100644 --- a/src/generic/grid.cpp +++ b/src/generic/grid.cpp @@ -255,7 +255,7 @@ int wxGridColumnOperations::GetFirstLine(const wxGrid *grid, wxGridWindow *gridW wxGridCellWorker::wxGridCellWorker(const wxGridCellWorker& other) { - SetClientDataContainer(other.GetClientDataContainer()); + CopyClientDataContainer(other); } void wxGridCellWorker::SetParameters(const wxString& WXUNUSED(params)) @@ -450,7 +450,7 @@ wxGridCellAttr *wxGridCellAttr::Clone() const m_editor->IncRef(); } - attr->SetClientDataContainer(GetClientDataContainer()); + attr->CopyClientDataContainer(*this); if ( IsReadOnly() ) attr->SetReadOnly(); @@ -494,7 +494,7 @@ void wxGridCellAttr::MergeWith(wxGridCellAttr *mergefrom) } if ( !HasClientDataContainer() && mergefrom->HasClientDataContainer() ) { - SetClientDataContainer(mergefrom->GetClientDataContainer()); + CopyClientDataContainer(*mergefrom); } if ( !HasReadWriteMode() && mergefrom->HasReadWriteMode() ) SetReadOnly(mergefrom->IsReadOnly());