sc/inc/brdcst.hxx                 |    6 +-----
 sc/source/core/data/column.cxx    |   10 ++++------
 sc/source/core/data/column3.cxx   |   19 +++++++++----------
 sc/source/core/data/documen7.cxx  |    4 ++--
 sc/source/core/data/table5.cxx    |    4 ++--
 sc/source/core/tool/addinlis.cxx  |    2 +-
 sc/source/core/tool/adiasync.cxx  |    2 +-
 sc/source/core/tool/brdcst.cxx    |   14 ++------------
 sc/source/core/tool/ddelink.cxx   |    2 +-
 sc/source/ui/docshell/docsh.cxx   |    6 +++---
 sc/source/ui/unoobj/chart2uno.cxx |    2 +-
 11 files changed, 27 insertions(+), 44 deletions(-)

New commits:
commit a417e759f737ecea4f4a28df70abc7c3b5572a8d
Author: Kohei Yoshida <kohei.yosh...@gmail.com>
Date:   Thu May 9 10:20:39 2013 -0400

    ScHint doesn't need to store broadcaster pointer. Let's not.
    
    Change-Id: I86f9b44c87f3a730902d12505252e4b7e0a24fe4

diff --git a/sc/inc/brdcst.hxx b/sc/inc/brdcst.hxx
index 069f032..beef774 100644
--- a/sc/inc/brdcst.hxx
+++ b/sc/inc/brdcst.hxx
@@ -33,15 +33,11 @@ class SvtBroadcaster;
 
 class ScHint : public SfxSimpleHint
 {
-private:
     ScAddress   aAddress;
-    SvtBroadcaster* mpBroadcaster;
 
 public:
     TYPEINFO();
-    ScHint( sal_uLong n, const ScAddress& a, SvtBroadcaster* p );
-    SvtBroadcaster* GetBroadcaster() const;
-    void SetBroadcaster( SvtBroadcaster* p );
+    ScHint( sal_uLong n, const ScAddress& a );
     const ScAddress&    GetAddress() const { return aAddress; }
           ScAddress&    GetAddress()       { return aAddress; }
     void                SetAddress( const ScAddress& rAdr ) { aAddress = rAdr; 
}
diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx
index af373d6..a4371f2 100644
--- a/sc/source/core/data/column.cxx
+++ b/sc/source/core/data/column.cxx
@@ -1138,7 +1138,7 @@ void ScColumn::InsertRow( SCROW nStartRow, SCSIZE nSize )
     SCSIZE nNewCount = maItems.size();
     bool bCountChanged = false;
     ScAddress aAdr( nCol, 0, nTab );
-    ScHint aHint( SC_HINT_DATACHANGED, aAdr, NULL );    // only areas 
(ScBaseCell* == NULL)
+    ScHint aHint(SC_HINT_DATACHANGED, aAdr);    // only areas (ScBaseCell* == 
NULL)
     ScAddress& rAddress = aHint.GetAddress();
     // for sparse occupation use single broadcasts, not ranges
     bool bSingleBroadcasts = (((maItems.back().nRow - maItems[i].nRow) /
@@ -1725,7 +1725,7 @@ void ScColumn::MoveTo(SCROW nStartRow, SCROW nEndRow, 
ScColumn& rCol)
         }
         // Broadcast changes
         ScAddress aAdr( nCol, 0, nTab );
-        ScHint aHint(SC_HINT_DATACHANGED, aAdr, NULL);  // areas only
+        ScHint aHint(SC_HINT_DATACHANGED, aAdr);  // areas only
         ScAddress& rAddress = aHint.GetAddress();
 
         // must iterate backwards, because indexes of following cells become 
invalid
@@ -2104,7 +2104,7 @@ void ScColumn::SetDirty( const ScRange& rRange )
     pDocument->SetAutoCalc( false );    // no multiple recalculation
     SCROW nRow2 = rRange.aEnd.Row();
     ScAddress aPos( nCol, 0, nTab );
-    ScHint aHint( SC_HINT_DATACHANGED, aPos, NULL );
+    ScHint aHint(SC_HINT_DATACHANGED, aPos);
     SCROW nRow;
     SCSIZE nIndex;
     Search( rRange.aStart.Row(), nIndex );
@@ -2116,7 +2116,6 @@ void ScColumn::SetDirty( const ScRange& rRange )
         else
         {
             aHint.GetAddress().SetRow( nRow );
-            aHint.SetBroadcaster(GetBroadcaster(nRow));
             pDocument->Broadcast( aHint );
         }
         nIndex++;
@@ -2133,7 +2132,7 @@ void ScColumn::SetTableOpDirty( const ScRange& rRange )
     pDocument->SetAutoCalc( false );    // no multiple recalculation
     SCROW nRow2 = rRange.aEnd.Row();
     ScAddress aPos( nCol, 0, nTab );
-    ScHint aHint( SC_HINT_TABLEOPDIRTY, aPos, NULL );
+    ScHint aHint(SC_HINT_TABLEOPDIRTY, aPos);
     SCROW nRow;
     SCSIZE nIndex;
     Search( rRange.aStart.Row(), nIndex );
@@ -2145,7 +2144,6 @@ void ScColumn::SetTableOpDirty( const ScRange& rRange )
         else
         {
             aHint.GetAddress().SetRow( nRow );
-            aHint.SetBroadcaster(GetBroadcaster(nRow));
             pDocument->Broadcast( aHint );
         }
         nIndex++;
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index e36312b..8e8ad31 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -82,7 +82,7 @@ void ScColumn::Insert( SCROW nRow, ScBaseCell* pNewCell )
                 ((ScFormulaCell*)pNewCell)->SetDirty();
             else
                 pDocument->Broadcast(
-                    ScHint(SC_HINT_DATACHANGED, ScAddress(nCol, nRow, nTab), 
GetBroadcaster(nRow)));
+                    ScHint(SC_HINT_DATACHANGED, ScAddress(nCol, nRow, nTab)));
         }
     }
 }
