diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 8b8ae3f659..3fc7524ef7 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,11 @@ 2002-12-01 23:12 UTC+0100 Foo Bar */ +2003-09-26 09:18 UTC+0300 Alexander Kresin + * source/rdd/dbfntx/dbfntx1.c + ! Bug fixed in ntxSeek(), reported by Przemyslaw Czerpak - + index unlocking wasn't present in some occasions. + 2003-09-22 17:07 UTC-0800 Luis Krause Mantilla * contrib/rdd_ads/adsfunc.c ! fixed parameter error handling in AdsSetAOF (borrowed from xHarbour) diff --git a/harbour/source/rdd/dbfntx/dbfntx1.c b/harbour/source/rdd/dbfntx/dbfntx1.c index 5a94e9ad2a..96c42f4c25 100644 --- a/harbour/source/rdd/dbfntx/dbfntx1.c +++ b/harbour/source/rdd/dbfntx/dbfntx1.c @@ -3131,15 +3131,20 @@ static ERRCODE ntxSeek( NTXAREAP pArea, BOOL bSoftSeek, PHB_ITEM pKey, BOOL bFin while( hb_ntxIsRecBad( pArea, pTag->CurKeyInfo->Xtra ) ); retvalue = SELF_GOTO( ( AREAP ) pArea, pTag->CurKeyInfo->Xtra ); pArea->fFound = TRUE; - return retvalue; } else { hb_ntxTagKeyGoTo( pTag, BTTM_RECORD, NULL ); retvalue = SELF_GOTO( ( AREAP ) pArea, pTag->CurKeyInfo->Xtra ); pArea->fFound = TRUE; - return retvalue; } + if( pArea->fShared && !pTag->Memory ) + { + hb_ntxPageFree( pTag,FALSE ); + hb_fsLock( pArea->lpCurTag->Owner->DiskFile, NTX_LOCK_OFFSET, 1, FL_UNLOCK ); + pArea->lpCurTag->Owner->Locked = FALSE; + } + return retvalue; } if( pArea->fShared && !pTag->Memory ) {