[Libreoffice-commits] core.git: sw/inc sw/source
Stephan Bergmann
sbergman at redhat.com
Thu Jul 31 03:13:08 PDT 2014
sw/inc/ndarr.hxx | 1 +
sw/source/core/docnode/node.cxx | 23 ++++++++++++-----------
2 files changed, 13 insertions(+), 11 deletions(-)
New commits:
commit 5ee87e861e3147d6a3a9411296cd2498d77555db
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Thu Jul 31 12:12:17 2014 +0200
Avoid undef downcast in base class ctor
Change-Id: I71eecfdc657b153f9289e8e9af52fba9ed22d3a8
diff --git a/sw/inc/ndarr.hxx b/sw/inc/ndarr.hxx
index 7d65a95..26fee7e 100644
--- a/sw/inc/ndarr.hxx
+++ b/sw/inc/ndarr.hxx
@@ -90,6 +90,7 @@ class SW_DLLPUBLIC SwNodes
friend class SwDoc;
friend class SwNode;
friend class SwNodeIndex;
+ friend class SwStartNode;
friend class ::sw::DocumentContentOperationsManager;
SwNodeIndex* pRoot; ///< List of all indices on nodes.
diff --git a/sw/source/core/docnode/node.cxx b/sw/source/core/docnode/node.cxx
index 399bfc4..e315529 100644
--- a/sw/source/core/docnode/node.cxx
+++ b/sw/source/core/docnode/node.cxx
@@ -289,9 +289,9 @@ SwNode::SwNode( const SwNodeIndex &rWhere, const sal_uInt8 nNdType )
#endif
, pStartOfSection( 0 )
{
- SwNodes& rNodes = const_cast<SwNodes&> (rWhere.GetNodes());
if( rWhere.GetIndex() )
{
+ SwNodes& rNodes = const_cast<SwNodes&> (rWhere.GetNodes());
SwNode* pNd = rNodes[ rWhere.GetIndex() -1 ];
rNodes.InsertNode( this, rWhere );
if( 0 == ( pStartOfSection = pNd->GetStartNode()) )
@@ -304,11 +304,6 @@ SwNode::SwNode( const SwNodeIndex &rWhere, const sal_uInt8 nNdType )
}
}
}
- else
- {
- rNodes.InsertNode( this, rWhere );
- pStartOfSection = (SwStartNode*)this;
- }
}
/** Inserts a node into the rNodes array at the rWhere position
@@ -341,11 +336,6 @@ SwNode::SwNode( SwNodes& rNodes, sal_uLong nPos, const sal_uInt8 nNdType )
}
}
}
- else
- {
- rNodes.InsertNode( this, nPos );
- pStartOfSection = (SwStartNode*)this;
- }
}
SwNode::~SwNode()
@@ -851,6 +841,12 @@ SwStartNode::SwStartNode( const SwNodeIndex &rWhere, const sal_uInt8 nNdType,
SwStartNodeType eSttNd )
: SwNode( rWhere, nNdType ), eSttNdTyp( eSttNd )
{
+ if( !rWhere.GetIndex() )
+ {
+ SwNodes& rNodes = const_cast<SwNodes&> (rWhere.GetNodes());
+ rNodes.InsertNode( this, rWhere );
+ pStartOfSection = this;
+ }
// Just do this temporarily until the EndNode is inserted
pEndOfSection = (SwEndNode*)this;
}
@@ -858,6 +854,11 @@ SwStartNode::SwStartNode( const SwNodeIndex &rWhere, const sal_uInt8 nNdType,
SwStartNode::SwStartNode( SwNodes& rNodes, sal_uLong nPos )
: SwNode( rNodes, nPos, ND_STARTNODE ), eSttNdTyp( SwNormalStartNode )
{
+ if( !nPos )
+ {
+ rNodes.InsertNode( this, nPos );
+ pStartOfSection = this;
+ }
// Just do this temporarily until the EndNode is inserted
pEndOfSection = (SwEndNode*)this;
}
More information about the Libreoffice-commits
mailing list