sw/source/core/doc/DocumentFieldsManager.cxx |   44 ++++++++++++---------------
 1 file changed, 20 insertions(+), 24 deletions(-)

New commits:
commit d2c7aa745840dcb78579d270f49f94a236e4ad4a
Author:     Mike Kaganski <[email protected]>
AuthorDate: Fri Oct 24 08:15:25 2025 +0200
Commit:     Mike Kaganski <[email protected]>
CommitDate: Fri Oct 24 12:20:22 2025 +0200

    Drop some const_casts
    
    Change-Id: Ib6530d47e84e316193843c4a22aced4225071021
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192930
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <[email protected]>

diff --git a/sw/source/core/doc/DocumentFieldsManager.cxx 
b/sw/source/core/doc/DocumentFieldsManager.cxx
index 621aa7d3cb69..abec511c1639 100644
--- a/sw/source/core/doc/DocumentFieldsManager.cxx
+++ b/sw/source/core/doc/DocumentFieldsManager.cxx
@@ -861,18 +861,17 @@ void DocumentFieldsManager::UpdateExpFieldsImpl(
     std::unordered_map<OUString, OUString> aHashStrTable;
 
     {
-        const SwFieldType* pFieldType;
         // process separately:
-        for( auto n = mpFieldTypes->size(); n; )
+        for (auto it = mpFieldTypes->rbegin(); it != mpFieldTypes->rend(); 
++it)
         {
-            pFieldType = (*mpFieldTypes)[ --n ].get();
+            SwFieldType* pFieldType = it->get();
             switch( pFieldType->Which() )
             {
             case SwFieldIds::User:
                 {
                     // Entry present?
                     const OUString aNm = pFieldType->GetName().toString();
-                    OUString 
sExpand(const_cast<SwUserFieldType*>(static_cast<const 
SwUserFieldType*>(pFieldType))->Expand(1, SwUserType::None, LANGUAGE_SYSTEM));
+                    OUString 
sExpand(static_cast<SwUserFieldType*>(pFieldType)->Expand(1, SwUserType::None, 
LANGUAGE_SYSTEM));
                     auto pFnd = aHashStrTable.find( aNm );
                     if( pFnd != aHashStrTable.end() )
                         // modify entry in the hash table
@@ -908,25 +907,22 @@ void DocumentFieldsManager::UpdateExpFieldsImpl(
 
     for (std::unique_ptr<SetGetExpField> const& it : 
*mpUpdateFields->GetSortList())
     {
-        SwSection* pSect = const_cast<SwSection*>(it->GetSection());
-        if( pSect )
+        if (auto pSect = it->GetSection())
         {
             SwSbxValue aValue = aCalc.Calculate(
                                         pSect->GetCondition() );
             if(!aValue.IsVoidValue())
             {
-                pSect->SetCondHidden(aValue.GetBool());
+                const_cast<SwSection*>(pSect)->SetCondHidden(aValue.GetBool());
             }
             continue;
         }
-        ::sw::mark::Bookmark *const pBookmark(
-                const_cast<::sw::mark::Bookmark *>(it->GetBookmark()));
-        if (pBookmark)
+        if (auto pBookmark = it->GetBookmark())
         {
             SwSbxValue const 
aValue(aCalc.Calculate(pBookmark->GetHideCondition()));
             if (!aValue.IsVoidValue())
             {
-                pBookmark->Hide(aValue.GetBool());
+                
const_cast<::sw::mark::Bookmark*>(pBookmark)->Hide(aValue.GetBool());
             }
             continue;
         }
@@ -945,14 +941,14 @@ void DocumentFieldsManager::UpdateExpFieldsImpl(
         }
 
         SwFormatField* pFormatField = 
const_cast<SwFormatField*>(&pTextField->GetFormatField());
-        const SwField* pField = pFormatField->GetField();
+        SwField* pField = pFormatField->GetField();
 
-        nWhich = pField->GetTyp()->Which();
+        nWhich = pField->Which();
         switch( nWhich )
         {
         case SwFieldIds::HiddenText:
         {
-            SwHiddenTextField* pHField = 
const_cast<SwHiddenTextField*>(static_cast<const SwHiddenTextField*>(pField));
+            SwHiddenTextField* pHField = 
static_cast<SwHiddenTextField*>(pField);
             SwSbxValue aValue = aCalc.Calculate( pHField->GetPar1() );
             bool bValue = !aValue.GetBool();
             if(!aValue.IsVoidValue())
@@ -965,7 +961,7 @@ void DocumentFieldsManager::UpdateExpFieldsImpl(
         break;
         case SwFieldIds::HiddenPara:
         {
-            SwHiddenParaField* pHPField = 
const_cast<SwHiddenParaField*>(static_cast<const SwHiddenParaField*>(pField));
+            SwHiddenParaField* pHPField = 
static_cast<SwHiddenParaField*>(pField);
             SwSbxValue aValue = aCalc.Calculate( pHPField->GetPar1() );
             bool bValue = aValue.GetBool();
             if(!aValue.IsVoidValue())
@@ -975,8 +971,8 @@ void DocumentFieldsManager::UpdateExpFieldsImpl(
         case SwFieldIds::DbSetNumber:
 #if HAVE_FEATURE_DBCONNECTIVITY && !ENABLE_FUZZERS
         {
-            const_cast<SwDBSetNumberField*>(static_cast<const 
SwDBSetNumberField*>(pField))->Evaluate(m_rDoc);
-            aCalc.VarChange( sDBNumNm, static_cast<const 
SwDBSetNumberField*>(pField)->GetSetNumber());
+            static_cast<SwDBSetNumberField*>(pField)->Evaluate(m_rDoc);
+            aCalc.VarChange(sDBNumNm, 
static_cast<SwDBSetNumberField*>(pField)->GetSetNumber());
             pField->ExpandField(m_rDoc.IsClipBoard(), nullptr);
         }
 #endif
@@ -985,7 +981,7 @@ void DocumentFieldsManager::UpdateExpFieldsImpl(
         case SwFieldIds::DbNumSet:
 #if HAVE_FEATURE_DBCONNECTIVITY && !ENABLE_FUZZERS
         {
-            UpdateDBNumFields( 
*const_cast<SwDBNameInfField*>(static_cast<const SwDBNameInfField*>(pField)), 
aCalc );
+            UpdateDBNumFields(*static_cast<SwDBNameInfField*>(pField), aCalc);
             if( bCanFill )
                 bCanFill = pMgr->FillCalcWithMergeData( 
m_rDoc.GetNumberFormatter(), nLang, aCalc );
         }
@@ -995,9 +991,9 @@ void DocumentFieldsManager::UpdateExpFieldsImpl(
         {
 #if HAVE_FEATURE_DBCONNECTIVITY && !ENABLE_FUZZERS
             // evaluate field
-            const_cast<SwDBField*>(static_cast<const 
SwDBField*>(pField))->Evaluate();
+            static_cast<SwDBField*>(pField)->Evaluate();
 
-            SwDBData aTmpDBData(static_cast<const 
SwDBField*>(pField)->GetDBData());
+            SwDBData aTmpDBData(static_cast<SwDBField*>(pField)->GetDBData());
 
             if( pMgr->IsDataSourceOpen(aTmpDBData.sDataSource, 
aTmpDBData.sCommand, false))
                 aCalc.VarChange( sDBNumNm, 
pMgr->GetSelectedRecordId(aTmpDBData.sDataSource, aTmpDBData.sCommand, 
aTmpDBData.nCommandType));
@@ -1023,7 +1019,7 @@ void DocumentFieldsManager::UpdateExpFieldsImpl(
         break;
         case SwFieldIds::GetExp:
         {
-            SwGetExpField* pGField = 
const_cast<SwGetExpField*>(static_cast<const SwGetExpField*>(pField));
+            SwGetExpField* pGField = static_cast<SwGetExpField*>(pField);
             if( SwGetSetExpType::String & pGField->GetSubType() )        // 
replace String
             {
                 if( (!pUpdateField || pUpdateField == pTextField )
@@ -1048,7 +1044,7 @@ void DocumentFieldsManager::UpdateExpFieldsImpl(
         break;
         case SwFieldIds::SetExp:
         {
-            SwSetExpField* pSField = 
const_cast<SwSetExpField*>(static_cast<const SwSetExpField*>(pField));
+            SwSetExpField* pSField = static_cast<SwSetExpField*>(pField);
             if( SwGetSetExpType::String & pSField->GetSubType() )        // 
replace String
             {
                 // is the "formula" a field?
@@ -1169,12 +1165,12 @@ void DocumentFieldsManager::UpdateUsrFields()
     SwCalc* pCalc = nullptr;
     for( SwFieldTypes::size_type i = INIT_FLDTYPES; i < mpFieldTypes->size(); 
++i )
     {
-        const SwFieldType* pFieldType = (*mpFieldTypes)[i].get();
+        SwFieldType* pFieldType = (*mpFieldTypes)[i].get();
         if( SwFieldIds::User == pFieldType->Which() )
         {
             if( !pCalc )
                 pCalc = new SwCalc( m_rDoc );
-            const_cast<SwUserFieldType*>(static_cast<const 
SwUserFieldType*>(pFieldType))->GetValue( *pCalc );
+            static_cast<SwUserFieldType*>(pFieldType)->GetValue(*pCalc);
         }
     }
 

Reply via email to