@@ -123,7 +123,7 @@ void ScColumn::Delete( SCROW nRow )
     pCell->Delete();
 
     pDocument->Broadcast(
-        ScHint(SC_HINT_DATACHANGED, ScAddress(nCol, nRow, nTab), 
GetBroadcaster(nRow)));
+        ScHint(SC_HINT_DATACHANGED, ScAddress(nCol, nRow, nTab)));
 
     CellStorageModified();
 }
@@ -139,7 +139,7 @@ void ScColumn::DeleteAtIndex( SCSIZE nIndex )
     pCell->Delete();
 
     pDocument->Broadcast(
-        ScHint(SC_HINT_DATACHANGED, ScAddress(nCol, nRow, nTab), 
GetBroadcaster(nRow)));
+        ScHint(SC_HINT_DATACHANGED, ScAddress(nCol, nRow, nTab)));
 
     maTextWidths.set_empty(nRow, nRow);
     maScriptTypes.set_empty(nRow, nRow);
@@ -220,7 +220,7 @@ void ScColumn::DeleteRow( SCROW nStartRow, SCSIZE nSize )
     maScriptTypes.resize(MAXROWCOUNT);
 
     ScAddress aAdr( nCol, 0, nTab );
-    ScHint aHint( SC_HINT_DATACHANGED, aAdr, NULL ); // only areas 
(ScBaseCell* == NULL)
+    ScHint aHint(SC_HINT_DATACHANGED, aAdr); // only areas (ScBaseCell* == 
NULL)
     ScAddress& rAddress = aHint.GetAddress();
     // for sparse occupation use single broadcasts, not ranges
     bool bSingleBroadcasts = (((maItems.back().nRow - maItems[i].nRow) /
@@ -485,11 +485,10 @@ void ScColumn::DeleteArea(SCROW nStartRow, SCROW nEndRow, 
sal_uInt16 nDelFlag)
         pAttrArray->DeleteHardAttr( nStartRow, nEndRow );
 
     // Broadcast the changes.
-    ScHint aHint(SC_HINT_DATACHANGED, ScAddress(nCol, 0, nTab), NULL);
+    ScHint aHint(SC_HINT_DATACHANGED, ScAddress(nCol, 0, nTab));
     for (SCROW i = nStartRow; i <= nEndRow; ++i)
     {
         aHint.GetAddress().SetRow(i);
-        aHint.SetBroadcaster(GetBroadcaster(i));
         pDocument->Broadcast(aHint);
     }
 }
@@ -1068,8 +1067,8 @@ void ScColumn::BroadcastInArea( SCROW nRow1, SCROW nRow2 )
         if ( pCell->GetCellType() == CELLTYPE_FORMULA )
             ((ScFormulaCell*)pCell)->SetDirty();
         else
-            pDocument->Broadcast( ScHint( SC_HINT_DATACHANGED,
-                ScAddress(nCol, nRow, nTab), GetBroadcaster(nRow)));
+            pDocument->Broadcast( ScHint(SC_HINT_DATACHANGED,
+                ScAddress(nCol, nRow, nTab)));
         nIndex++;
     }
 }
@@ -1324,8 +1323,8 @@ bool ScColumn::SetString( SCROW nRow, SCTAB nTabP, const 
String& rString,
                     ((ScFormulaCell*)pNewCell)->SetDirty();
                 }
                 else
