diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-09-16 11:25:17 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-09-16 12:28:50 +0200 |
commit | d9706878b7352b985b3a38d47b30a6e872a266a2 (patch) | |
tree | 92a8eec7cef54fba1b5c08b51306e266f6fbc366 | |
parent | 6e2b926f82dd0da2edd0ca6edaf6fc0a0a8ceef9 (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.cxx | 13 |
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 ) |