From 698de91c8ad7c15826466f2f81e2bc471b905103 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Mon, 25 Feb 2013 01:30:18 +0100 Subject: [PATCH] Fix segfault in SparseBlock::InnerIterator --- Eigen/src/SparseCore/SparseBlock.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Eigen/src/SparseCore/SparseBlock.h b/Eigen/src/SparseCore/SparseBlock.h index b1eaf0b2c..8ff64de7b 100644 --- a/Eigen/src/SparseCore/SparseBlock.h +++ b/Eigen/src/SparseCore/SparseBlock.h @@ -353,7 +353,7 @@ public: m_block(block), m_end(IsRowMajor ? block.m_startCol.value()+block.m_blockCols.value() : block.m_startRow.value()+block.m_blockRows.value()) { - while(Base::index() < (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value())) + while( (Base::operator bool()) && (Base::index() < (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value())) ) Base::operator++(); } @@ -376,7 +376,7 @@ public: m_block(block), m_begin(IsRowMajor ? block.m_startCol.value() : block.m_startRow.value()) { - while(Base::index() >= (IsRowMajor ? m_block.m_startCol.value()+block.m_blockCols.value() : m_block.m_startRow.value()+block.m_blockRows.value()) ) + while( (Base::operator bool()) && (Base::index() >= (IsRowMajor ? m_block.m_startCol.value()+block.m_blockCols.value() : m_block.m_startRow.value()+block.m_blockRows.value())) ) Base::operator--(); }