-                    pDocument->Broadcast( ScHint( SC_HINT_DATACHANGED,
-                        ScAddress(nCol, nRow, nTabP), GetBroadcaster(nRow)));
+                    pDocument->Broadcast(
+                        ScHint(SC_HINT_DATACHANGED, ScAddress(nCol, nRow, 
nTabP)));
             }
             else
             {
diff --git a/sc/source/core/data/documen7.cxx b/sc/source/core/data/documen7.cxx
index 1af78e0..3a1d635 100644
--- a/sc/source/core/data/documen7.cxx
+++ b/sc/source/core/data/documen7.cxx
@@ -73,7 +73,7 @@ void ScDocument::Broadcast( const ScHint& rHint )
     {
         ScBulkBroadcast aBulkBroadcast( pBASM);     // scoped bulk broadcast
         bool bIsBroadcasted = false;
-        SvtBroadcaster* pBC = rHint.GetBroadcaster();
+        SvtBroadcaster* pBC = GetBroadcaster(rHint.GetAddress());
         if ( pBC )
         {
             pBC->Broadcast( rHint );
@@ -445,7 +445,7 @@ void ScDocument::TrackFormulas( sal_uLong nHintId )
         do
         {
             pBC = GetBroadcaster(pTrack->aPos);
-            ScHint aHint(nHintId, pTrack->aPos, pBC);
+            ScHint aHint(nHintId, pTrack->aPos);
             if (pBC)
                 pBC->Broadcast( aHint );
             pBASM->AreaBroadcast( aHint );
diff --git a/sc/source/core/data/table5.cxx b/sc/source/core/data/table5.cxx
index 852c2c0..f24c56c 100644
--- a/sc/source/core/data/table5.cxx
+++ b/sc/source/core/data/table5.cxx
@@ -1166,7 +1166,7 @@ void ScTable::InvalidateTextWidth( const ScAddress* 
pAdrFrom, const ScAddress* p
             switch ( pCell->GetCellType() )
             {
                 case CELLTYPE_VALUE :
-                    pDocument->Broadcast(ScHint(SC_HINT_DATACHANGED, 
ScAddress(nCol, nRow, nTab), GetBroadcaster(nCol, nRow)));
+                    pDocument->Broadcast(ScHint(SC_HINT_DATACHANGED, 
ScAddress(nCol, nRow, nTab)));
                     break;
                 case CELLTYPE_FORMULA :
                     ((ScFormulaCell*)pCell)->SetDirty();
@@ -1209,7 +1209,7 @@ void ScTable::InvalidateTextWidth( const ScAddress* 
pAdrFrom, const ScAddress* p
                 {
                     case CELLTYPE_VALUE :
                         pDocument->Broadcast(
-                            ScHint(SC_HINT_DATACHANGED, ScAddress(nCol, nRow, 
nTab), GetBroadcaster(nCol, nRow)));
+                            ScHint(SC_HINT_DATACHANGED, ScAddress(nCol, nRow, 
nTab)));
                         break;
                     case CELLTYPE_FORMULA :
                         ((ScFormulaCell*)pCell)->SetDirty();
diff --git a/sc/source/core/tool/addinlis.cxx b/sc/source/core/tool/addinlis.cxx
index bc7d467a..fa945c0 100644
--- a/sc/source/core/tool/addinlis.cxx
+++ b/sc/source/core/tool/addinlis.cxx
@@ -115,7 +115,7 @@ void SAL_CALL ScAddInListener::modified( const 
::com::sun::star::sheet::ResultEv
 
     // notify document of changes
 
-    Broadcast( ScHint( SC_HINT_DATACHANGED, ScAddress(), NULL ) );
+    Broadcast( ScHint(SC_HINT_DATACHANGED, ScAddress()) );
 
     for ( ScAddInDocs::iterator it = pDocs->begin(); it != pDocs->end(); ++it )
     {
diff --git a/sc/source/core/tool/adiasync.cxx b/sc/source/core/tool/adiasync.cxx
index 5a8af9b..f5e5edb 100644
--- a/sc/source/core/tool/adiasync.cxx
+++ b/sc/source/core/tool/adiasync.cxx
@@ -122,7 +122,7 @@ void ScAddInAsync::CallBack( sal_uLong nHandleP, void* 
pData )
             return;
     }
     p->bValid = sal_True;
-    p->Broadcast( ScHint( SC_HINT_DATACHANGED, ScAddress(), NULL ) );
+    p->Broadcast( ScHint(SC_HINT_DATACHANGED, ScAddress()) );
 
     for ( ScAddInDocs::iterator it = p->pDocs->begin(); it != p->pDocs->end(); 
++it )
     {
diff --git a/sc/source/core/tool/brdcst.cxx b/sc/source/core/tool/brdcst.cxx
index e860026..dba508b 100644
--- a/sc/source/core/tool/brdcst.cxx
+++ b/sc/source/core/tool/brdcst.cxx
@@ -19,17 +19,7 @@
 
 #include "brdcst.hxx"
 
-ScHint::ScHint( sal_uLong n, const ScAddress& a, SvtBroadcaster* p ) :
-    SfxSimpleHint(n), aAddress(a), mpBroadcaster(p) {}
-
-SvtBroadcaster* ScHint::GetBroadcaster() const
-{
-    return mpBroadcaster;
-}
-
-void ScHint::SetBroadcaster( SvtBroadcaster* p )
-{
-    mpBroadcaster = p;
-}
+ScHint::ScHint( sal_uLong n, const ScAddress& a ) :
+    SfxSimpleHint(n), aAddress(a) {}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/core/tool/ddelink.cxx b/sc/source/core/tool/ddelink.cxx
index 5ffbe27..d579eaa 100644
--- a/sc/source/core/tool/ddelink.cxx
+++ b/sc/source/core/tool/ddelink.cxx
@@ -199,7 +199,7 @@ sfx2::SvBaseLink::UpdateResult ScDdeLink::DataChanged(
 
     if (HasListeners())
     {
-        Broadcast( ScHint( SC_HINT_DATACHANGED, ScAddress(), NULL ) );
+        Broadcast(ScHint(SC_HINT_DATACHANGED, ScAddress()));
         pDoc->TrackFormulas();      // muss sofort passieren
         pDoc->StartTrackTimer();
 
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx
index 3b7e1fd..2e7ac5f 100644
--- a/sc/source/ui/docshell/docsh.cxx
+++ b/sc/source/ui/docshell/docsh.cxx
@@ -476,7 +476,7 @@ sal_Bool ScDocShell::LoadXML( SfxMedium* pLoadMedium, const 
::com::sun::star::un
     else
     {
         // still need to recalc volatile formula cells.
-        aDocument.Broadcast( ScHint(SC_HINT_DATACHANGED, BCA_BRDCST_ALWAYS, 
NULL) );
+        aDocument.Broadcast(ScHint(SC_HINT_DATACHANGED, BCA_BRDCST_ALWAYS));
     }
 
     aDocument.SetXMLFromWrapper( false );
@@ -2759,7 +2759,7 @@ void ScDocShell::SetDocumentModified( sal_Bool 
bIsModified /* = sal_True */ )
     {
         // #i115009# broadcast BCA_BRDCST_ALWAYS, so a component can read 
recalculated results
         // of RecalcModeAlways formulas (like OFFSET) after modifying cells
-        aDocument.Broadcast( ScHint(SC_HINT_DATACHANGED, BCA_BRDCST_ALWAYS, 
NULL) );
+        aDocument.Broadcast(ScHint(SC_HINT_DATACHANGED, BCA_BRDCST_ALWAYS));
         aDocument.InvalidateTableArea();    // #i105279# needed here
         aDocument.BroadcastUno( SfxSimpleHint( SFX_HINT_DATACHANGED ) );
 
@@ -2779,7 +2779,7 @@ void ScDocShell::SetDocumentModified( sal_Bool 
bIsModified /* = sal_True */ )
             aDocument.InvalidateStyleSheetUsage();
             aDocument.InvalidateTableArea();
             aDocument.InvalidateLastTableOpParams();
-            aDocument.Broadcast( ScHint(SC_HINT_DATACHANGED, 
BCA_BRDCST_ALWAYS, NULL) );
+            aDocument.Broadcast(ScHint(SC_HINT_DATACHANGED, 
BCA_BRDCST_ALWAYS));
             if ( aDocument.IsForcedFormulaPending() && aDocument.GetAutoCalc() 
)
                 aDocument.CalcFormulaTree( sal_True );
             PostDataChanged();
diff --git a/sc/source/ui/unoobj/chart2uno.cxx 
b/sc/source/ui/unoobj/chart2uno.cxx
index 69b95aa..c6363a4 100644
--- a/sc/source/ui/unoobj/chart2uno.cxx
+++ b/sc/source/ui/unoobj/chart2uno.cxx
@@ -2650,7 +2650,7 @@ void ScChart2DataSequence::RebuildDataCache()
     if (!m_bExtDataRebuildQueued)
     {
         m_aDataArray.clear();
-        m_pDocument->BroadcastUno(ScHint(SC_HINT_DATACHANGED, ScAddress(), 
NULL));
+        m_pDocument->BroadcastUno(ScHint(SC_HINT_DATACHANGED, ScAddress()));
         m_bExtDataRebuildQueued = true;
         m_bGotDataChangedHint = true;
     }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to