summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2022-09-16 11:25:17 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2022-09-16 12:28:50 +0200
commitd9706878b7352b985b3a38d47b30a6e872a266a2 (patch)
tree92a8eec7cef54fba1b5c08b51306e266f6fbc366
parent6e2b926f82dd0da2edd0ca6edaf6fc0a0a8ceef9 (diff)
Add more asserts to SwPosition constructor to catch dodgy data
where the two node pointers point at different nodes Change-Id: Ib556fac6b753898cc879f2df28d86e12c4c8fbbd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140063 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--sw/source/core/crsr/pam.cxx13
1 files changed, 10 insertions, 3 deletions
diff --git a/sw/source/core/crsr/pam.cxx b/sw/source/core/crsr/pam.cxx
index 1b03eed95e8d..5f8f3ec86eb6 100644
--- a/sw/source/core/crsr/pam.cxx
+++ b/sw/source/core/crsr/pam.cxx
@@ -61,29 +61,36 @@ static sal_Int32 GetSttOrEnd( bool bCondition, const SwContentNode& rNd )
SwPosition::SwPosition( const SwNodeIndex & rNodeIndex, const SwContentIndex & rContent )
: nNode( rNodeIndex ), nContent( rContent )
{
+ assert((!rNodeIndex.GetNode().GetContentNode() || rNodeIndex.GetNode().GetContentNode() == rContent.GetContentNode())
+ && "parameters point to different nodes");
}
SwPosition::SwPosition( const SwNode & rNode, const SwContentIndex & rContent )
: nNode( rNode ), nContent( rContent )
{
+ assert((!rNode.GetContentNode() || rNode.GetContentNode() == rContent.GetContentNode())
+ && "parameters point to different nodes");
}
SwPosition::SwPosition( const SwNodeIndex & rNodeIndex, const SwContentNode* pContentNode, sal_Int32 nContentOffset )
: nNode( rNodeIndex ), nContent( pContentNode, nContentOffset )
{
- assert(!pContentNode || pContentNode == &rNodeIndex.GetNode());
+ assert((!pContentNode || pContentNode == &rNodeIndex.GetNode()) &&
+ "parameters point to different nodes");
}
SwPosition::SwPosition( const SwNode & rNode, const SwContentNode* pContentNode, sal_Int32 nContentOffset )
: nNode( rNode ), nContent( pContentNode, nContentOffset )
{
- assert(!pContentNode || pContentNode == &rNode);
+ assert((!pContentNode || pContentNode == &rNode) &&
+ "parameters point to different nodes");
}
SwPosition::SwPosition( const SwNodeIndex & rNodeIndex, SwNodeOffset nDiff, const SwContentNode* pContentNode, sal_Int32 nContentOffset )
: nNode( rNodeIndex, nDiff ), nContent( pContentNode, nContentOffset )
{
- assert(!pContentNode || pContentNode == &rNodeIndex.GetNode());
+ assert((!pContentNode || pContentNode == &rNodeIndex.GetNode()) &&
+ "parameters point to different nodes");
}
SwPosition::SwPosition( const SwNodeIndex & rNodeIndex, SwNodeOffset nDiff )