starmath/inc/cursor.hxx | 5 +++-- starmath/source/cursor.cxx | 36 +++++++++--------------------------- 2 files changed, 12 insertions(+), 29 deletions(-)
New commits: commit 4753d78cf93bad974f062d8cfe75b4b610385b7e Author: Takeshi Abe <[email protected]> Date: Wed Dec 16 18:02:30 2015 +0900 starmath: Assert that a parent always finds its child Change-Id: I6cb75e0d62141dba2809aaec62761cedd8c3257a Reviewed-on: https://gerrit.libreoffice.org/20733 Tested-by: Jenkins <[email protected]> Reviewed-by: Kohei Yoshida <[email protected]> diff --git a/starmath/inc/cursor.hxx b/starmath/inc/cursor.hxx index 9de6b53..6962cf5 100644 --- a/starmath/inc/cursor.hxx +++ b/starmath/inc/cursor.hxx @@ -12,6 +12,7 @@ #include "node.hxx" #include "caret.hxx" +#include <cassert> #include <list> #include <memory> @@ -268,8 +269,8 @@ private: SmNode* pNode = rpNode; if(rpNode && rpNode->GetParent()){ //Don't remove this, correctness relies on it int index = rpNode->GetParent()->IndexOfSubNode(rpNode); - if(index != -1) - rpNode->GetParent()->SetSubNode(index, nullptr); + assert(index >= 0); + rpNode->GetParent()->SetSubNode(index, nullptr); } rpNode = nullptr; //Create line from node diff --git a/starmath/source/cursor.cxx b/starmath/source/cursor.cxx index 8efa931..355336c 100644 --- a/starmath/source/cursor.cxx +++ b/starmath/source/cursor.cxx @@ -12,6 +12,7 @@ #include "view.hxx" #include "accessibility.hxx" #include <comphelper/string.hxx> +#include <cassert> void SmCursor::Move(OutputDevice* pDev, SmMovementDirection direction, bool bMoveAnchor){ SmCaretPosGraphEntry* NewPos = nullptr; @@ -176,6 +177,7 @@ void SmCursor::DeletePrev(OutputDevice* pDev){ SmNode* pLine = FindTopMostNodeInLine(mpPosition->CaretPos.pSelectedNode); SmStructureNode* pLineParent = pLine->GetParent(); int nLineOffset = pLineParent->IndexOfSubNode(pLine); + assert(nLineOffset >= 0); //If we're in front of a node who's parent is a TABLE if(pLineParent->GetType() == NTABLE && mpPosition->CaretPos.Index == 0 && nLineOffset > 0){ @@ -262,11 +264,7 @@ void SmCursor::Delete(){ SmStructureNode* pLineParent = pLine->GetParent(); //Find line offset in parent int nLineOffset = pLineParent->IndexOfSubNode(pLine); - if (nLineOffset == -1) - { - SAL_WARN("starmath", "pLine must be a child of its parent!"); - return; - } + assert(nLineOffset >= 0); //Position after delete SmCaretPos PosAfterDelete; @@ -304,12 +302,7 @@ void SmCursor::InsertNodes(SmNodeList* pNewNodes){ //Find line parent and line index in parent SmStructureNode* pLineParent = pLine->GetParent(); int nParentIndex = pLineParent->IndexOfSubNode(pLine); - OSL_ENSURE(nParentIndex != -1, "pLine must be a subnode of pLineParent!"); - if (nParentIndex == -1) - { - delete pNewNodes; - return; - } + assert(nParentIndex >= 0); //Convert line to list SmNodeList* pLineList = NodeToList(pLine); @@ -506,7 +499,7 @@ void SmCursor::InsertSubSup(SmSubSup eSubSup) { //Find Parent and offset in parent SmStructureNode *pLineParent = pLine->GetParent(); int nParentIndex = pLineParent->IndexOfSubNode(pLine); - OSL_ENSURE(nParentIndex != -1, "pLine must be a subnode of pLineParent!"); + assert(nParentIndex >= 0); //TODO: Consider handling special cases where parent is an SmOperNode, // Maybe this method should be able to add limits to an SmOperNode... @@ -677,9 +670,7 @@ void SmCursor::InsertBrackets(SmBracketType eBracketType) { //Find parent and offset in parent SmStructureNode *pLineParent = pLine->GetParent(); int nParentIndex = pLineParent->IndexOfSubNode(pLine); - OSL_ENSURE( nParentIndex != -1, "pLine must be a subnode of pLineParent!"); - if (nParentIndex < 0) - return; + assert(nParentIndex >= 0); //Convert line to list SmNodeList *pLineList = NodeToList(pLine); @@ -814,12 +805,7 @@ bool SmCursor::InsertRow() { //Find parent and offset in parent SmStructureNode *pLineParent = pLine->GetParent(); int nParentIndex = pLineParent->IndexOfSubNode(pLine); - - if (nParentIndex == -1) - { - SAL_WARN("starmath", "pLine must be a subnode of pLineParent!"); - return false; - } + assert(nParentIndex >= 0); //Discover the context of this command SmTableNode *pTable = nullptr; @@ -834,7 +820,7 @@ bool SmCursor::InsertRow() { //NOTE: This hack might give problems if we stop ignoring SmAlignNode pTable = static_cast<SmTableNode*>(pLineParent->GetParent()); nTableIndex = pTable->IndexOfSubNode(pLineParent); - OSL_ENSURE(nTableIndex != -1, "pLineParent must be a child of its parent!"); + assert(nTableIndex >= 0); } if(pLineParent->GetType() == NMATRIX) pMatrix = static_cast<SmMatrixNode*>(pLineParent); @@ -938,11 +924,7 @@ void SmCursor::InsertFraction() { //Find Parent and offset in parent SmStructureNode *pLineParent = pLine->GetParent(); int nParentIndex = pLineParent->IndexOfSubNode(pLine); - if (nParentIndex == -1) - { - SAL_WARN("starmath", "pLine must be a subnode of pLineParent!"); - return; - } + assert(nParentIndex >= 0); //We begin modifying the tree here BeginEdit(); _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
