diff options
-rw-r--r-- | dbaccess/source/core/api/RowSetBase.cxx | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/dbaccess/source/core/api/RowSetBase.cxx b/dbaccess/source/core/api/RowSetBase.cxx index edabd9a62725..3dbd6a0563b7 100644 --- a/dbaccess/source/core/api/RowSetBase.cxx +++ b/dbaccess/source/core/api/RowSetBase.cxx @@ -591,12 +591,24 @@ sal_Bool SAL_CALL ORowSetBase::next( ) throw(SQLException, RuntimeException, st bRet = m_pCache->next(); doCancelModification( ); + // if we were afterLast before next() then we still are, + // i.e. bAfterLast implies m_pCache->isAfterLast() + if (bAfterLast) + assert(m_pCache->isAfterLast()); + // so the only way bAfterLast != m_pCache->isAfterLast() + // would be that we just arrived there, + if (bAfterLast != m_pCache->isAfterLast()) + { + assert(!bAfterLast); + assert(m_pCache->isAfterLast()); + } + // in which case we *did* move the cursor if ( bRet || bAfterLast != m_pCache->isAfterLast() ) { // notification order // - column values // - cursorMoved - setCurrentRow( bRet, true, aOldValues, aGuard ); + setCurrentRow( true, true, aOldValues, aGuard ); OSL_ENSURE(!m_bBeforeFirst,"BeforeFirst is true. I don't know why?"); } else |