From c98c7b1597cd3ff07bfc3a2ec7e13d354ad48e97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20Czerpak?= Date: Tue, 17 Mar 2015 13:35:57 +0100 Subject: [PATCH] 2015-03-17 13:35 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * src/rdd/workarea.c % small simplification --- ChangeLog.txt | 4 + src/rdd/workarea.c | 187 ++++++++++++++++++++++----------------------- 2 files changed, 96 insertions(+), 95 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index b39ab33114..55d48b7e57 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,10 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2015-03-17 13:35 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * src/rdd/workarea.c + % small simplification + 2015-03-17 12:55 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * src/rdd/dbcmd.c ! fixed __dbArrange() to allow record transfer with the same conditions diff --git a/src/rdd/workarea.c b/src/rdd/workarea.c index e1451f8263..a5aad89f87 100644 --- a/src/rdd/workarea.c +++ b/src/rdd/workarea.c @@ -1077,6 +1077,8 @@ static HB_ERRCODE hb_waEval( AREAP pArea, LPDBEVALINFO pEvalInfo ) else if( pEvalInfo->dbsci.lNext ) { lNext = hb_itemGetNL( pEvalInfo->dbsci.lNext ); + if( lNext <= 0 ) + return HB_SUCCESS; } else if( ! pEvalInfo->dbsci.itmCobWhile && ! hb_itemGetLX( pEvalInfo->dbsci.fRest ) ) @@ -1087,45 +1089,42 @@ static HB_ERRCODE hb_waEval( AREAP pArea, LPDBEVALINFO pEvalInfo ) /* TODO: use SKIPSCOPE() method and fRest parameter */ - if( ! pEvalInfo->dbsci.lNext || lNext > 0 ) + for( ;; ) { - for( ;; ) + if( SELF_EOF( pArea, &fEof ) != HB_SUCCESS ) + return HB_FAILURE; + + if( fEof ) + break; + + if( pEvalInfo->dbsci.itmCobWhile ) { - if( SELF_EOF( pArea, &fEof ) != HB_SUCCESS ) + if( SELF_EVALBLOCK( pArea, pEvalInfo->dbsci.itmCobWhile ) != HB_SUCCESS ) return HB_FAILURE; - - if( fEof ) + if( ! hb_itemGetLX( pArea->valResult ) ) break; + } - if( pEvalInfo->dbsci.itmCobWhile ) - { - if( SELF_EVALBLOCK( pArea, pEvalInfo->dbsci.itmCobWhile ) != HB_SUCCESS ) - return HB_FAILURE; - if( ! hb_itemGetLX( pArea->valResult ) ) - break; - } + if( pEvalInfo->dbsci.itmCobFor ) + { + if( SELF_EVALBLOCK( pArea, pEvalInfo->dbsci.itmCobFor ) != HB_SUCCESS ) + return HB_FAILURE; + fFor = hb_itemGetLX( pArea->valResult ); + } + else + fFor = HB_TRUE; - if( pEvalInfo->dbsci.itmCobFor ) - { - if( SELF_EVALBLOCK( pArea, pEvalInfo->dbsci.itmCobFor ) != HB_SUCCESS ) - return HB_FAILURE; - fFor = hb_itemGetLX( pArea->valResult ); - } - else - fFor = HB_TRUE; - - if( fFor ) - { - if( SELF_EVALBLOCK( pArea, pEvalInfo->itmBlock ) != HB_SUCCESS ) - return HB_FAILURE; - } - - if( pEvalInfo->dbsci.itmRecID || ( pEvalInfo->dbsci.lNext && --lNext < 1 ) ) - break; - - if( SELF_SKIP( pArea, 1 ) != HB_SUCCESS ) + if( fFor ) + { + if( SELF_EVALBLOCK( pArea, pEvalInfo->itmBlock ) != HB_SUCCESS ) return HB_FAILURE; } + + if( pEvalInfo->dbsci.itmRecID || ( pEvalInfo->dbsci.lNext && --lNext < 1 ) ) + break; + + if( SELF_SKIP( pArea, 1 ) != HB_SUCCESS ) + return HB_FAILURE; } return HB_SUCCESS; @@ -1157,6 +1156,8 @@ static HB_ERRCODE hb_waLocate( AREAP pArea, HB_BOOL fContinue ) else if( pArea->dbsi.lNext ) { lNext = hb_itemGetNL( pArea->dbsi.lNext ); + if( lNext <= 0 ) + return HB_SUCCESS; } else if( ! pArea->dbsi.itmCobWhile && ! hb_itemGetLX( pArea->dbsi.fRest ) ) @@ -1169,48 +1170,45 @@ static HB_ERRCODE hb_waLocate( AREAP pArea, HB_BOOL fContinue ) /* TODO: use SKIPSCOPE() method and fRest parameter */ - if( ! pArea->dbsi.lNext || lNext > 0 ) + for( ;; ) { - for( ;; ) + if( SELF_EOF( pArea, &fEof ) != HB_SUCCESS ) + return HB_FAILURE; + + if( fEof ) + break; + + if( ! fContinue && pArea->dbsi.itmCobWhile ) { - if( SELF_EOF( pArea, &fEof ) != HB_SUCCESS ) + if( SELF_EVALBLOCK( pArea, pArea->dbsi.itmCobWhile ) != HB_SUCCESS ) + return HB_FAILURE; + if( ! hb_itemGetLX( pArea->valResult ) ) + break; + } + + if( ! pArea->dbsi.itmCobFor ) + { + pArea->fFound = HB_TRUE; + break; + } + else + { + if( SELF_EVALBLOCK( pArea, pArea->dbsi.itmCobFor ) != HB_SUCCESS ) return HB_FAILURE; - if( fEof ) - break; - - if( ! fContinue && pArea->dbsi.itmCobWhile ) - { - if( SELF_EVALBLOCK( pArea, pArea->dbsi.itmCobWhile ) != HB_SUCCESS ) - return HB_FAILURE; - if( ! hb_itemGetLX( pArea->valResult ) ) - break; - } - - if( ! pArea->dbsi.itmCobFor ) + if( hb_itemGetLX( pArea->valResult ) ) { pArea->fFound = HB_TRUE; break; } - else - { - if( SELF_EVALBLOCK( pArea, pArea->dbsi.itmCobFor ) != HB_SUCCESS ) - return HB_FAILURE; - - if( hb_itemGetLX( pArea->valResult ) ) - { - pArea->fFound = HB_TRUE; - break; - } - } - - if( ! fContinue && - ( pArea->dbsi.itmRecID || ( pArea->dbsi.lNext && --lNext < 1 ) ) ) - break; - - if( SELF_SKIP( pArea, 1 ) != HB_SUCCESS ) - return HB_FAILURE; } + + if( ! fContinue && + ( pArea->dbsi.itmRecID || ( pArea->dbsi.lNext && --lNext < 1 ) ) ) + break; + + if( SELF_SKIP( pArea, 1 ) != HB_SUCCESS ) + return HB_FAILURE; } return HB_SUCCESS; @@ -1234,6 +1232,8 @@ static HB_ERRCODE hb_waTrans( AREAP pArea, LPDBTRANSINFO pTransInfo ) else if( pTransInfo->dbsci.lNext ) { lNext = hb_itemGetNL( pTransInfo->dbsci.lNext ); + if( lNext <= 0 ) + return HB_SUCCESS; } else if( ! pTransInfo->dbsci.itmCobWhile && ! hb_itemGetLX( pTransInfo->dbsci.fRest ) ) @@ -1244,45 +1244,42 @@ static HB_ERRCODE hb_waTrans( AREAP pArea, LPDBTRANSINFO pTransInfo ) /* TODO: use SKIPSCOPE() method and fRest parameter */ - if( ! pTransInfo->dbsci.lNext || lNext > 0 ) + for( ;; ) { - for( ;; ) + if( SELF_EOF( pArea, &fEof ) != HB_SUCCESS ) + return HB_FAILURE; + + if( fEof ) + break; + + if( pTransInfo->dbsci.itmCobWhile ) { - if( SELF_EOF( pArea, &fEof ) != HB_SUCCESS ) + if( SELF_EVALBLOCK( pArea, pTransInfo->dbsci.itmCobWhile ) != HB_SUCCESS ) return HB_FAILURE; - - if( fEof ) + if( ! hb_itemGetLX( pArea->valResult ) ) break; + } - if( pTransInfo->dbsci.itmCobWhile ) - { - if( SELF_EVALBLOCK( pArea, pTransInfo->dbsci.itmCobWhile ) != HB_SUCCESS ) - return HB_FAILURE; - if( ! hb_itemGetLX( pArea->valResult ) ) - break; - } + if( pTransInfo->dbsci.itmCobFor ) + { + if( SELF_EVALBLOCK( pArea, pTransInfo->dbsci.itmCobFor ) != HB_SUCCESS ) + return HB_FAILURE; + fFor = hb_itemGetLX( pArea->valResult ); + } + else + fFor = HB_TRUE; - if( pTransInfo->dbsci.itmCobFor ) - { - if( SELF_EVALBLOCK( pArea, pTransInfo->dbsci.itmCobFor ) != HB_SUCCESS ) - return HB_FAILURE; - fFor = hb_itemGetLX( pArea->valResult ); - } - else - fFor = HB_TRUE; - - if( fFor ) - { - if( SELF_TRANSREC( pArea, pTransInfo ) != HB_SUCCESS ) - return HB_FAILURE; - } - - if( pTransInfo->dbsci.itmRecID || ( pTransInfo->dbsci.lNext && --lNext < 1 ) ) - break; - - if( SELF_SKIP( pArea, 1 ) != HB_SUCCESS ) + if( fFor ) + { + if( SELF_TRANSREC( pArea, pTransInfo ) != HB_SUCCESS ) return HB_FAILURE; } + + if( pTransInfo->dbsci.itmRecID || ( pTransInfo->dbsci.lNext && --lNext < 1 ) ) + break; + + if( SELF_SKIP( pArea, 1 ) != HB_SUCCESS ) + return HB_FAILURE; } return HB_SUCCESS;