diff --git a/ChangeLog.txt b/ChangeLog.txt index 7c15b7351c..edbe4969c1 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,33 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2014-10-24 15:15 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * include/hbrddntx.h + * src/rdd/workarea.c + * src/rdd/dbf1.c + * src/rdd/delim1.c + * src/rdd/sdf1.c + * src/rdd/dbfcdx/dbfcdx1.c + * src/rdd/dbfnsx/dbfnsx1.c + * src/rdd/dbfntx/dbfntx1.c + * src/rdd/dbffpt/dbffpt1.c + * contrib/rddads/ads1.c + * contrib/rddads/adsfunc.c + * contrib/rddads/adsx.c + * contrib/rddsql/sqlbase.c + * contrib/rddsql/sqlmix.c + * contrib/sddfb/core.c + * contrib/sddmy/core.c + * contrib/sddoci/core.c + * contrib/sddodbc/core.c + * contrib/sddpg/core.c + * contrib/sddsqlt3/core.c + * cleaned AREAP casting + * unified some variable names + * cleaned some DBOI_* actions + * allow to call ORDERINFO() method without itmResult item. + * few other cleanups + 2014-10-24 04:13 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * contrib/rddads/ads1.c * contrib/rddads/adsfunc.c diff --git a/contrib/rddads/ads1.c b/contrib/rddads/ads1.c index f4ec9bd7d9..3a2b7fe7c8 100644 --- a/contrib/rddads/ads1.c +++ b/contrib/rddads/ads1.c @@ -183,7 +183,7 @@ static HB_ERRCODE commonError( ADSAREAP pArea, hb_errPutFileName( pError, szFileName ); if( uiFlags ) hb_errPutFlags( pError, uiFlags ); - errCode = SUPER_ERROR( ( AREAP ) pArea, pError ); + errCode = SUPER_ERROR( &pArea->area, pError ); if( ! pErrorPtr ) hb_itemRelease( pError ); } @@ -341,7 +341,9 @@ static int adsIndexPageSize( int iFileType ) { switch( iFileType ) { +#if ADS_LIB_VERSION >= 900 case ADS_VFP: +#endif case ADS_CDX: return 512; case ADS_NTX: return 1024; case ADS_ADT: return hb_ads_getIndexPageSize(); @@ -678,11 +680,11 @@ static double adsGetRelPos( ADSAREAP pArea, ADSHANDLE hOrder ) /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); if( ! pArea->fPositioned ) { - SELF_RECNO( ( AREAP ) pArea, &ulRecNo ); + SELF_RECNO( &pArea->area, &ulRecNo ); return ulRecNo > 1 ? 1.0 : 0.0; } else if( hOrder ) @@ -693,8 +695,8 @@ static double adsGetRelPos( ADSAREAP pArea, ADSHANDLE hOrder ) } else { - SELF_RECNO( ( AREAP ) pArea, &ulRecNo ); - SELF_RECCOUNT( ( AREAP ) pArea, &ulRecCount ); + SELF_RECNO( &pArea->area, &ulRecNo ); + SELF_RECCOUNT( &pArea->area, &ulRecCount ); if( ulRecNo == 0 || ulRecCount == 0 ) { return 0.0; @@ -713,9 +715,9 @@ static void adsSetRelPos( ADSAREAP pArea, ADSHANDLE hOrder, double dPos ) pArea->hOrdCurrent = hOrder; if( dPos >= 1.0 ) - SELF_GOBOTTOM( ( AREAP ) pArea ); + SELF_GOBOTTOM( &pArea->area ); else if( dPos <= 0.0 ) - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->area ); else if( hOrder ) { /* reset any pending relations */ @@ -725,25 +727,25 @@ static void adsSetRelPos( ADSAREAP pArea, ADSHANDLE hOrder, double dPos ) hb_adsUpdateAreaFlags( pArea ); /* Force relational movement in child WorkAreas */ if( pArea->area.lpdbRelations ) - SELF_SYNCCHILDREN( ( AREAP ) pArea ); + SELF_SYNCCHILDREN( &pArea->area ); - SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + SELF_SKIPFILTER( &pArea->area, 1 ); if( pArea->area.fEof ) - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->area ); } else { HB_ULONG ulRecCount, ulRecNo; - SELF_RECCOUNT( ( AREAP ) pArea, &ulRecCount ); + SELF_RECCOUNT( &pArea->area, &ulRecCount ); ulRecNo = ( HB_ULONG ) dPos * ulRecCount + 1; if( ulRecNo >= ulRecCount ) ulRecNo = ulRecCount; - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->area, ulRecNo ); - SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + SELF_SKIPFILTER( &pArea->area, 1 ); if( pArea->area.fEof ) - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->area ); } pArea->hOrdCurrent = hCurrOrder; } @@ -770,7 +772,7 @@ HB_ERRCODE hb_adsCloseCursor( ADSAREAP pArea ) pArea->hStatement = 0; } - errCode = SUPER_CLOSE( ( AREAP ) pArea ); + errCode = SUPER_CLOSE( &pArea->area ); /* Free buffer */ if( pArea->pRecord ) @@ -801,7 +803,7 @@ static HB_ERRCODE adsBof( ADSAREAP pArea, HB_BOOL * pBof ) /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); *pBof = pArea->area.fBof; @@ -814,7 +816,7 @@ static HB_ERRCODE adsEof( ADSAREAP pArea, HB_BOOL * pEof ) /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); *pEof = pArea->area.fEof; @@ -827,7 +829,7 @@ static HB_ERRCODE adsFound( ADSAREAP pArea, HB_BOOL * pFound ) /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); *pFound = pArea->area.fFound; @@ -857,9 +859,9 @@ static HB_ERRCODE adsGoBottom( ADSAREAP pArea ) /* Force relational movement in child WorkAreas */ if( pArea->area.lpdbRelations ) - SELF_SYNCCHILDREN( ( AREAP ) pArea ); + SELF_SYNCCHILDREN( &pArea->area ); - return SELF_SKIPFILTER( ( AREAP ) pArea, -1 ); + return SELF_SKIPFILTER( &pArea->area, -1 ); } static HB_ERRCODE adsGoTo( ADSAREAP pArea, HB_ULONG ulRecNo ) @@ -937,7 +939,7 @@ static HB_ERRCODE adsGoTo( ADSAREAP pArea, HB_ULONG ulRecNo ) if( ! pArea->fPositioned ) { /* set our record number value */ - SELF_RECCOUNT( ( AREAP ) pArea, &ulRecCount ); + SELF_RECCOUNT( &pArea->area, &ulRecCount ); /* eliminate posible race condition in this operation */ if( ulRecNo != 0 && ulRecNo <= ulRecCount ) pArea->ulRecNo = ulRecNo; @@ -952,7 +954,7 @@ static HB_ERRCODE adsGoTo( ADSAREAP pArea, HB_ULONG ulRecNo ) /* Force relational movement in child WorkAreas */ if( pArea->area.lpdbRelations ) - SELF_SYNCCHILDREN( ( AREAP ) pArea ); + SELF_SYNCCHILDREN( &pArea->area ); return u32RetVal == AE_SUCCESS ? HB_SUCCESS : HB_FAILURE; } @@ -966,7 +968,7 @@ static HB_ERRCODE adsGoToId( ADSAREAP pArea, PHB_ITEM pItem ) if( HB_IS_NUMERIC( pItem ) ) { ulRecNo = hb_itemGetNL( pItem ); - return SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + return SELF_GOTO( &pArea->area, ulRecNo ); } else { @@ -997,9 +999,9 @@ static HB_ERRCODE adsGoTop( ADSAREAP pArea ) /* Force relational movement in child WorkAreas */ if( pArea->area.lpdbRelations ) - SELF_SYNCCHILDREN( ( AREAP ) pArea ); + SELF_SYNCCHILDREN( &pArea->area ); - return SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + return SELF_SKIPFILTER( &pArea->area, 1 ); } static HB_ERRCODE adsSeek( ADSAREAP pArea, HB_BOOL bSoftSeek, PHB_ITEM pKey, HB_BOOL bFindLast ) @@ -1129,8 +1131,8 @@ static HB_ERRCODE adsSeek( ADSAREAP pArea, HB_BOOL bSoftSeek, PHB_ITEM pKey, HB_ * AdsSkip( -1 ) above */ if( pArea->area.fBof && ! pArea->area.fEof ) { - HB_ERRCODE errCode = SELF_GOTO( ( AREAP ) pArea, 0 ); - /* HB_ERRCODE errCode = SELF_GOTOP( ( AREAP ) pArea ); */ + HB_ERRCODE errCode = SELF_GOTO( &pArea->area, 0 ); + /* HB_ERRCODE errCode = SELF_GOTOP( &pArea->area ); */ pArea->area.fBof = HB_FALSE; #if defined( ADS_USE_OEM_TRANSLATION ) && ADS_LIB_VERSION < 600 if( pszKeyFree ) @@ -1141,7 +1143,7 @@ static HB_ERRCODE adsSeek( ADSAREAP pArea, HB_BOOL bSoftSeek, PHB_ITEM pKey, HB_ /* Force relational movement in child WorkAreas */ if( pArea->area.lpdbRelations ) - SELF_SYNCCHILDREN( ( AREAP ) pArea ); + SELF_SYNCCHILDREN( &pArea->area ); /* ----------------- BH ------------------ If a filter is set that is not valid for ADS, we need to skip @@ -1201,7 +1203,7 @@ static HB_ERRCODE adsSeek( ADSAREAP pArea, HB_BOOL bSoftSeek, PHB_ITEM pKey, HB_ * does scopes on client and if last good scoped record fails the filter, * the server will skip to the end anyway */ - if( SELF_SKIPFILTER( ( AREAP ) pArea, bFindLast ? -1 : 1 ) != HB_SUCCESS ) + if( SELF_SKIPFILTER( &pArea->area, bFindLast ? -1 : 1 ) != HB_SUCCESS ) { if( pucSavedKey ) hb_xfree( pucSavedKey ); @@ -1260,7 +1262,7 @@ static HB_ERRCODE adsSkip( ADSAREAP pArea, HB_LONG lToSkip ) /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); /* ----------------- Brian Hays ------------------ @@ -1308,7 +1310,7 @@ static HB_ERRCODE adsSkip( ADSAREAP pArea, HB_LONG lToSkip ) /* Force relational movement in child WorkAreas */ if( pArea->area.lpdbRelations ) - SELF_SYNCCHILDREN( ( AREAP ) pArea ); + SELF_SYNCCHILDREN( &pArea->area ); } return HB_SUCCESS; } @@ -1319,7 +1321,7 @@ static HB_ERRCODE adsSkip( ADSAREAP pArea, HB_LONG lToSkip ) if( ! pArea->fPositioned && lToSkip < 0 ) { - errCode = SELF_GOBOTTOM( ( AREAP ) pArea ); + errCode = SELF_GOBOTTOM( &pArea->area ); ++lToSkip; } @@ -1358,8 +1360,8 @@ static HB_ERRCODE adsSkip( ADSAREAP pArea, HB_LONG lToSkip ) hb_adsUpdateAreaFlags( pArea ); /* Force relational movement in child WorkAreas */ if( pArea->area.lpdbRelations ) - SELF_SYNCCHILDREN( ( AREAP ) pArea ); - errCode = SELF_SKIPFILTER( ( AREAP ) pArea, lSkipper ); + SELF_SYNCCHILDREN( &pArea->area ); + errCode = SELF_SKIPFILTER( &pArea->area, lSkipper ); lToSkip -= lSkipper; } pArea->area.fBof = HB_FALSE; @@ -1377,8 +1379,8 @@ static HB_ERRCODE adsSkip( ADSAREAP pArea, HB_LONG lToSkip ) hb_adsUpdateAreaFlags( pArea ); /* Force relational movement in child WorkAreas */ if( pArea->area.lpdbRelations ) - SELF_SYNCCHILDREN( ( AREAP ) pArea ); - errCode = SELF_SKIPFILTER( ( AREAP ) pArea, lSkipper ); + SELF_SYNCCHILDREN( &pArea->area ); + errCode = SELF_SKIPFILTER( &pArea->area, lSkipper ); lToSkip -= lSkipper; } pArea->area.fEof = HB_FALSE; @@ -1426,7 +1428,7 @@ static HB_ERRCODE adsSkipFilter( ADSAREAP pArea, HB_LONG lUpDown ) /* Force relational movement in child WorkAreas, the child fields can be a part of evaluated block so ti's necessary, here */ if( pArea->area.lpdbRelations ) - SELF_SYNCCHILDREN( ( AREAP ) pArea ); + SELF_SYNCCHILDREN( &pArea->area ); } } @@ -1441,11 +1443,11 @@ static HB_ERRCODE adsSkipFilter( ADSAREAP pArea, HB_LONG lUpDown ) { /* we were passing from bottom to this place (BOF) and we do not find any valid record so just simply make GOEOF() */ - errCode = SELF_GOTO( ( AREAP ) pArea, 0 ); + errCode = SELF_GOTO( &pArea->area, 0 ); } else { - errCode = SELF_GOTOP( ( AREAP ) pArea ); + errCode = SELF_GOTOP( &pArea->area ); pArea->area.fBof = HB_TRUE; } } @@ -1453,7 +1455,7 @@ static HB_ERRCODE adsSkipFilter( ADSAREAP pArea, HB_LONG lUpDown ) { HB_ULONG ulRecCount; /* set our record number value */ - errCode = SELF_RECCOUNT( ( AREAP ) pArea, &ulRecCount ); + errCode = SELF_RECCOUNT( &pArea->area, &ulRecCount ); pArea->ulRecNo = ulRecCount + 1; } else @@ -1482,7 +1484,7 @@ static HB_ERRCODE adsAppend( ADSAREAP pArea, HB_BOOL fUnLockAll ) } if( fUnLockAll && pArea->fShared && ! pArea->fFLocked ) - SELF_RAWLOCK( ( AREAP ) pArea, FILE_UNLOCK, 0 ); + SELF_RAWLOCK( &pArea->area, FILE_UNLOCK, 0 ); u32RetVal = AdsAppendRecord( pArea->hTable ); if( u32RetVal == AE_SUCCESS ) @@ -1491,11 +1493,11 @@ static HB_ERRCODE adsAppend( ADSAREAP pArea, HB_BOOL fUnLockAll ) { HB_ULONG ulRecNo; - if( SELF_RECNO( ( AREAP ) pArea, &ulRecNo ) == HB_SUCCESS ) + if( SELF_RECNO( &pArea->area, &ulRecNo ) == HB_SUCCESS ) { /* to avoid unnecessary record refreshing after locking */ pArea->fPositioned = HB_TRUE; - SELF_RAWLOCK( ( AREAP ) pArea, REC_LOCK, ulRecNo ); + SELF_RAWLOCK( &pArea->area, REC_LOCK, ulRecNo ); } } pArea->area.fBof = HB_FALSE; @@ -1531,7 +1533,7 @@ static HB_ERRCODE adsCreateFields( ADSAREAP pArea, PHB_ITEM pStruct ) HB_TRACE( HB_TR_DEBUG, ( "adsCreateFields(%p, %p)", pArea, pStruct ) ); uiItems = ( HB_USHORT ) hb_arrayLen( pStruct ); - SELF_SETFIELDEXTENT( ( AREAP ) pArea, uiItems ); + SELF_SETFIELDEXTENT( &pArea->area, uiItems ); memset( &dbFieldInfo, 0, sizeof( dbFieldInfo ) ); @@ -1889,7 +1891,7 @@ static HB_ERRCODE adsCreateFields( ADSAREAP pArea, PHB_ITEM pStruct ) return HB_FAILURE; } /* Add field */ - if( SELF_ADDFIELD( ( AREAP ) pArea, &dbFieldInfo ) == HB_FAILURE ) + if( SELF_ADDFIELD( &pArea->area, &dbFieldInfo ) == HB_FAILURE ) { return HB_FAILURE; } @@ -1906,7 +1908,7 @@ static HB_ERRCODE adsDeleteRec( ADSAREAP pArea ) /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); if( ! pArea->fPositioned ) return HB_SUCCESS; @@ -1928,7 +1930,7 @@ static HB_ERRCODE adsDeleted( ADSAREAP pArea, HB_BOOL * pDeleted ) /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); if( ! pArea->fPositioned ) { @@ -2093,7 +2095,7 @@ static HB_ERRCODE adsFieldInfo( ADSAREAP pArea, HB_USHORT uiIndex, HB_USHORT uiT break; default: - return SUPER_FIELDINFO( ( AREAP ) pArea, uiIndex, uiType, pItem ); + return SUPER_FIELDINFO( &pArea->area, uiIndex, uiType, pItem ); } return HB_SUCCESS; } @@ -2147,7 +2149,7 @@ static HB_ERRCODE adsGetRec( ADSAREAP pArea, HB_BYTE ** pBuffer ) /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); *pBuffer = pArea->pRecord; if( ! pArea->fPositioned ) @@ -2175,7 +2177,7 @@ static HB_ERRCODE adsGetValue( ADSAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); pField = pArea->area.lpFields + uiIndex - 1; @@ -2518,7 +2520,7 @@ static HB_ERRCODE adsGetVarLen( ADSAREAP pArea, HB_USHORT uiIndex, HB_ULONG * ul /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); if( ! pArea->fPositioned ) *ulLen = 0; @@ -2565,7 +2567,7 @@ static HB_ERRCODE adsPutRec( ADSAREAP pArea, const HB_BYTE * pBuffer ) /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); if( ! pArea->fPositioned ) return HB_SUCCESS; @@ -2615,7 +2617,7 @@ static HB_ERRCODE adsPutValue( ADSAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem --------------------------------------------------*/ /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); if( ! pArea->fPositioned ) return HB_SUCCESS; @@ -2823,7 +2825,7 @@ static HB_ERRCODE adsRecall( ADSAREAP pArea ) /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); if( ! pArea->fPositioned ) return HB_SUCCESS; @@ -2867,15 +2869,15 @@ static HB_ERRCODE adsRecInfo( ADSAREAP pArea, PHB_ITEM pRecID, HB_USHORT uiInfoT if( ulRecNo != 0 ) { - SELF_RECNO( ( AREAP ) pArea, &ulCurrRec ); + SELF_RECNO( &pArea->area, &ulCurrRec ); if( ulCurrRec == ulRecNo ) ulCurrRec = 0; else - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->area, ulRecNo ); } - uiRetVal = SELF_DELETED( ( AREAP ) pArea, &fDeleted ); + uiRetVal = SELF_DELETED( &pArea->area, &fDeleted ); if( ulCurrRec != 0 ) - SELF_GOTO( ( AREAP ) pArea, ulCurrRec ); + SELF_GOTO( &pArea->area, ulCurrRec ); hb_itemPutL( pInfo, fDeleted ); break; } @@ -2884,7 +2886,7 @@ static HB_ERRCODE adsRecInfo( ADSAREAP pArea, PHB_ITEM pRecID, HB_USHORT uiInfoT UNSIGNED16 u16Locked = 0; if( ulRecNo == 0 ) - uiRetVal = SELF_RECNO( ( AREAP ) pArea, &ulRecNo ); + uiRetVal = SELF_RECNO( &pArea->area, &ulRecNo ); if( AdsIsRecordLocked( pArea->hTable, ulRecNo, &u16Locked ) != AE_SUCCESS ) { @@ -2899,7 +2901,7 @@ static HB_ERRCODE adsRecInfo( ADSAREAP pArea, PHB_ITEM pRecID, HB_USHORT uiInfoT case DBRI_RECNO: if( ulRecNo == 0 ) - uiRetVal = SELF_RECNO( ( AREAP ) pArea, &ulRecNo ); + uiRetVal = SELF_RECNO( &pArea->area, &ulRecNo ); hb_itemPutNL( pInfo, ulRecNo ); break; @@ -2909,7 +2911,7 @@ static HB_ERRCODE adsRecInfo( ADSAREAP pArea, PHB_ITEM pRecID, HB_USHORT uiInfoT break; default: - return SUPER_RECINFO( ( AREAP ) pArea, pRecID, uiInfoType, pInfo ); + return SUPER_RECINFO( &pArea->area, pRecID, uiInfoType, pInfo ); } return uiRetVal; } @@ -2923,7 +2925,7 @@ static HB_ERRCODE adsRecNo( ADSAREAP pArea, HB_ULONG * ulRecNo ) /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); u32Result = AdsGetRecordNum( pArea->hTable, ADS_IGNOREFILTERS, &u32RecNo ); if( u32RecNo != 0 && u32Result == AE_SUCCESS ) @@ -2941,7 +2943,7 @@ static HB_ERRCODE adsRecId( ADSAREAP pArea, PHB_ITEM pRecNo ) HB_TRACE( HB_TR_DEBUG, ( "adsRecId(%p, %p)", pArea, pRecNo ) ); - errCode = SELF_RECNO( ( AREAP ) pArea, &ulRecNo ); + errCode = SELF_RECNO( &pArea->area, &ulRecNo ); hb_itemPutNL( pRecNo, ulRecNo ); return errCode; } @@ -3198,9 +3200,9 @@ static HB_ERRCODE adsCreate( ADSAREAP pArea, LPDBOPENINFO pCreateInfo ) pArea->fReadonly = HB_FALSE; /* pCreateInfo->fReadonly */ /* If successful call SUPER_CREATE to finish system jobs */ - if( SUPER_CREATE( ( AREAP ) pArea, pCreateInfo ) != HB_SUCCESS ) + if( SUPER_CREATE( &pArea->area, pCreateInfo ) != HB_SUCCESS ) { - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); return HB_FAILURE; } @@ -3210,7 +3212,7 @@ static HB_ERRCODE adsCreate( ADSAREAP pArea, LPDBOPENINFO pCreateInfo ) conversion it has to be at least 25 bytes size */ pArea->pRecord = ( HB_BYTE * ) hb_xgrab( HB_MAX( pArea->ulRecordLen, pArea->maxFieldLen ) + 1 ); - return SELF_GOTOP( ( AREAP ) pArea ); + return SELF_GOTOP( &pArea->area ); } static HB_ERRCODE adsInfo( ADSAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem ) @@ -3356,7 +3358,7 @@ static HB_ERRCODE adsInfo( ADSAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem ) /* use workarea.c implmentation */ default: - return SUPER_INFO( ( AREAP ) pArea, uiIndex, pItem ); + return SUPER_INFO( &pArea->area, uiIndex, pItem ); } return HB_SUCCESS; } @@ -3367,7 +3369,7 @@ static HB_ERRCODE adsNewArea( ADSAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "adsNewArea(%p)", pArea ) ); - errCode = SUPER_NEW( ( AREAP ) pArea ); + errCode = SUPER_NEW( &pArea->area ); if( errCode == HB_SUCCESS ) { switch( adsGetRddType( pArea->area.rddID ) ) @@ -3535,9 +3537,9 @@ static HB_ERRCODE adsOpen( ADSAREAP pArea, LPDBOPENINFO pOpenInfo ) pArea->fShared = pOpenInfo->fShared; pArea->fReadonly = pOpenInfo->fReadonly; - SELF_FIELDCOUNT( ( AREAP ) pArea, &uiFields ); + SELF_FIELDCOUNT( &pArea->area, &uiFields ); - SELF_SETFIELDEXTENT( ( AREAP ) pArea, uiFields ); + SELF_SETFIELDEXTENT( &pArea->area, uiFields ); memset( &dbFieldInfo, 0, sizeof( dbFieldInfo ) ); pArea->maxFieldLen = 0; @@ -3703,7 +3705,7 @@ static HB_ERRCODE adsOpen( ADSAREAP pArea, LPDBOPENINFO pOpenInfo ) } if( u32RetVal == AE_SUCCESS ) - u32RetVal = SELF_ADDFIELD( ( AREAP ) pArea, &dbFieldInfo ) == HB_FAILURE ? EDBF_CORRUPT : AE_SUCCESS; + u32RetVal = SELF_ADDFIELD( &pArea->area, &dbFieldInfo ) == HB_FAILURE ? EDBF_CORRUPT : AE_SUCCESS; if( u32RetVal != AE_SUCCESS ) break; @@ -3712,7 +3714,7 @@ static HB_ERRCODE adsOpen( ADSAREAP pArea, LPDBOPENINFO pOpenInfo ) if( u32RetVal != AE_SUCCESS ) { commonError( pArea, EG_CORRUPTION, ( HB_ERRCODE ) u32RetVal, 0, pOpenInfo->abName, EF_CANDEFAULT, NULL ); - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); return HB_FAILURE; } @@ -3728,9 +3730,9 @@ static HB_ERRCODE adsOpen( ADSAREAP pArea, LPDBOPENINFO pOpenInfo ) pArea->pRecord = ( HB_BYTE * ) hb_xgrab( HB_MAX( pArea->ulRecordLen, pArea->maxFieldLen ) + 1 ); /* If successful call SUPER_OPEN to finish system jobs */ - if( SUPER_OPEN( ( AREAP ) pArea, pOpenInfo ) == HB_FAILURE ) + if( SUPER_OPEN( &pArea->area, pOpenInfo ) == HB_FAILURE ) { - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); return HB_FAILURE; } @@ -3741,12 +3743,12 @@ static HB_ERRCODE adsOpen( ADSAREAP pArea, LPDBOPENINFO pOpenInfo ) pOrderInfo.itmNewVal = NULL; pOrderInfo.itmOrder = hb_itemPutNI( NULL, hb_setGetNI( HB_SET_AUTORDER ) ); pOrderInfo.atomBagName = NULL; - SELF_ORDLSTFOCUS( ( AREAP ) pArea, &pOrderInfo ); + SELF_ORDLSTFOCUS( &pArea->area, &pOrderInfo ); hb_itemRelease( pOrderInfo.itmOrder ); hb_itemRelease( pOrderInfo.itmResult ); } - return SELF_GOTOP( ( AREAP ) pArea ); + return SELF_GOTOP( &pArea->area ); } #define adsRelease NULL @@ -3819,7 +3821,7 @@ static HB_ERRCODE adsPack( ADSAREAP pArea ) AdsPackTable( pArea->hTable ); - return SELF_GOTOP( ( AREAP ) pArea ); + return SELF_GOTOP( &pArea->area ); } #define adsPackRec NULL @@ -3844,7 +3846,7 @@ static HB_ERRCODE adsZap( ADSAREAP pArea ) AdsZapTable( pArea->hTable ); - return SELF_GOTOP( ( AREAP ) pArea ); + return SELF_GOTOP( &pArea->area ); } static HB_ERRCODE adsChildEnd( ADSAREAP pArea, LPDBRELINFO pRelInfo ) @@ -3854,11 +3856,11 @@ static HB_ERRCODE adsChildEnd( ADSAREAP pArea, LPDBRELINFO pRelInfo ) HB_TRACE( HB_TR_DEBUG, ( "adsChildEnd(%p, %p)", pArea, pRelInfo ) ); if( pArea->lpdbPendingRel == pRelInfo ) - errCode = SELF_FORCEREL( ( AREAP ) pArea ); + errCode = SELF_FORCEREL( &pArea->area ); else errCode = HB_SUCCESS; - SUPER_CHILDEND( ( AREAP ) pArea, pRelInfo ); + SUPER_CHILDEND( &pArea->area, pRelInfo ); return errCode; } @@ -3867,9 +3869,9 @@ static HB_ERRCODE adsChildStart( ADSAREAP pArea, LPDBRELINFO pRelInfo ) { HB_TRACE( HB_TR_DEBUG, ( "adsChildStart(%p, %p)", pArea, pRelInfo ) ); - SELF_CHILDSYNC( ( AREAP ) pArea, pRelInfo ); + SELF_CHILDSYNC( &pArea->area, pRelInfo ); - return SUPER_CHILDSTART( ( AREAP ) pArea, pRelInfo ); + return SUPER_CHILDSTART( &pArea->area, pRelInfo ); } static HB_ERRCODE adsChildSync( ADSAREAP pArea, LPDBRELINFO pRelInfo ) @@ -3879,7 +3881,7 @@ static HB_ERRCODE adsChildSync( ADSAREAP pArea, LPDBRELINFO pRelInfo ) pArea->lpdbPendingRel = pRelInfo; if( pArea->area.lpdbRelations ) - SELF_SYNCCHILDREN( ( AREAP ) pArea ); + SELF_SYNCCHILDREN( &pArea->area ); return HB_SUCCESS; } @@ -3890,7 +3892,7 @@ static HB_ERRCODE adsClearRel( ADSAREAP pArea ) { HB_TRACE( HB_TR_DEBUG, ( "adsClearRel(%p)", pArea ) ); - SUPER_CLEARREL( ( AREAP ) pArea ); + SUPER_CLEARREL( &pArea->area ); AdsClearRelation( pArea->hTable ); return HB_SUCCESS; @@ -3908,7 +3910,7 @@ static HB_ERRCODE adsForceRel( ADSAREAP pArea ) pArea->lpdbPendingRel = NULL; if( ! lpdbPendingRel->isOptimized ) - SELF_RELEVAL( ( AREAP ) pArea, lpdbPendingRel ); + SELF_RELEVAL( &pArea->area, lpdbPendingRel ); hb_adsUpdateAreaFlags( pArea ); } @@ -3942,7 +3944,7 @@ static HB_ERRCODE adsSetRel( ADSAREAP pArea, LPDBRELINFO lpdbRelations ) } lpdbRelations->isOptimized = ( u32RetVal == AE_SUCCESS ); - return SUPER_SETREL( ( AREAP ) pArea, lpdbRelations ); + return SUPER_SETREL( &pArea->area, lpdbRelations ); } static HB_ERRCODE adsOrderListAdd( ADSAREAP pArea, LPDBORDERINFO pOrderInfo ) @@ -3968,7 +3970,7 @@ static HB_ERRCODE adsOrderListAdd( ADSAREAP pArea, LPDBORDERINFO pOrderInfo ) if( ! pArea->hOrdCurrent && u16ArrayLen > 0 ) { pArea->hOrdCurrent = ahIndex[ 0 ]; - return SELF_GOTOP( ( AREAP ) pArea ); + return SELF_GOTOP( &pArea->area ); } return HB_SUCCESS; @@ -4083,7 +4085,7 @@ static HB_ERRCODE adsOrderListRebuild( ADSAREAP pArea ) AdsReindex( pArea->hTable ); - return SELF_GOTOP( ( AREAP ) pArea ); + return SELF_GOTOP( &pArea->area ); } #define adsOrderCondition NULL @@ -4104,12 +4106,12 @@ static HB_ERRCODE adsOrderCreate( ADSAREAP pArea, LPDBORDERCREATEINFO pOrderInfo /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); if( ! pArea->area.lpdbOrdCondInfo || ( pArea->area.lpdbOrdCondInfo->fAll && ! pArea->area.lpdbOrdCondInfo->fAdditive ) ) { - SELF_ORDLSTCLEAR( ( AREAP ) pArea ); + SELF_ORDLSTCLEAR( &pArea->area ); fClose = HB_FALSE; } else if( pArea->area.lpdbOrdCondInfo->fAdditive ) @@ -4205,7 +4207,7 @@ static HB_ERRCODE adsOrderCreate( ADSAREAP pArea, LPDBORDERCREATEINFO pOrderInfo pucWhile, u32Options, &hIndex ); #endif - SELF_ORDSETCOND( ( AREAP ) pArea, NULL ); + SELF_ORDSETCOND( &pArea->area, NULL ); if( u32RetVal != AE_SUCCESS ) { @@ -4224,13 +4226,13 @@ static HB_ERRCODE adsOrderCreate( ADSAREAP pArea, LPDBORDERCREATEINFO pOrderInfo ( UNSIGNED8 * ) pOrderInfo->abBagName, ahIndex, &usArrayLen ); if( u32RetVal != AE_SUCCESS && u32RetVal != AE_INDEX_ALREADY_OPEN ) { - SELF_ORDSETCOND( ( AREAP ) pArea, NULL ); + SELF_ORDSETCOND( &pArea->area, NULL ); return HB_FAILURE; } pArea->hOrdCurrent = usArrayLen ? ahIndex[ 0 ] : 0; } - return SELF_GOTOP( ( AREAP ) pArea ); + return SELF_GOTOP( &pArea->area ); } static HB_ERRCODE adsOrderDestroy( ADSAREAP pArea, LPDBORDERINFO pOrderInfo ) @@ -4281,7 +4283,7 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); /* all others need an index handle */ if( uiIndex != DBOI_ORDERCOUNT && pOrderInfo->itmOrder && ! HB_IS_NIL( pOrderInfo->itmOrder ) ) @@ -4313,16 +4315,18 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO { case DBOI_CONDITION: if( hIndex && AdsGetIndexCondition( hIndex, aucBuffer, &u16len ) == AE_SUCCESS ) - hb_itemPutCL( pOrderInfo->itmResult, ( char * ) aucBuffer, u16len ); + pOrderInfo->itmResult = hb_itemPutCL( pOrderInfo->itmResult, + ( const char * ) aucBuffer, u16len ); else - hb_itemPutC( pOrderInfo->itmResult, NULL ); + pOrderInfo->itmResult = hb_itemPutC( pOrderInfo->itmResult, NULL ); break; case DBOI_EXPRESSION: if( hIndex && AdsGetIndexExpr( hIndex, aucBuffer, &u16len ) == AE_SUCCESS ) - hb_itemPutCL( pOrderInfo->itmResult, ( char * ) aucBuffer, u16len ); + pOrderInfo->itmResult = hb_itemPutCL( pOrderInfo->itmResult, + ( const char * ) aucBuffer, u16len ); else - hb_itemPutC( pOrderInfo->itmResult, NULL ); + pOrderInfo->itmResult = hb_itemPutC( pOrderInfo->itmResult, NULL ); break; case DBOI_ISCOND: @@ -4330,7 +4334,7 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO AdsGetIndexCondition( hIndex, aucBuffer, &u16 ); else u16 = 0; - hb_itemPutL( pOrderInfo->itmResult, u16 != 0 ); + pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, u16 != 0 ); break; case DBOI_ISDESC: @@ -4348,7 +4352,7 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO } else u16 = 0; - hb_itemPutL( pOrderInfo->itmResult, u16 != 0 ); + pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, u16 != 0 ); break; case DBOI_UNIQUE: @@ -4356,42 +4360,45 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO AdsIsIndexUnique( hIndex, &u16 ); else u16 = 0; - hb_itemPutL( pOrderInfo->itmResult, u16 != 0 ); + pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, u16 != 0 ); break; case DBOI_KEYTYPE: + { + const char * szType = NULL; if( hIndex ) { AdsGetKeyType( hIndex, &u16 ); switch( u16 ) { case ADS_STRING: - hb_itemPutC( pOrderInfo->itmResult, "C" ); + szType = "C"; break; case ADS_NUMERIC: - hb_itemPutC( pOrderInfo->itmResult, "N" ); + szType = "N"; break; case ADS_DATE: - hb_itemPutC( pOrderInfo->itmResult, "D" ); + szType = "D"; break; case ADS_LOGICAL: - hb_itemPutC( pOrderInfo->itmResult, "L" ); + szType = "L"; break; +#if 0 case ADS_RAW: - default: - hb_itemPutC( pOrderInfo->itmResult, NULL ); + szType = NULL; + break; +#endif } } - else - hb_itemPutC( pOrderInfo->itmResult, NULL ); + pOrderInfo->itmResult = hb_itemPutC( pOrderInfo->itmResult, szType ); break; - + } case DBOI_KEYSIZE: if( hIndex ) AdsGetKeyLength( hIndex, &u16 ); else u16 = 0; - hb_itemPutNI( pOrderInfo->itmResult, u16 ); + pOrderInfo->itmResult = hb_itemPutNI( pOrderInfo->itmResult, u16 ); break; case DBOI_KEYVAL: @@ -4405,10 +4412,12 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO AdsExtractKey( hIndex, aucBuffer, &u16len ); AdsGetKeyType( hIndex, &u16 ); + if( ! pOrderInfo->itmResult ) + pOrderInfo->itmResult = hb_itemNew( NULL ); adsGetKeyItem( pArea, pOrderInfo->itmResult, u16, ( char * ) aucBuffer, u16len ); } - else + else if( pOrderInfo->itmResult ) hb_itemClear( pOrderInfo->itmResult ); break; @@ -4429,7 +4438,7 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO hb_adsUpdateAreaFlags( pArea ); /* Force relational movement in child WorkAreas */ if( pArea->area.lpdbRelations ) - SELF_SYNCCHILDREN( ( AREAP ) pArea ); + SELF_SYNCCHILDREN( &pArea->area ); pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, ! pArea->area.fEof ); } @@ -4448,7 +4457,7 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO /* TODO: This count will be wrong if server doesn't know full filter! */ - hb_itemPutNL( pOrderInfo->itmResult, u32 ); + pOrderInfo->itmResult = hb_itemPutNL( pOrderInfo->itmResult, u32 ); } break; @@ -4457,13 +4466,13 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO if( hIndex ) { AdsGetKeyNum( hIndex, ADS_RESPECTSCOPES, &u32 ); - hb_itemPutNL( pOrderInfo->itmResult, u32 ); + pOrderInfo->itmResult = hb_itemPutNL( pOrderInfo->itmResult, u32 ); } else { HB_ULONG ulRecNo; - SELF_RECNO( ( AREAP ) pArea, &ulRecNo ); - hb_itemPutNL( pOrderInfo->itmResult, ulRecNo ); + SELF_RECNO( &pArea->area, &ulRecNo ); + pOrderInfo->itmResult = hb_itemPutNL( pOrderInfo->itmResult, ulRecNo ); } break; @@ -4480,7 +4489,8 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO AdsGetIndexName( hIndex, aucBuffer, &u16len ); else u16len = 0; - hb_itemPutCL( pOrderInfo->itmResult, ( char * ) aucBuffer, u16len ); + pOrderInfo->itmResult = hb_itemPutCL( pOrderInfo->itmResult, + ( const char * ) aucBuffer, u16len ); break; case DBOI_NUMBER: @@ -4490,7 +4500,7 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO AdsGetIndexOrderByHandle( hIndex, &usOrder ); else usOrder = 0; - hb_itemPutNI( pOrderInfo->itmResult, usOrder ); + pOrderInfo->itmResult = hb_itemPutNI( pOrderInfo->itmResult, usOrder ); break; } @@ -4499,7 +4509,8 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO AdsGetIndexFilename( hIndex, ADS_BASENAME, aucBuffer, &u16len ); else u16len = 0; - hb_itemPutCL( pOrderInfo->itmResult, ( char * ) aucBuffer, u16len ); + pOrderInfo->itmResult = hb_itemPutCL( pOrderInfo->itmResult, + ( const char * ) aucBuffer, u16len ); break; case DBOI_FULLPATH: @@ -4507,11 +4518,13 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO AdsGetIndexFilename( hIndex, ADS_FULLPATHNAME, aucBuffer, &u16len ); else u16len = 0; - hb_itemPutCL( pOrderInfo->itmResult, ( char * ) aucBuffer, u16len ); + pOrderInfo->itmResult = hb_itemPutCL( pOrderInfo->itmResult, + ( const char * ) aucBuffer, u16len ); break; case DBOI_BAGEXT: - hb_itemPutC( pOrderInfo->itmResult, adsIndexExt( pArea->iFileType ) ); + pOrderInfo->itmResult = hb_itemPutC( pOrderInfo->itmResult, + adsIndexExt( pArea->iFileType ) ); break; case DBOI_ORDERCOUNT: @@ -4545,7 +4558,7 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO else /* no specific bag requested; get all current indexes */ AdsGetNumIndexes( pArea->hTable, &u16 ); - hb_itemPutNI( pOrderInfo->itmResult, u16 ); + pOrderInfo->itmResult = hb_itemPutNI( pOrderInfo->itmResult, u16 ); break; case DBOI_KEYCOUNT: @@ -4571,7 +4584,7 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO scope and filter count on the server itself cannot be first limited to the scope and then filtered. */ - SELF_RECNO( ( AREAP ) pArea, &ulRecNo ); + SELF_RECNO( &pArea->area, &ulRecNo ); if( ( u32RetVal = AdsGotoTop( hIndex ) ) == AE_SUCCESS ) { for( ;; ) @@ -4584,7 +4597,7 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO if( u32RetVal != AE_SUCCESS ) break; } - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->area, ulRecNo ); } } else /* no scope set */ @@ -4597,19 +4610,15 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO u32RetVal = AdsGetRecordCount( pArea->hTable, ADS_RESPECTFILTERS, &u32 ); if( u32RetVal != AE_SUCCESS ) - { commonError( pArea, EG_CORRUPTION, ( HB_ERRCODE ) u32RetVal, 0, NULL, EF_CANDEFAULT, NULL ); - } - hb_itemPutNL( pOrderInfo->itmResult, u32 ); + pOrderInfo->itmResult = hb_itemPutNL( pOrderInfo->itmResult, u32 ); break; case DBOI_KEYCOUNTRAW: /* ignore filter but RESPECT SCOPE */ u32RetVal = AdsGetRecordCount( ( hIndex ? hIndex : pArea->hTable ), ADS_RESPECTSCOPES, &u32 ); if( u32RetVal != AE_SUCCESS ) - { commonError( pArea, EG_CORRUPTION, ( HB_ERRCODE ) u32RetVal, 0, NULL, EF_CANDEFAULT, NULL ); - } - hb_itemPutNL( pOrderInfo->itmResult, u32 ); + pOrderInfo->itmResult = hb_itemPutNL( pOrderInfo->itmResult, u32 ); break; case DBOI_SCOPETOP: @@ -4684,7 +4693,7 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO case DBOI_CUSTOM: if( hIndex ) AdsIsIndexCustom( hIndex, &u16 ); - hb_itemPutL( pOrderInfo->itmResult, u16 != 0 ); + pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, u16 != 0 ); break; #if ADS_LIB_VERSION >= 900 @@ -4694,17 +4703,17 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO hb_itemGetNL( pOrderInfo->itmNewVal ) : 1; if( hIndex ) { - hb_itemPutL( pOrderInfo->itmResult, + pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, AdsSkipUnique( hIndex, lToSkip >= 0 ? 1 : -1 ) == AE_SUCCESS ); hb_adsUpdateAreaFlags( pArea ); /* Force relational movement in child WorkAreas */ if( pArea->area.lpdbRelations ) - SELF_SYNCCHILDREN( ( AREAP ) pArea ); - SELF_SKIPFILTER( ( AREAP ) pArea, lToSkip ); + SELF_SYNCCHILDREN( &pArea->area ); + SELF_SKIPFILTER( &pArea->area, lToSkip ); } else - hb_itemPutL( pOrderInfo->itmResult, - SELF_SKIP( ( AREAP ) pArea, lToSkip ) == HB_SUCCESS ); + pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, + SELF_SKIP( &pArea->area, lToSkip ) == HB_SUCCESS ); break; } #endif @@ -4714,23 +4723,24 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO switch( u16 ) { case ADS_OPTIMIZED_FULL: /* ADS values are different from Harbour */ - hb_itemPutNI( pOrderInfo->itmResult, DBOI_OPTIMIZED_FULL ); + u16 = DBOI_OPTIMIZED_FULL; break; case ADS_OPTIMIZED_PART: - hb_itemPutNI( pOrderInfo->itmResult, DBOI_OPTIMIZED_PART ); + u16 = DBOI_OPTIMIZED_PART; break; default: - hb_itemPutNI( pOrderInfo->itmResult, DBOI_OPTIMIZED_NONE ); + u16 = DBOI_OPTIMIZED_NONE; } + pOrderInfo->itmResult = hb_itemPutNI( pOrderInfo->itmResult, u16 ); break; case DBOI_KEYADD: - hb_itemPutL( pOrderInfo->itmResult, + pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, hIndex && AdsAddCustomKey( hIndex ) == AE_SUCCESS ); break; case DBOI_KEYDELETE: - hb_itemPutL( pOrderInfo->itmResult, + pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, hIndex && AdsDeleteCustomKey( hIndex ) == AE_SUCCESS ); break; @@ -4752,14 +4762,14 @@ static HB_ERRCODE adsOrderInfo( ADSAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO */ case DBOI_AUTOOPEN: - hb_itemPutL( pOrderInfo->itmResult, HB_TRUE ); + pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, HB_TRUE ); /* TODO: Since ADS always opens structural indexes throw some kind of error if caller tries to set to False OR be prepared to close indexes (if ADS will allow it) if autoopen is False */ break; default: - return SUPER_ORDINFO( ( AREAP ) pArea, uiIndex, pOrderInfo ); + return SUPER_ORDINFO( &pArea->area, uiIndex, pOrderInfo ); } return HB_SUCCESS; } @@ -4770,7 +4780,7 @@ static HB_ERRCODE adsClearFilter( ADSAREAP pArea ) /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); /* We don't know if an AOF was used. @@ -4780,7 +4790,7 @@ static HB_ERRCODE adsClearFilter( ADSAREAP pArea ) AdsClearAOF( pArea->hTable ); AdsClearFilter( pArea->hTable ); - return SUPER_CLEARFILTER( ( AREAP ) pArea ); + return SUPER_CLEARFILTER( &pArea->area ); } #define adsClearLocate NULL @@ -4801,10 +4811,10 @@ static HB_ERRCODE adsSetFilter( ADSAREAP pArea, LPDBFILTERINFO pFilterInfo ) /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); /* must do this first as it calls clearFilter */ - if( SUPER_SETFILTER( ( AREAP ) pArea, pFilterInfo ) == HB_SUCCESS ) + if( SUPER_SETFILTER( &pArea->area, pFilterInfo ) == HB_SUCCESS ) { UNSIGNED16 bValidExpr = 0; UNSIGNED16 usResolve = ADS_RESOLVE_DYNAMIC ; /*ADS_RESOLVE_IMMEDIATE ;get this from a SETting*/ @@ -4867,8 +4877,8 @@ static HB_ERRCODE adsRawLock( ADSAREAP pArea, HB_USHORT uiAction, HB_ULONG ulRec if( ! pArea->fPositioned ) { HB_ULONG ulCurRec; - SELF_RECNO( ( AREAP ) pArea, &ulCurRec ); - SELF_GOTO( ( AREAP ) pArea, ulCurRec ); + SELF_RECNO( &pArea->area, &ulCurRec ); + SELF_GOTO( &pArea->area, ulCurRec ); } break; @@ -4894,8 +4904,8 @@ static HB_ERRCODE adsRawLock( ADSAREAP pArea, HB_USHORT uiAction, HB_ULONG ulRec if( ! pArea->fPositioned ) { HB_ULONG ulCurRec; - SELF_RECNO( ( AREAP ) pArea, &ulCurRec ); - SELF_GOTO( ( AREAP ) pArea, ulCurRec ); + SELF_RECNO( &pArea->area, &ulCurRec ); + SELF_GOTO( &pArea->area, ulCurRec ); } break; @@ -4930,14 +4940,14 @@ static HB_ERRCODE adsLock( ADSAREAP pArea, LPDBLOCKINFO pLockInfo ) AdsUnlockTable( pArea->hTable ); if( ! ulRecNo ) - SELF_RECNO( ( AREAP ) pArea, &ulRecNo ); + SELF_RECNO( &pArea->area, &ulRecNo ); uiAction = REC_LOCK; break; case DBLM_MULTIPLE: if( ! ulRecNo ) - SELF_RECNO( ( AREAP ) pArea, &ulRecNo ); + SELF_RECNO( &pArea->area, &ulRecNo ); uiAction = REC_LOCK; break; @@ -4953,7 +4963,7 @@ static HB_ERRCODE adsLock( ADSAREAP pArea, LPDBLOCKINFO pLockInfo ) return HB_FAILURE; } - pLockInfo->fResult = SELF_RAWLOCK( ( AREAP ) pArea, uiAction, + pLockInfo->fResult = SELF_RAWLOCK( &pArea->area, uiAction, ulRecNo ) == HB_SUCCESS; return HB_SUCCESS; } @@ -4966,7 +4976,7 @@ static HB_ERRCODE adsUnLock( ADSAREAP pArea, PHB_ITEM pRecNo ) ulRecNo = hb_itemGetNL( pRecNo ); - return SELF_RAWLOCK( ( AREAP ) pArea, + return SELF_RAWLOCK( &pArea->area, ulRecNo ? REC_UNLOCK : FILE_UNLOCK, ulRecNo ); } @@ -4986,7 +4996,7 @@ static HB_ERRCODE adsGetValueFile( ADSAREAP pArea, HB_USHORT uiIndex, const char /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); if( ! pArea->fPositioned ) return HB_SUCCESS; @@ -5014,7 +5024,7 @@ static HB_ERRCODE adsPutValueFile( ADSAREAP pArea, HB_USHORT uiIndex, const char /* resolve any pending relations */ if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); if( ! pArea->fPositioned ) return HB_SUCCESS; @@ -5556,7 +5566,7 @@ HB_FUNC( ADSCUSTOMIZEAOF ) if( HB_ISNIL( 1 ) ) /* default to current record */ { u32NumRecs = 1; - SELF_RECNO( ( AREAP ) pArea, &ulRecord ); + SELF_RECNO( &pArea->area, &ulRecord ); } else if( HB_ISNUM( 1 ) ) /* Passed a single recno */ { @@ -5583,7 +5593,7 @@ HB_FUNC( ADSCUSTOMIZEAOF ) #if 0 /* if server has Customized AOF, clear the super filter so bits won't get flipped off! */ if( u32RetVal == AE_SUCCESS ) - SUPER_CLEARFILTER( ( AREAP ) pArea ); + SUPER_CLEARFILTER( &pArea->area ); #endif hb_xfree( pu32Records ); } diff --git a/contrib/rddads/adsfunc.c b/contrib/rddads/adsfunc.c index 0835ea9469..5b534c462c 100644 --- a/contrib/rddads/adsfunc.c +++ b/contrib/rddads/adsfunc.c @@ -435,7 +435,7 @@ HB_FUNC( ADSISRECORDLOCKED ) if( HB_ISNUM( 1 ) ) ulRec = hb_parnl( 1 ); else - SELF_RECNO( ( AREAP ) pArea, &ulRec ); + SELF_RECNO( &pArea->area, &ulRec ); if( AdsIsRecordLocked( pArea->hTable, ( UNSIGNED32 ) ulRec, &pbLocked ) == AE_SUCCESS ) hb_retl( pbLocked != 0 ); @@ -718,7 +718,7 @@ HB_FUNC( ADSKEYCOUNT ) HB_ULONG ulRecNo; UNSIGNED16 u16eof; - SELF_RECNO( ( AREAP ) pArea, &ulRecNo ); + SELF_RECNO( &pArea->area, &ulRecNo ); AdsGotoTop( hIndex ); AdsAtEOF( pArea->hTable, &u16eof ); @@ -729,7 +729,7 @@ HB_FUNC( ADSKEYCOUNT ) pulKey++; } - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->area, ulRecNo ); } else AdsGetRecordCount( hIndex, usFilterOption, &pulKey ); @@ -968,7 +968,7 @@ HB_FUNC( ADSISRECORDVALID ) { HB_BOOL fEof = HB_TRUE; - if( SELF_EOF( ( AREAP ) pArea, &fEof ) == HB_SUCCESS && ! fEof ) + if( SELF_EOF( pArea, &fEof ) == HB_SUCCESS && ! fEof ) { if( pArea->dbfi.itmCobExpr ) { @@ -1297,7 +1297,7 @@ HB_FUNC( ADSEXECUTESQLDIRECT ) pInfo.abName = ""; pInfo.fReadonly = HB_TRUE; pArea->hTable = hCursor; - SELF_OPEN( ( AREAP ) pArea, &pInfo ); + SELF_OPEN( &pArea->area, &pInfo ); } else hb_adsCloseCursor( pArea ); @@ -1351,7 +1351,7 @@ HB_FUNC( ADSEXECUTESQL ) pInfo.abName = ""; pInfo.fReadonly = HB_TRUE; pArea->hTable = hCursor; - SELF_OPEN( ( AREAP ) pArea, &pInfo ); + SELF_OPEN( &pArea->area, &pInfo ); } else hb_adsCloseCursor( pArea ); diff --git a/contrib/rddads/adsx.c b/contrib/rddads/adsx.c index ba0c87c46b..e965d678bf 100644 --- a/contrib/rddads/adsx.c +++ b/contrib/rddads/adsx.c @@ -149,7 +149,7 @@ static HB_ERRCODE hb_mixErrorRT( ADSXAREAP pArea, hb_errPutFileName( pError, filename ); if( uiFlags ) hb_errPutFlags( pError, uiFlags ); - iRet = SELF_ERROR( ( AREAP ) pArea, pError ); + iRet = SELF_ERROR( &pArea->adsarea.area, pError ); hb_errRelease( pError ); } return iRet; @@ -482,8 +482,8 @@ static PMIXTAG mixTagCreate( const char * szTagName, PHB_ITEM pKeyExpr, PHB_ITEM while( ! pArea->adsarea.area.fEof ) { - SELF_RECNO( ( AREAP ) pArea, &ulRec ); - SELF_GOTO( ( AREAP ) pArea, ulRec ); + SELF_RECNO( &pArea->adsarea.area, &ulRec ); + SELF_GOTO( &pArea->adsarea.area, ulRec ); if( pEvalItem ) { @@ -720,7 +720,7 @@ static HB_ERRCODE adsxGoBottom( ADSXAREAP pArea ) pTag = pArea->pTagCurrent; if( ! pTag ) - return SUPER_GOBOTTOM( ( AREAP ) pArea ); + return SUPER_GOBOTTOM( &pArea->adsarea.area ); if( pTag->ulRecCount > 0 ) { @@ -730,7 +730,7 @@ static HB_ERRCODE adsxGoBottom( ADSXAREAP pArea ) { ulRecNo = 0; } - if( SUPER_GOTO( ( AREAP ) pArea, ulRecNo ) == HB_SUCCESS ) + if( SUPER_GOTO( &pArea->adsarea.area, ulRecNo ) == HB_SUCCESS ) { pTag->ulKeyNo = ulRecNo ? pTag->ulRecCount : 0; return HB_SUCCESS; @@ -748,7 +748,7 @@ static HB_ERRCODE adsxGoTop( ADSXAREAP pArea ) pTag = pArea->pTagCurrent; if( ! pTag ) - return SUPER_GOTOP( ( AREAP ) pArea ); + return SUPER_GOTOP( &pArea->adsarea.area ); if( pTag->ulRecCount > 0 ) { @@ -758,7 +758,7 @@ static HB_ERRCODE adsxGoTop( ADSXAREAP pArea ) { ulRecNo = 0; } - if( SUPER_GOTO( ( AREAP ) pArea, ulRecNo ) == HB_SUCCESS ) + if( SUPER_GOTO( &pArea->adsarea.area, ulRecNo ) == HB_SUCCESS ) { pTag->ulKeyNo = ulRecNo ? 1 : 0; return HB_SUCCESS; @@ -777,7 +777,7 @@ static HB_ERRCODE adsxSeek( ADSXAREAP pArea, HB_BOOL bSoftSeek, PHB_ITEM pKey, H HB_BOOL fFound = HB_FALSE; if( ! pArea->pTagCurrent ) - return SUPER_SEEK( ( AREAP ) pArea, bSoftSeek, pKey, bFindLast ); + return SUPER_SEEK( &pArea->adsarea.area, bSoftSeek, pKey, bFindLast ); /* TODO: pKey type validation, EG_DATATYPE runtime error */ uiLen = pArea->pTagCurrent->uiLen; @@ -823,7 +823,7 @@ static HB_ERRCODE adsxSeek( ADSXAREAP pArea, HB_BOOL bSoftSeek, PHB_ITEM pKey, H ulRecNo = ( bSoftSeek || fFound ) ? ulRecNo : 0; - errCode = SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + errCode = SELF_GOTO( &pArea->adsarea.area, ulRecNo ); pArea->adsarea.area.fEof = ulRecNo == 0; pArea->adsarea.area.fBof = HB_FALSE; @@ -840,11 +840,11 @@ static HB_ERRCODE adsxSkip( ADSXAREAP pArea, HB_LONG lToSkip ) HB_ERRCODE errCode = HB_SUCCESS; if( ! pArea->pTagCurrent || lToSkip == 0 ) - return SUPER_SKIP( ( AREAP ) pArea, lToSkip ); + return SUPER_SKIP( &pArea->adsarea.area, lToSkip ); /* resolve any pending relations */ if( pArea->adsarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->adsarea.area ); pArea->adsarea.area.fTop = pArea->adsarea.area.fBottom = HB_FALSE; @@ -852,7 +852,7 @@ static HB_ERRCODE adsxSkip( ADSXAREAP pArea, HB_LONG lToSkip ) { if( ! pArea->adsarea.fPositioned ) { - errCode = SELF_GOTO( ( AREAP ) pArea, pArea->adsarea.ulRecNo ); + errCode = SELF_GOTO( &pArea->adsarea.area, pArea->adsarea.ulRecNo ); } else { @@ -865,7 +865,7 @@ static HB_ERRCODE adsxSkip( ADSXAREAP pArea, HB_LONG lToSkip ) pArea->pTagCurrent->ulRecCount > ( HB_ULONG ) lToSkip && ulKeyPos < pArea->pTagCurrent->ulRecCount - ( HB_ULONG ) lToSkip ) { - if( SELF_GOTO( ( AREAP ) pArea, pArea->pTagCurrent->pKeys[ ulKeyPos + lToSkip ]->rec ) == HB_FAILURE ) + if( SELF_GOTO( &pArea->adsarea.area, pArea->pTagCurrent->pKeys[ ulKeyPos + lToSkip ]->rec ) == HB_FAILURE ) errCode = HB_FAILURE; pArea->adsarea.fPositioned = HB_TRUE; @@ -873,7 +873,7 @@ static HB_ERRCODE adsxSkip( ADSXAREAP pArea, HB_LONG lToSkip ) } else { - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->adsarea.area, 0 ); pArea->adsarea.fPositioned = HB_FALSE; pArea->adsarea.area.fEof = HB_TRUE; } @@ -885,7 +885,7 @@ static HB_ERRCODE adsxSkip( ADSXAREAP pArea, HB_LONG lToSkip ) { if( ! pArea->adsarea.fPositioned ) { - errCode = SELF_GOBOTTOM( ( AREAP ) pArea ); + errCode = SELF_GOBOTTOM( &pArea->adsarea.area ); pArea->adsarea.area.fBottom = HB_FALSE; ++lToSkip; } @@ -900,13 +900,13 @@ static HB_ERRCODE adsxSkip( ADSXAREAP pArea, HB_LONG lToSkip ) pArea->pTagCurrent->ulRecCount >= ( HB_ULONG ) ( -lToSkip ) && ulKeyPos >= ( HB_ULONG ) ( -lToSkip ) ) { - if( SELF_GOTO( ( AREAP ) pArea, pArea->pTagCurrent->pKeys[ ulKeyPos + lToSkip ]->rec ) == HB_FAILURE ) + if( SELF_GOTO( &pArea->adsarea.area, pArea->pTagCurrent->pKeys[ ulKeyPos + lToSkip ]->rec ) == HB_FAILURE ) errCode = HB_FAILURE; pArea->adsarea.area.fBof = HB_FALSE; } else { - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->adsarea.area ); pArea->adsarea.area.fBof = HB_TRUE; } @@ -916,7 +916,7 @@ static HB_ERRCODE adsxSkip( ADSXAREAP pArea, HB_LONG lToSkip ) /* Force relational movement in child WorkAreas */ if( pArea->adsarea.area.lpdbRelations ) - SELF_SYNCCHILDREN( ( AREAP ) pArea ); + SELF_SYNCCHILDREN( &pArea->adsarea.area ); return errCode; } @@ -928,7 +928,7 @@ static HB_ERRCODE adsxPutValue( ADSXAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pIt HB_ERRCODE errCode; pUpdate = mixUpdateCreate( pArea ); - errCode = SUPER_PUTVALUE( ( AREAP ) pArea, uiIndex, pItem ); + errCode = SUPER_PUTVALUE( &pArea->adsarea.area, uiIndex, pItem ); mixUpdateDestroy( pArea, pUpdate, errCode == HB_SUCCESS ); return errCode; } @@ -945,13 +945,13 @@ static HB_ERRCODE adsxClose( ADSXAREAP pArea ) pArea->pTagList = pArea->pTagList->pNext; mixTagDestroy( pTag ); } - return SUPER_CLOSE( ( AREAP ) pArea ); + return SUPER_CLOSE( &pArea->adsarea.area ); } static HB_ERRCODE adsxCreate( ADSXAREAP pArea, LPDBOPENINFO pCreateInfo ) { - if( SUPER_CREATE( ( AREAP ) pArea, pCreateInfo ) == HB_SUCCESS ) + if( SUPER_CREATE( &pArea->adsarea.area, pCreateInfo ) == HB_SUCCESS ) { if( pCreateInfo->cdpId ) { @@ -971,7 +971,7 @@ static HB_ERRCODE adsxNewArea( ADSXAREAP pArea ) { HB_ERRCODE errCode; - errCode = SUPER_NEW( ( AREAP ) pArea ); + errCode = SUPER_NEW( &pArea->adsarea.area ); if( errCode == HB_SUCCESS ) { if( pArea->adsarea.area.rddID == s_uiRddIdADSADTX ) @@ -993,7 +993,7 @@ static HB_ERRCODE adsxNewArea( ADSXAREAP pArea ) static HB_ERRCODE adsxOpen( ADSXAREAP pArea, LPDBOPENINFO pOpenInfo ) { - if( SUPER_OPEN( ( AREAP ) pArea, pOpenInfo ) == HB_SUCCESS ) + if( SUPER_OPEN( &pArea->adsarea.area, pOpenInfo ) == HB_SUCCESS ) { if( pOpenInfo->cdpId ) { @@ -1059,7 +1059,7 @@ static HB_ERRCODE adsxSysName( ADSXAREAP pArea, HB_BYTE * pBuffer ) static HB_ERRCODE adsxOrderListFocus( ADSXAREAP pArea, LPDBORDERINFO pOrderInfo ) { - if( SUPER_ORDLSTFOCUS( ( AREAP ) pArea, pOrderInfo ) == HB_SUCCESS ) + if( SUPER_ORDLSTFOCUS( &pArea->adsarea.area, pOrderInfo ) == HB_SUCCESS ) { if( pArea->pTagCurrent ) { @@ -1126,7 +1126,7 @@ static HB_ERRCODE adsxOrderCreate( ADSXAREAP pArea, LPDBORDERCREATEINFO pOrderIn if( bKeyADS && bForADS && bWhileADS ) { - return SUPER_ORDCREATE( ( AREAP ) pArea, pOrderInfo ); + return SUPER_ORDCREATE( &pArea->adsarea.area, pOrderInfo ); } if( pArea->adsarea.area.lpdbOrdCondInfo && @@ -1188,7 +1188,7 @@ static HB_ERRCODE adsxOrderCreate( ADSXAREAP pArea, LPDBORDERCREATEINFO pOrderIn } else { - if( SELF_COMPILE( ( AREAP ) pArea, hb_itemGetCPtr( pOrderInfo->abExpr ) ) == HB_FAILURE ) + if( SELF_COMPILE( &pArea->adsarea.area, hb_itemGetCPtr( pOrderInfo->abExpr ) ) == HB_FAILURE ) { if( hIndex ) AdsDeleteIndex( hIndex ); @@ -1200,13 +1200,13 @@ static HB_ERRCODE adsxOrderCreate( ADSXAREAP pArea, LPDBORDERCREATEINFO pOrderIn /* Test key codeblock on EOF */ ulRecNo = pArea->adsarea.ulRecNo; - SELF_GOTO( ( AREAP ) pArea, 0 ); - if( SELF_EVALBLOCK( ( AREAP ) pArea, pKeyItem ) == HB_FAILURE ) + SELF_GOTO( &pArea->adsarea.area, 0 ); + if( SELF_EVALBLOCK( &pArea->adsarea.area, pKeyItem ) == HB_FAILURE ) { if( hIndex ) AdsDeleteIndex( hIndex ); hb_vmDestroyBlockOrMacro( pKeyItem ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->adsarea.area, ulRecNo ); return HB_FAILURE; } @@ -1251,7 +1251,7 @@ static HB_ERRCODE adsxOrderCreate( ADSXAREAP pArea, LPDBORDERCREATEINFO pOrderIn if( hIndex ) AdsDeleteIndex( hIndex ); hb_vmDestroyBlockOrMacro( pKeyItem ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->adsarea.area, ulRecNo ); hb_mixErrorRT( pArea, bType == 'U' ? EG_DATATYPE : EG_DATAWIDTH, 1026, NULL, 0, 0 ); return HB_FAILURE; } @@ -1265,12 +1265,12 @@ static HB_ERRCODE adsxOrderCreate( ADSXAREAP pArea, LPDBORDERCREATEINFO pOrderIn } else if( pArea->adsarea.area.lpdbOrdCondInfo->abFor ) { - if( SELF_COMPILE( ( AREAP ) pArea, pArea->adsarea.area.lpdbOrdCondInfo->abFor ) == HB_FAILURE ) + if( SELF_COMPILE( &pArea->adsarea.area, pArea->adsarea.area.lpdbOrdCondInfo->abFor ) == HB_FAILURE ) { if( hIndex ) AdsDeleteIndex( hIndex ); hb_vmDestroyBlockOrMacro( pKeyItem ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->adsarea.area, ulRecNo ); return HB_FAILURE; } pForItem = pArea->adsarea.area.valResult; @@ -1284,14 +1284,14 @@ static HB_ERRCODE adsxOrderCreate( ADSXAREAP pArea, LPDBORDERCREATEINFO pOrderIn } else if( pArea->adsarea.area.lpdbOrdCondInfo->abWhile ) { - if( SELF_COMPILE( ( AREAP ) pArea, pArea->adsarea.area.lpdbOrdCondInfo->abWhile ) == HB_FAILURE ) + if( SELF_COMPILE( &pArea->adsarea.area, pArea->adsarea.area.lpdbOrdCondInfo->abWhile ) == HB_FAILURE ) { if( hIndex ) AdsDeleteIndex( hIndex ); hb_vmDestroyBlockOrMacro( pKeyItem ); if( pForItem ) hb_vmDestroyBlockOrMacro( pForItem ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->adsarea.area, ulRecNo ); return HB_FAILURE; } pWhileItem = pArea->adsarea.area.valResult; @@ -1302,7 +1302,7 @@ static HB_ERRCODE adsxOrderCreate( ADSXAREAP pArea, LPDBORDERCREATEINFO pOrderIn /* Test FOR codeblock on EOF */ if( pForItem ) { - if( SELF_EVALBLOCK( ( AREAP ) pArea, pForItem ) == HB_FAILURE ) + if( SELF_EVALBLOCK( &pArea->adsarea.area, pForItem ) == HB_FAILURE ) { if( hIndex ) AdsDeleteIndex( hIndex ); @@ -1310,7 +1310,7 @@ static HB_ERRCODE adsxOrderCreate( ADSXAREAP pArea, LPDBORDERCREATEINFO pOrderIn hb_vmDestroyBlockOrMacro( pForItem ); if( pWhileItem ) hb_vmDestroyBlockOrMacro( pWhileItem ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->adsarea.area, ulRecNo ); return HB_FAILURE; } if( hb_itemType( pArea->adsarea.area.valResult ) != HB_IT_LOGICAL ) @@ -1323,7 +1323,7 @@ static HB_ERRCODE adsxOrderCreate( ADSXAREAP pArea, LPDBORDERCREATEINFO pOrderIn hb_vmDestroyBlockOrMacro( pForItem ); if( pWhileItem ) hb_vmDestroyBlockOrMacro( pWhileItem ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->adsarea.area, ulRecNo ); hb_mixErrorRT( pArea, EG_DATATYPE, EDBF_INVALIDFOR, NULL, 0, 0 ); return HB_FAILURE; } @@ -1333,7 +1333,7 @@ static HB_ERRCODE adsxOrderCreate( ADSXAREAP pArea, LPDBORDERCREATEINFO pOrderIn /* TODO: WHILE condition is not tested, like in DBFCDX. Why? Compatibility with Clipper? */ - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->adsarea.area, ulRecNo ); /* Set auxiliary index as current for subindexing */ if( hIndex ) @@ -1371,7 +1371,7 @@ static HB_ERRCODE adsxOrderDestroy( ADSXAREAP pArea, LPDBORDERINFO pOrderInfo ) PMIXTAG pTag, pTag2; /* TODO: ADS RDD missing implementation of ordDestroy( nOrder ) */ - if( SUPER_ORDDESTROY( ( AREAP ) pArea, pOrderInfo ) == HB_SUCCESS ) + if( SUPER_ORDDESTROY( &pArea->adsarea.area, pOrderInfo ) == HB_SUCCESS ) return HB_SUCCESS; pTag = mixFindTag( pArea, pOrderInfo->itmOrder ); @@ -1409,7 +1409,7 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN /* resolve any pending relations */ if( pArea->adsarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->adsarea.area ); /* all others need an index handle */ if( uiIndex != DBOI_ORDERCOUNT ) @@ -1445,37 +1445,37 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN } if( ! pTag ) - return SUPER_ORDINFO( ( AREAP ) pArea, uiIndex, pOrderInfo ); + return SUPER_ORDINFO( &pArea->adsarea.area, uiIndex, pOrderInfo ); } switch( uiIndex ) { case DBOI_CONDITION: - hb_itemPutC( pOrderInfo->itmResult, pTag->szForExpr ); + pOrderInfo->itmResult = hb_itemPutC( pOrderInfo->itmResult, pTag->szForExpr ); break; case DBOI_EXPRESSION: - hb_itemPutC( pOrderInfo->itmResult, pTag->szKeyExpr ); + pOrderInfo->itmResult = hb_itemPutC( pOrderInfo->itmResult, pTag->szKeyExpr ); break; case DBOI_ISCOND: - hb_itemPutL( pOrderInfo->itmResult, pTag->pForItem != NULL ); + pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, pTag->pForItem != NULL ); break; case DBOI_ISDESC: - hb_itemPutL( pOrderInfo->itmResult, HB_FALSE ); + pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, HB_FALSE ); break; case DBOI_UNIQUE: - hb_itemPutL( pOrderInfo->itmResult, HB_FALSE ); + pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, HB_FALSE ); break; case DBOI_KEYTYPE: - hb_itemPutCL( pOrderInfo->itmResult, ( char * ) &pTag->bType, 1 ); + pOrderInfo->itmResult = hb_itemPutCL( pOrderInfo->itmResult, ( char * ) &pTag->bType, 1 ); break; case DBOI_KEYSIZE: - hb_itemPutNI( pOrderInfo->itmResult, pTag->uiLen ); + pOrderInfo->itmResult = hb_itemPutNI( pOrderInfo->itmResult, pTag->uiLen ); break; case DBOI_KEYVAL: @@ -1485,12 +1485,14 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN pItem = hb_vmEvalBlockOrMacro( pTag->pKeyItem ); hb_cdpSelect( pCodepage ); + if( ! pOrderInfo->itmResult ) + pOrderInfo->itmResult = hb_itemNew( NULL ); hb_itemMove( pOrderInfo->itmResult, pItem ); break; } case DBOI_KEYCOUNT: case DBOI_KEYCOUNTRAW: /* ignore filter but RESPECT SCOPE */ - hb_itemPutNL( pOrderInfo->itmResult, pTag->ulRecCount ); + pOrderInfo->itmResult = hb_itemPutNL( pOrderInfo->itmResult, pTag->ulRecCount ); break; case DBOI_POSITION: @@ -1503,7 +1505,7 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN ulPos = hb_itemGetNL( pOrderInfo->itmNewVal ); if( ulPos > 0 && ulPos <= pTag->ulRecCount ) - SELF_GOTO( ( AREAP ) pArea, pTag->pKeys[ ulPos - 1 ]->rec ); + SELF_GOTO( &pArea->adsarea.area, pTag->pKeys[ ulPos - 1 ]->rec ); pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, ! pArea->adsarea.area.fEof ); } @@ -1513,13 +1515,13 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN HB_ULONG ulKeyPos; if( ! pArea->adsarea.fPositioned ) - SELF_GOTO( ( AREAP ) pArea, pArea->adsarea.ulRecNo ); + SELF_GOTO( &pArea->adsarea.area, pArea->adsarea.ulRecNo ); else pArea->adsarea.area.fEof = HB_FALSE; pKey = mixKeyEval( pTag, pArea ); - hb_itemPutNL( pOrderInfo->itmResult, + pOrderInfo->itmResult = hb_itemPutNL( pOrderInfo->itmResult, mixFindKey( pTag, pKey, &ulKeyPos ) ? ( ulKeyPos + 1 ) : 0 ); mixKeyFree( pKey ); } @@ -1533,7 +1535,7 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN ulPos = ( HB_ULONG ) ( hb_itemGetND( pOrderInfo->itmNewVal ) * ( double ) pTag->ulRecCount ); if( ulPos > 0 && ulPos <= pTag->ulRecCount ) - SELF_GOTO( ( AREAP ) pArea, pTag->pKeys[ ulPos - 1 ]->rec ); + SELF_GOTO( &pArea->adsarea.area, pTag->pKeys[ ulPos - 1 ]->rec ); pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, ! pArea->adsarea.area.fEof ); } @@ -1543,7 +1545,7 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN HB_ULONG ulKeyPos; if( ! pArea->adsarea.fPositioned ) - SELF_GOTO( ( AREAP ) pArea, pArea->adsarea.ulRecNo ); + SELF_GOTO( &pArea->adsarea.area, pArea->adsarea.ulRecNo ); else pArea->adsarea.area.fEof = HB_FALSE; @@ -1560,19 +1562,19 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN break; case DBOI_NAME: - hb_itemPutC( pOrderInfo->itmResult, pTag->szName ); + pOrderInfo->itmResult = hb_itemPutC( pOrderInfo->itmResult, pTag->szName ); break; case DBOI_BAGNAME: - hb_itemPutC( pOrderInfo->itmResult, NULL ); + pOrderInfo->itmResult = hb_itemPutC( pOrderInfo->itmResult, NULL ); break; case DBOI_FULLPATH: - hb_itemPutC( pOrderInfo->itmResult, NULL ); + pOrderInfo->itmResult = hb_itemPutC( pOrderInfo->itmResult, NULL ); break; case DBOI_BAGEXT: - hb_itemPutC( pOrderInfo->itmResult, "mix" ); + pOrderInfo->itmResult = hb_itemPutC( pOrderInfo->itmResult, "mix" ); break; case DBOI_ORDERCOUNT: @@ -1586,7 +1588,7 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN pTag = pTag->pNext; usOrder++; } - hb_itemPutNI( pOrderInfo->itmResult, ( int ) usOrder ); + pOrderInfo->itmResult = hb_itemPutNI( pOrderInfo->itmResult, ( int ) usOrder ); break; } @@ -1603,32 +1605,32 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN pTag2 = pTag2->pNext; usOrder++; } - hb_itemPutNI( pOrderInfo->itmResult, ( int ) usOrder ); + pOrderInfo->itmResult = hb_itemPutNI( pOrderInfo->itmResult, ( int ) usOrder ); break; } case DBOI_CUSTOM: - hb_itemPutL( pOrderInfo->itmResult, HB_FALSE ); + pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, HB_FALSE ); break; case DBOI_OPTLEVEL: - hb_itemPutNI( pOrderInfo->itmResult, DBOI_OPTIMIZED_NONE ); + pOrderInfo->itmResult = hb_itemPutNI( pOrderInfo->itmResult, DBOI_OPTIMIZED_NONE ); break; case DBOI_KEYADD: - hb_itemPutL( pOrderInfo->itmResult, HB_FALSE ); + pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, HB_FALSE ); break; case DBOI_KEYDELETE: - hb_itemPutL( pOrderInfo->itmResult, HB_FALSE ); + pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, HB_FALSE ); break; case DBOI_AUTOOPEN: - hb_itemPutL( pOrderInfo->itmResult, HB_FALSE ); + pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, HB_FALSE ); break; default: - return SUPER_ORDINFO( ( AREAP ) pArea, uiIndex, pOrderInfo ); + return SUPER_ORDINFO( &pArea->adsarea.area, uiIndex, pOrderInfo ); } return HB_SUCCESS; } diff --git a/contrib/rddsql/sqlbase.c b/contrib/rddsql/sqlbase.c index 8e57829a43..f30b53aed1 100644 --- a/contrib/rddsql/sqlbase.c +++ b/contrib/rddsql/sqlbase.c @@ -268,7 +268,7 @@ int hb_sddRegister( PSDDNODE pSdd ) static HB_ERRCODE sqlbaseGoBottom( SQLBASEAREAP pArea ) { - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; @@ -278,16 +278,16 @@ static HB_ERRCODE sqlbaseGoBottom( SQLBASEAREAP pArea ) pArea->area.fTop = HB_FALSE; pArea->area.fBottom = HB_TRUE; - if( SELF_GOTO( ( AREAP ) pArea, pArea->ulRecCount ) != HB_SUCCESS ) + if( SELF_GOTO( &pArea->area, pArea->ulRecCount ) != HB_SUCCESS ) return HB_FAILURE; - return SELF_SKIPFILTER( ( AREAP ) pArea, -1 ); + return SELF_SKIPFILTER( &pArea->area, -1 ); } static HB_ERRCODE sqlbaseGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo ) { - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; if( pArea->pSDD->GoTo( pArea, ulRecNo ) == HB_FAILURE ) @@ -314,14 +314,14 @@ static HB_ERRCODE sqlbaseGoToId( SQLBASEAREAP pArea, PHB_ITEM pItem ) PHB_ITEM pError; if( HB_IS_NUMERIC( pItem ) ) - return SELF_GOTO( ( AREAP ) pArea, hb_itemGetNL( pItem ) ); + return SELF_GOTO( &pArea->area, hb_itemGetNL( pItem ) ); else { pError = hb_errNew(); hb_errPutGenCode( pError, EG_DATATYPE ); hb_errPutDescription( pError, hb_langDGetErrorDesc( EG_DATATYPE ) ); hb_errPutSubCode( pError, EDBF_DATATYPE ); - SELF_ERROR( ( AREAP ) pArea, pError ); + SELF_ERROR( &pArea->area, pError ); hb_itemRelease( pError ); return HB_FAILURE; } @@ -333,10 +333,10 @@ static HB_ERRCODE sqlbaseGoTop( SQLBASEAREAP pArea ) pArea->area.fTop = HB_TRUE; pArea->area.fBottom = HB_FALSE; - if( SELF_GOTO( ( AREAP ) pArea, 1 ) == HB_FAILURE ) + if( SELF_GOTO( &pArea->area, 1 ) == HB_FAILURE ) return HB_FAILURE; - return SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + return SELF_SKIPFILTER( &pArea->area, 1 ); } @@ -346,7 +346,7 @@ static HB_ERRCODE sqlbaseSkip( SQLBASEAREAP pArea, HB_LONG lToSkip ) if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -354,14 +354,14 @@ static HB_ERRCODE sqlbaseSkip( SQLBASEAREAP pArea, HB_LONG lToSkip ) if( lToSkip == 0 || hb_setGetDeleted() || pArea->area.dbfi.itmCobExpr || pArea->area.dbfi.fFilter ) - return SUPER_SKIP( ( AREAP ) pArea, lToSkip ); + return SUPER_SKIP( &pArea->area, lToSkip ); - errCode = SELF_SKIPRAW( ( AREAP ) pArea, lToSkip ); + errCode = SELF_SKIPRAW( &pArea->area, lToSkip ); /* Move first record and set Bof flag */ if( errCode == HB_SUCCESS && pArea->area.fBof && lToSkip < 0 ) { - errCode = SELF_GOTOP( ( AREAP ) pArea ); + errCode = SELF_GOTOP( &pArea->area ); pArea->area.fBof = HB_TRUE; } @@ -380,7 +380,7 @@ static HB_ERRCODE sqlbaseSkipRaw( SQLBASEAREAP pArea, HB_LONG lToSkip ) if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -393,7 +393,7 @@ static HB_ERRCODE sqlbaseSkipRaw( SQLBASEAREAP pArea, HB_LONG lToSkip ) bBof = pArea->area.fBof; bEof = pArea->area.fEof; - errCode = SELF_GOTO( ( AREAP ) pArea, pArea->ulRecNo ); + errCode = SELF_GOTO( &pArea->area, pArea->ulRecNo ); /* Restore flags */ pArea->area.fBof = bBof; @@ -401,11 +401,11 @@ static HB_ERRCODE sqlbaseSkipRaw( SQLBASEAREAP pArea, HB_LONG lToSkip ) } else if( lToSkip < 0 && ( HB_ULONG ) ( -lToSkip ) >= pArea->ulRecNo ) { - errCode = SELF_GOTO( ( AREAP ) pArea, 1 ); + errCode = SELF_GOTO( &pArea->area, 1 ); pArea->area.fBof = HB_TRUE; } else - errCode = SELF_GOTO( ( AREAP ) pArea, pArea->ulRecNo + lToSkip ); + errCode = SELF_GOTO( &pArea->area, pArea->ulRecNo + lToSkip ); return errCode; } @@ -416,10 +416,10 @@ static HB_ERRCODE sqlbaseAppend( SQLBASEAREAP pArea, HB_BOOL bUnLockAll ) HB_SYMBOL_UNUSED( bUnLockAll ); /* This GOTO is GOCOLD + GOEOF */ - if( SELF_GOTO( ( AREAP ) pArea, 0 ) == HB_FAILURE ) + if( SELF_GOTO( &pArea->area, 0 ) == HB_FAILURE ) return HB_FAILURE; - if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) == HB_FAILURE ) + if( ! pArea->fRecordChanged && SELF_GOHOT( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; if( pArea->ulRecCount + 1 >= pArea->ulRecMax ) @@ -442,7 +442,7 @@ static HB_ERRCODE sqlbaseDeleteRec( SQLBASEAREAP pArea ) if( ! pArea->fPositioned ) return HB_SUCCESS; - if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) == HB_FAILURE ) + if( ! pArea->fRecordChanged && SELF_GOHOT( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; pArea->bRecordFlags |= SQLDD_FLAG_DELETED; @@ -508,7 +508,7 @@ static HB_ERRCODE sqlbaseGoHot( SQLBASEAREAP pArea ) for( us = 1; us <= pArea->area.uiFieldCount; us++ ) { pItem = hb_itemNew( NULL ); - if( SELF_GETVALUE( ( AREAP ) pArea, us, pItem ) == HB_SUCCESS ) + if( SELF_GETVALUE( &pArea->area, us, pItem ) == HB_SUCCESS ) hb_arraySetForward( pArray, us, pItem ); hb_itemRelease( pItem ); } @@ -530,7 +530,7 @@ static HB_ERRCODE sqlbasePutValue( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_IT if( ! pArea->fPositioned ) return HB_SUCCESS; - if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) == HB_FAILURE ) + if( ! pArea->fRecordChanged && SELF_GOHOT( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; errCode = HB_SUCCESS; @@ -556,7 +556,7 @@ static HB_ERRCODE sqlbasePutValue( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_IT hb_errPutOperation( pError, hb_dynsymName( ( PHB_DYNS ) pField->sym ) ); hb_errPutSubCode( pError, errCode ); hb_errPutFlags( pError, EF_CANDEFAULT ); - errCode = SELF_ERROR( ( AREAP ) pArea, pError ); + errCode = SELF_ERROR( &pArea->area, pError ); hb_itemRelease( pError ); return errCode == E_DEFAULT ? HB_SUCCESS : HB_FAILURE; } @@ -569,7 +569,7 @@ static HB_ERRCODE sqlbaseRecall( SQLBASEAREAP pArea ) if( ! pArea->fPositioned ) return HB_SUCCESS; - if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) != HB_SUCCESS ) + if( ! pArea->fRecordChanged && SELF_GOHOT( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; pArea->bRecordFlags &= ~SQLDD_FLAG_DELETED; @@ -596,7 +596,7 @@ static HB_ERRCODE sqlbaseRecId( SQLBASEAREAP pArea, PHB_ITEM pRecNo ) HB_ERRCODE errCode; HB_ULONG ulRecNo; - errCode = SELF_RECNO( ( AREAP ) pArea, &ulRecNo ); + errCode = SELF_RECNO( &pArea->area, &ulRecNo ); hb_itemPutNInt( pRecNo, ulRecNo ); return errCode; } @@ -604,10 +604,10 @@ static HB_ERRCODE sqlbaseRecId( SQLBASEAREAP pArea, PHB_ITEM pRecNo ) static HB_ERRCODE sqlbaseClose( SQLBASEAREAP pArea ) { - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; - if( SUPER_CLOSE( ( AREAP ) pArea ) == HB_FAILURE ) + if( SUPER_CLOSE( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; if( pArea->pSDD ) @@ -741,7 +741,7 @@ static HB_ERRCODE sqlbaseCreate( SQLBASEAREAP pArea, LPDBOPENINFO pOpenInfo ) hb_itemClear( pItemEof ); hb_itemRelease( pItemEof ); hb_errRT_SQLBASE( EG_CORRUPTION, ESQLDD_INVALIDFIELD, "Invalid field type", NULL ); - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); return HB_FAILURE; } @@ -755,13 +755,13 @@ static HB_ERRCODE sqlbaseCreate( SQLBASEAREAP pArea, LPDBOPENINFO pOpenInfo ) pArea->pRowFlags[ 0 ] = SQLDD_FLAG_CACHED; pArea->fFetched = HB_TRUE; - if( SUPER_CREATE( ( AREAP ) pArea, pOpenInfo ) != HB_SUCCESS ) + if( SUPER_CREATE( &pArea->area, pOpenInfo ) != HB_SUCCESS ) { - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); return HB_FAILURE; } - return SELF_GOTOP( ( AREAP ) pArea ); + return SELF_GOTOP( &pArea->area ); } @@ -774,7 +774,7 @@ static HB_ERRCODE sqlbaseInfo( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_ITEM p break; default: - return SUPER_INFO( ( AREAP ) pArea, uiIndex, pItem ); + return SUPER_INFO( &pArea->area, uiIndex, pItem ); } return HB_SUCCESS; @@ -808,14 +808,14 @@ static HB_ERRCODE sqlbaseOpen( SQLBASEAREAP pArea, LPDBOPENINFO pOpenInfo ) errCode = pArea->pSDD->Open( pArea ); if( errCode == HB_SUCCESS ) - errCode = SUPER_OPEN( ( AREAP ) pArea, pOpenInfo ); + errCode = SUPER_OPEN( &pArea->area, pOpenInfo ); if( errCode != HB_SUCCESS ) { - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); return HB_FAILURE; } - return SELF_GOTOP( ( AREAP ) pArea ); + return SELF_GOTOP( &pArea->area ); } @@ -834,31 +834,31 @@ static HB_ERRCODE sqlbaseChildEnd( SQLBASEAREAP pArea, LPDBRELINFO pRelInfo ) HB_ERRCODE errCode; if( pArea->lpdbPendingRel == pRelInfo ) - errCode = SELF_FORCEREL( ( AREAP ) pArea ); + errCode = SELF_FORCEREL( &pArea->area ); else errCode = HB_SUCCESS; - SUPER_CHILDEND( ( AREAP ) pArea, pRelInfo ); + SUPER_CHILDEND( &pArea->area, pRelInfo ); return errCode; } static HB_ERRCODE sqlbaseChildStart( SQLBASEAREAP pArea, LPDBRELINFO pRelInfo ) { - if( SELF_CHILDSYNC( ( AREAP ) pArea, pRelInfo ) != HB_SUCCESS ) + if( SELF_CHILDSYNC( &pArea->area, pRelInfo ) != HB_SUCCESS ) return HB_FAILURE; - return SUPER_CHILDSTART( ( AREAP ) pArea, pRelInfo ); + return SUPER_CHILDSTART( &pArea->area, pRelInfo ); } static HB_ERRCODE sqlbaseChildSync( SQLBASEAREAP pArea, LPDBRELINFO pRelInfo ) { - if( SELF_GOCOLD( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; pArea->lpdbPendingRel = pRelInfo; if( pArea->lpdbRelations ) - return SELF_SYNCCHILDREN( ( AREAP ) pArea ); + return SELF_SYNCCHILDREN( &pArea->area ); return HB_SUCCESS; } @@ -872,7 +872,7 @@ static HB_ERRCODE sqlbaseForceRel( SQLBASEAREAP pArea ) lpdbPendingRel = pArea->lpdbPendingRel; pArea->lpdbPendingRel = NULL; - return SELF_RELEVAL( ( AREAP ) pArea, lpdbPendingRel ); + return SELF_RELEVAL( &pArea->area, lpdbPendingRel ); } return HB_SUCCESS; } @@ -882,10 +882,10 @@ static HB_ERRCODE sqlbaseSetFilter( SQLBASEAREAP pArea, LPDBFILTERINFO pFilterIn { if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } - return SUPER_SETFILTER( ( AREAP ) pArea, pFilterInfo ); + return SUPER_SETFILTER( &pArea->area, pFilterInfo ); } #endif diff --git a/contrib/rddsql/sqlmix.c b/contrib/rddsql/sqlmix.c index 7b1e02670a..4e39e000f3 100644 --- a/contrib/rddsql/sqlmix.c +++ b/contrib/rddsql/sqlmix.c @@ -114,7 +114,7 @@ static HB_ERRCODE sqlmixErrorRT( SQLMIXAREAP pArea, HB_ERRCODE errGenCode, HB_ER hb_errPutFileName( pError, filename ); if( uiFlags ) hb_errPutFlags( pError, uiFlags ); - iRet = SELF_ERROR( ( AREAP ) pArea, pError ); + iRet = SELF_ERROR( &pArea->sqlarea.area, pError ); hb_errRelease( pError ); } return iRet; @@ -440,7 +440,7 @@ static HB_BOOL hb_mixTagRefreshKey( PMIXTAG pTag ) pArea = pTag->pArea; if( pArea->sqlarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->sqlarea.area ); if( ! pArea->sqlarea.fPositioned ) { @@ -832,9 +832,9 @@ static PMIXTAG hb_mixTagCreate( const char * szTagName, PHB_ITEM pKeyExpr, PHB_I ulStartRec = 1; if( ulStartRec ) - SELF_GOTO( ( AREAP ) pArea, ulStartRec ); + SELF_GOTO( &pArea->sqlarea.area, ulStartRec ); else - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->sqlarea.area ); while( ! pArea->sqlarea.area.fEof ) { @@ -866,7 +866,7 @@ static PMIXTAG hb_mixTagCreate( const char * szTagName, PHB_ITEM pKeyExpr, PHB_I if( ! ulNextCount ) break; } - if( SELF_SKIPRAW( ( AREAP ) pArea, 1 ) == HB_FAILURE ) + if( SELF_SKIPRAW( &pArea->sqlarea.area, 1 ) == HB_FAILURE ) break; } if( pKey ) @@ -1140,10 +1140,10 @@ static HB_BOOL hb_mixCheckRecordFilter( SQLMIXAREAP pArea, HB_ULONG ulRecNo ) if( pArea->sqlarea.area.dbfi.itmCobExpr || hb_setGetDeleted() ) { if( pArea->sqlarea.ulRecNo != ulRecNo || pArea->sqlarea.lpdbPendingRel ) - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->sqlarea.area, ulRecNo ); if( hb_setGetDeleted() ) - SUPER_DELETED( ( AREAP ) pArea, &lResult ); + SUPER_DELETED( &pArea->sqlarea.area, &lResult ); if( ! lResult && pArea->sqlarea.area.dbfi.itmCobExpr ) { @@ -1178,7 +1178,7 @@ static HB_ULONG hb_mixDBOIKeyCount( PMIXTAG pTag, HB_BOOL fFilter ) hb_mixTagSkip( pTag, 1 ); } hb_mixTagSetCurrent( pTag, pNode, uiPos ); - SELF_GOTO( ( AREAP ) pTag->pArea, ulRecNo ); + SELF_GOTO( &pTag->pArea->sqlarea.area, ulRecNo ); } else @@ -1231,23 +1231,23 @@ static HB_ERRCODE sqlmixGoBottom( SQLMIXAREAP pArea ) { HB_ERRCODE retval; - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->sqlarea.area ) == HB_FAILURE ) return HB_FAILURE; if( ! pArea->pTag ) - return SUPER_GOBOTTOM( ( AREAP ) pArea ); + return SUPER_GOBOTTOM( &pArea->sqlarea.area ); if( pArea->sqlarea.lpdbPendingRel && pArea->sqlarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->sqlarea.area ); hb_mixTagGoBottom( pArea->pTag ); pArea->sqlarea.area.fTop = HB_FALSE; pArea->sqlarea.area.fBottom = HB_TRUE; - retval = SELF_GOTO( ( AREAP ) pArea, pArea->pTag->CurKey ? pArea->pTag->CurKey->rec : 0 ); + retval = SELF_GOTO( &pArea->sqlarea.area, pArea->pTag->CurKey ? pArea->pTag->CurKey->rec : 0 ); if( retval != HB_FAILURE && pArea->sqlarea.fPositioned ) - retval = SELF_SKIPFILTER( ( AREAP ) pArea, -1 ); + retval = SELF_SKIPFILTER( &pArea->sqlarea.area, -1 ); return retval; } @@ -1257,23 +1257,23 @@ static HB_ERRCODE sqlmixGoTop( SQLMIXAREAP pArea ) { HB_ERRCODE retval; - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->sqlarea.area ) == HB_FAILURE ) return HB_FAILURE; if( ! pArea->pTag ) - return SUPER_GOTOP( ( AREAP ) pArea ); + return SUPER_GOTOP( &pArea->sqlarea.area ); if( pArea->sqlarea.lpdbPendingRel && pArea->sqlarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->sqlarea.area ); hb_mixTagGoTop( pArea->pTag ); pArea->sqlarea.area.fTop = HB_TRUE; pArea->sqlarea.area.fBottom = HB_FALSE; - retval = SELF_GOTO( ( AREAP ) pArea, pArea->pTag->CurKey ? pArea->pTag->CurKey->rec : 0 ); + retval = SELF_GOTO( &pArea->sqlarea.area, pArea->pTag->CurKey ? pArea->pTag->CurKey->rec : 0 ); if( retval != HB_FAILURE && pArea->sqlarea.fPositioned ) - retval = SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + retval = SELF_SKIPFILTER( &pArea->sqlarea.area, 1 ); return retval; } @@ -1281,7 +1281,7 @@ static HB_ERRCODE sqlmixGoTop( SQLMIXAREAP pArea ) static HB_ERRCODE sqlmixSeek( SQLMIXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pItem, HB_BOOL fFindLast ) { - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->sqlarea.area ) == HB_FAILURE ) return HB_FAILURE; if( ! pArea->pTag ) @@ -1299,7 +1299,7 @@ static HB_ERRCODE sqlmixSeek( SQLMIXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pIt unsigned int uiKeyLen, ui; if( pArea->sqlarea.lpdbPendingRel && pArea->sqlarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->sqlarea.area ); pArea->sqlarea.area.fTop = pArea->sqlarea.area.fBottom = HB_FALSE; pArea->sqlarea.area.fEof = HB_FALSE; @@ -1336,10 +1336,10 @@ static HB_ERRCODE sqlmixSeek( SQLMIXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pIt if( ! fEOF ) { - errCode = SELF_GOTO( ( AREAP ) pArea, pTag->CurKey->rec ); + errCode = SELF_GOTO( &pArea->sqlarea.area, pTag->CurKey->rec ); if( errCode != HB_FAILURE && pArea->sqlarea.fPositioned ) { - errCode = SELF_SKIPFILTER( ( AREAP ) pArea, fFindLast ? -1 : 1 ); + errCode = SELF_SKIPFILTER( &pArea->sqlarea.area, fFindLast ? -1 : 1 ); if( errCode != HB_FAILURE && pArea->sqlarea.fPositioned ) { pArea->sqlarea.area.fFound = ( uiKeyLen == 0 || memcmp( pTag->CurKey->val, pKey->val, ( HB_ULONG ) uiKeyLen ) == 0 ); @@ -1350,7 +1350,7 @@ static HB_ERRCODE sqlmixSeek( SQLMIXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pIt } if( errCode != HB_FAILURE && fEOF ) - errCode = SELF_GOTO( ( AREAP ) pArea, 0 ); + errCode = SELF_GOTO( &pArea->sqlarea.area, 0 ); pArea->sqlarea.area.fBof = HB_FALSE; @@ -1365,14 +1365,14 @@ static HB_ERRCODE sqlmixSkipRaw( SQLMIXAREAP pArea, HB_LONG lToSkip ) PMIXTAG pTag = pArea->pTag; HB_BOOL fOut = HB_FALSE; - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->sqlarea.area ) == HB_FAILURE ) return HB_FAILURE; if( ! pTag || lToSkip == 0 ) - return SUPER_SKIPRAW( ( AREAP ) pArea, lToSkip ); + return SUPER_SKIPRAW( &pArea->sqlarea.area, lToSkip ); if( pArea->sqlarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->sqlarea.area ); if( ! hb_mixTagRefreshKey( pTag ) ) { @@ -1389,7 +1389,7 @@ static HB_ERRCODE sqlmixSkipRaw( SQLMIXAREAP pArea, HB_LONG lToSkip ) if( ! fOut ) hb_mixTagSkip( pTag, lToSkip ); - if( SELF_GOTO( ( AREAP ) pArea, ( pTag->fEof || fOut ) ? 0 : pTag->CurKey->rec ) != HB_SUCCESS ) + if( SELF_GOTO( &pArea->sqlarea.area, ( pTag->fEof || fOut ) ? 0 : pTag->CurKey->rec ) != HB_SUCCESS ) return HB_FAILURE; pArea->sqlarea.area.fEof = pTag->fEof; pArea->sqlarea.area.fBof = pTag->fBof; @@ -1402,7 +1402,7 @@ static HB_ERRCODE sqlmixGoCold( SQLMIXAREAP pArea ) HB_BOOL fRecordChanged = pArea->sqlarea.fRecordChanged; HB_BOOL fAppend = pArea->sqlarea.fAppend; - if( SUPER_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SUPER_GOCOLD( &pArea->sqlarea.area ) == HB_FAILURE ) return HB_FAILURE; if( fRecordChanged && pArea->pTagList ) @@ -1465,7 +1465,7 @@ static HB_ERRCODE sqlmixGoHot( SQLMIXAREAP pArea ) printf( "sqlmixGoHot: multiple marking buffer as hot." ); #endif - if( SUPER_GOHOT( ( AREAP ) pArea ) == HB_FAILURE ) + if( SUPER_GOHOT( &pArea->sqlarea.area ) == HB_FAILURE ) return HB_FAILURE; pTag = pArea->pTagList; @@ -1484,13 +1484,13 @@ static HB_ERRCODE sqlmixGoHot( SQLMIXAREAP pArea ) static HB_ERRCODE sqlmixClose( SQLMIXAREAP pArea ) { - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->sqlarea.area ) == HB_FAILURE ) return HB_FAILURE; - if( SUPER_CLOSE( ( AREAP ) pArea ) == HB_FAILURE ) + if( SUPER_CLOSE( &pArea->sqlarea.area ) == HB_FAILURE ) return HB_FAILURE; - if( SELF_ORDLSTCLEAR( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_ORDLSTCLEAR( &pArea->sqlarea.area ) == HB_FAILURE ) return HB_FAILURE; return HB_SUCCESS; @@ -1546,7 +1546,7 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd pKeyItem = hb_itemNew( pOrderInfo->itmCobExpr ); else { - if( SELF_COMPILE( ( AREAP ) pArea, hb_itemGetCPtr( pOrderInfo->abExpr ) ) == HB_FAILURE ) + if( SELF_COMPILE( &pArea->sqlarea.area, hb_itemGetCPtr( pOrderInfo->abExpr ) ) == HB_FAILURE ) return HB_FAILURE; pKeyItem = pArea->sqlarea.area.valResult; pArea->sqlarea.area.valResult = NULL; @@ -1554,11 +1554,11 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd /* Test key codeblock on EOF */ ulRecNo = pArea->sqlarea.ulRecNo; - SELF_GOTO( ( AREAP ) pArea, 0 ); - if( SELF_EVALBLOCK( ( AREAP ) pArea, pKeyItem ) == HB_FAILURE ) + SELF_GOTO( &pArea->sqlarea.area, 0 ); + if( SELF_EVALBLOCK( &pArea->sqlarea.area, pKeyItem ) == HB_FAILURE ) { hb_vmDestroyBlockOrMacro( pKeyItem ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->sqlarea.area, ulRecNo ); return HB_FAILURE; } @@ -1601,7 +1601,7 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd if( bType == 'U' || uiLen == 0 ) { hb_vmDestroyBlockOrMacro( pKeyItem ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->sqlarea.area, ulRecNo ); sqlmixErrorRT( pArea, bType == 'U' ? EG_DATATYPE : EG_DATAWIDTH, 1026, NULL, 0, 0 ); return HB_FAILURE; } @@ -1613,10 +1613,10 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd pForItem = hb_itemNew( pArea->sqlarea.area.lpdbOrdCondInfo->itmCobFor ); else if( pArea->sqlarea.area.lpdbOrdCondInfo->abFor ) { - if( SELF_COMPILE( ( AREAP ) pArea, pArea->sqlarea.area.lpdbOrdCondInfo->abFor ) == HB_FAILURE ) + if( SELF_COMPILE( &pArea->sqlarea.area, pArea->sqlarea.area.lpdbOrdCondInfo->abFor ) == HB_FAILURE ) { hb_vmDestroyBlockOrMacro( pKeyItem ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->sqlarea.area, ulRecNo ); return HB_FAILURE; } pForItem = pArea->sqlarea.area.valResult; @@ -1628,12 +1628,12 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd pWhileItem = hb_itemNew( pArea->sqlarea.area.lpdbOrdCondInfo->itmCobWhile ); else if( pArea->sqlarea.area.lpdbOrdCondInfo->abWhile ) { - if( SELF_COMPILE( ( AREAP ) pArea, pArea->sqlarea.area.lpdbOrdCondInfo->abWhile ) == HB_FAILURE ) + if( SELF_COMPILE( &pArea->sqlarea.area, pArea->sqlarea.area.lpdbOrdCondInfo->abWhile ) == HB_FAILURE ) { hb_vmDestroyBlockOrMacro( pKeyItem ); if( pForItem ) hb_vmDestroyBlockOrMacro( pForItem ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->sqlarea.area, ulRecNo ); return HB_FAILURE; } pWhileItem = pArea->sqlarea.area.valResult; @@ -1644,13 +1644,13 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd /* Test FOR codeblock on EOF */ if( pForItem ) { - if( SELF_EVALBLOCK( ( AREAP ) pArea, pForItem ) == HB_FAILURE ) + if( SELF_EVALBLOCK( &pArea->sqlarea.area, pForItem ) == HB_FAILURE ) { hb_vmDestroyBlockOrMacro( pKeyItem ); hb_vmDestroyBlockOrMacro( pForItem ); if( pWhileItem ) hb_vmDestroyBlockOrMacro( pWhileItem ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->sqlarea.area, ulRecNo ); return HB_FAILURE; } if( hb_itemType( pArea->sqlarea.area.valResult ) != HB_IT_LOGICAL ) @@ -1661,7 +1661,7 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd hb_vmDestroyBlockOrMacro( pForItem ); if( pWhileItem ) hb_vmDestroyBlockOrMacro( pWhileItem ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->sqlarea.area, ulRecNo ); sqlmixErrorRT( pArea, EG_DATATYPE, EDBF_INVALIDFOR, NULL, 0, 0 ); return HB_FAILURE; } @@ -1671,7 +1671,7 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd /* TODO: WHILE condition is not tested, like in DBFCDX. Why? Compatibility with Clipper? */ - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->sqlarea.area, ulRecNo ); pTagNew = hb_mixTagCreate( pOrderInfo->atomBagName, pOrderInfo->abExpr, pKeyItem, pForItem, pWhileItem, bType, uiLen, pArea ); @@ -1718,7 +1718,7 @@ static HB_ERRCODE sqlmixOrderInfo( SQLMIXAREAP pArea, HB_USHORT uiIndex, LPDBORD return HB_SUCCESS; } - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->sqlarea.area ) == HB_FAILURE ) return HB_FAILURE; if( pOrderInfo->itmOrder ) @@ -1746,12 +1746,12 @@ static HB_ERRCODE sqlmixOrderInfo( SQLMIXAREAP pArea, HB_USHORT uiIndex, LPDBORD { const char * pForExpr = hb_itemGetCPtr( pOrderInfo->itmNewVal ); - if( SELF_COMPILE( ( AREAP ) pArea, pForExpr ) == HB_SUCCESS ) + if( SELF_COMPILE( &pArea->sqlarea.area, pForExpr ) == HB_SUCCESS ) { PHB_ITEM pForItem = pArea->sqlarea.area.valResult; pArea->sqlarea.area.valResult = NULL; - if( SELF_EVALBLOCK( ( AREAP ) pArea, pForItem ) == HB_SUCCESS ) + if( SELF_EVALBLOCK( &pArea->sqlarea.area, pForItem ) == HB_SUCCESS ) { if( hb_itemType( pArea->sqlarea.area.valResult ) == HB_IT_LOGICAL ) { @@ -1858,7 +1858,7 @@ static HB_ERRCODE sqlmixOrderInfo( SQLMIXAREAP pArea, HB_USHORT uiIndex, LPDBORD case DBOI_KEYVAL: hb_itemClear( pOrderInfo->itmResult ); if( pArea->sqlarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->sqlarea.area ); if( pTag && pArea->sqlarea.fPositioned ) { if( pTag->CurKey->rec != pArea->sqlarea.ulRecNo ) @@ -1888,7 +1888,7 @@ static HB_ERRCODE sqlmixOrderInfo( SQLMIXAREAP pArea, HB_USHORT uiIndex, LPDBORD if( pTag->fCustom ) { if( pArea->sqlarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->sqlarea.area ); if( ! pArea->sqlarea.fPositioned || ( pTag->pForItem && @@ -1921,7 +1921,7 @@ static HB_ERRCODE sqlmixOrderInfo( SQLMIXAREAP pArea, HB_USHORT uiIndex, LPDBORD if( pTag->Custom ) { if( pArea->sqlarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->sqlarea.area ); if( ! pArea->sqlarea.fPositioned || ( pTag->pForItem && @@ -1953,7 +1953,7 @@ static HB_ERRCODE sqlmixOrderInfo( SQLMIXAREAP pArea, HB_USHORT uiIndex, LPDBORD break; default: - return SUPER_ORDINFO( ( AREAP ) pArea, uiIndex, pOrderInfo ); + return SUPER_ORDINFO( &pArea->sqlarea.area, uiIndex, pOrderInfo ); } return HB_SUCCESS; diff --git a/contrib/sddfb/core.c b/contrib/sddfb/core.c index 74c082ad52..9ade302987 100644 --- a/contrib/sddfb/core.c +++ b/contrib/sddfb/core.c @@ -286,7 +286,7 @@ static HB_ERRCODE fbOpen( SQLBASEAREAP pArea ) pSDDData->pSqlda = pSqlda; uiFields = pSqlda->sqld; - SELF_SETFIELDEXTENT( ( AREAP ) pArea, uiFields ); + SELF_SETFIELDEXTENT( &pArea->area, uiFields ); pItemEof = hb_itemArrayNew( uiFields ); @@ -417,7 +417,7 @@ static HB_ERRCODE fbOpen( SQLBASEAREAP pArea ) hb_itemRelease( pItem ); if( ! bError ) - bError = ( SELF_ADDFIELD( ( AREAP ) pArea, &pFieldInfo ) == HB_FAILURE ); + bError = ( SELF_ADDFIELD( &pArea->area, &pFieldInfo ) == HB_FAILURE ); hb_xfree( szOurName ); diff --git a/contrib/sddmy/core.c b/contrib/sddmy/core.c index 10915a1569..82c81d82a0 100644 --- a/contrib/sddmy/core.c +++ b/contrib/sddmy/core.c @@ -260,7 +260,7 @@ static HB_ERRCODE mysqlOpen( SQLBASEAREAP pArea ) } uiFields = ( HB_USHORT ) mysql_num_fields( pSDDData->pResult ); - SELF_SETFIELDEXTENT( ( AREAP ) pArea, uiFields ); + SELF_SETFIELDEXTENT( &pArea->area, uiFields ); pItemEof = hb_itemArrayNew( uiFields ); @@ -392,7 +392,7 @@ static HB_ERRCODE mysqlOpen( SQLBASEAREAP pArea ) */ if( ! bError ) - bError = ( SELF_ADDFIELD( ( AREAP ) pArea, &pFieldInfo ) == HB_FAILURE ); + bError = ( SELF_ADDFIELD( &pArea->area, &pFieldInfo ) == HB_FAILURE ); } if( bError ) @@ -638,7 +638,7 @@ static HB_ERRCODE mysqlGetValue( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_ITEM hb_errPutGenCode( pError, EG_DATATYPE ); hb_errPutDescription( pError, hb_langDGetErrorDesc( EG_DATATYPE ) ); hb_errPutSubCode( pError, EDBF_DATATYPE ); - SELF_ERROR( ( AREAP ) pArea, pError ); + SELF_ERROR( &pArea->area, pError ); hb_itemRelease( pError ); return HB_FAILURE; } diff --git a/contrib/sddoci/core.c b/contrib/sddoci/core.c index 48d032ecf8..5f2f64e866 100644 --- a/contrib/sddoci/core.c +++ b/contrib/sddoci/core.c @@ -330,7 +330,7 @@ static HB_ERRCODE ocilibOpen( SQLBASEAREAP pArea ) rs = OCI_GetResultset( st ); uiFields = ( HB_USHORT ) OCI_GetColumnCount( rs ); - SELF_SETFIELDEXTENT( ( AREAP ) pArea, uiFields ); + SELF_SETFIELDEXTENT( &pArea->area, uiFields ); pItemEof = hb_itemArrayNew( uiFields ); pItem = hb_itemNew( NULL ); @@ -480,7 +480,7 @@ static HB_ERRCODE ocilibOpen( SQLBASEAREAP pArea ) hb_arraySetForward( pItemEof, uiIndex + 1, pItem ); if( ! bError ) - bError = ( SELF_ADDFIELD( ( AREAP ) pArea, &pFieldInfo ) == HB_FAILURE ); + bError = ( SELF_ADDFIELD( &pArea->area, &pFieldInfo ) == HB_FAILURE ); } hb_itemRelease( pName ); diff --git a/contrib/sddodbc/core.c b/contrib/sddodbc/core.c index ffadd7e7f1..9a090de29a 100644 --- a/contrib/sddodbc/core.c +++ b/contrib/sddodbc/core.c @@ -417,7 +417,7 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea ) } uiFields = ( HB_USHORT ) iNameLen; - SELF_SETFIELDEXTENT( ( AREAP ) pArea, uiFields ); + SELF_SETFIELDEXTENT( &pArea->area, uiFields ); pItemEof = hb_itemArrayNew( uiFields ); @@ -605,7 +605,7 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea ) hb_itemRelease( pItem ); if( ! bError ) - bError = ( SELF_ADDFIELD( ( AREAP ) pArea, &pFieldInfo ) == HB_FAILURE ); + bError = ( SELF_ADDFIELD( &pArea->area, &pFieldInfo ) == HB_FAILURE ); } hb_itemRelease( pName ); diff --git a/contrib/sddpg/core.c b/contrib/sddpg/core.c index d66a7110de..43f0bb25dd 100644 --- a/contrib/sddpg/core.c +++ b/contrib/sddpg/core.c @@ -269,7 +269,7 @@ static HB_ERRCODE pgsqlOpen( SQLBASEAREAP pArea ) pSDDData->pResult = pResult; uiFields = ( HB_USHORT ) PQnfields( pResult ); - SELF_SETFIELDEXTENT( ( AREAP ) pArea, uiFields ); + SELF_SETFIELDEXTENT( &pArea->area, uiFields ); pItemEof = hb_itemArrayNew( uiFields ); pItem = hb_itemNew( NULL ); @@ -446,7 +446,7 @@ static HB_ERRCODE pgsqlOpen( SQLBASEAREAP pArea ) */ if( ! bError ) - bError = ( SELF_ADDFIELD( ( AREAP ) pArea, &pFieldInfo ) == HB_FAILURE ); + bError = ( SELF_ADDFIELD( &pArea->area, &pFieldInfo ) == HB_FAILURE ); } if( bError ) @@ -573,7 +573,7 @@ static HB_ERRCODE pgsqlGetValue( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_ITEM hb_errPutGenCode( pError, EG_DATATYPE ); hb_errPutDescription( pError, hb_langDGetErrorDesc( EG_DATATYPE ) ); hb_errPutSubCode( pError, EDBF_DATATYPE ); - SELF_ERROR( ( AREAP ) pArea, pError ); + SELF_ERROR( &pArea->area, pError ); hb_itemRelease( pError ); return HB_FAILURE; } diff --git a/contrib/sddsqlt3/core.c b/contrib/sddsqlt3/core.c index b1414468e9..efe4c21907 100644 --- a/contrib/sddsqlt3/core.c +++ b/contrib/sddsqlt3/core.c @@ -337,7 +337,7 @@ static HB_ERRCODE sqlite3Open( SQLBASEAREAP pArea ) } uiFields = ( HB_USHORT ) sqlite3_column_count( st ); - SELF_SETFIELDEXTENT( ( AREAP ) pArea, uiFields ); + SELF_SETFIELDEXTENT( &pArea->area, uiFields ); errCode = 0; bError = HB_FALSE; @@ -390,7 +390,7 @@ static HB_ERRCODE sqlite3Open( SQLBASEAREAP pArea ) } if( ! bError ) - bError = ( SELF_ADDFIELD( ( AREAP ) pArea, &pFieldInfo ) == HB_FAILURE ); + bError = ( SELF_ADDFIELD( &pArea->area, &pFieldInfo ) == HB_FAILURE ); if( bError ) break; diff --git a/include/hbrddntx.h b/include/hbrddntx.h index 99d8dd0250..b63383a5c5 100644 --- a/include/hbrddntx.h +++ b/include/hbrddntx.h @@ -246,7 +246,7 @@ typedef struct _TAGINFO LPKEYINFO HotKeyInfo; HB_BOOL HotFor; - struct _NTXINDEX * Owner; + struct _NTXINDEX * pIndex; } TAGINFO; typedef TAGINFO * LPTAGINFO; @@ -257,7 +257,7 @@ typedef struct _NTXINDEX HB_ULONG Version; /* The index VERSION filed to signal index updates for other stations */ HB_ULONG NextAvail; HB_ULONG TagBlock; /* Index attr, next free page */ - struct _NTXAREA * Owner; + struct _NTXAREA * pArea; PHB_FILE DiskFile; HB_BOOL fDelete; /* delete on close flag */ HB_BOOL fReadonly; diff --git a/src/rdd/dbf1.c b/src/rdd/dbf1.c index 6d61106ddb..d7f0fe2ca5 100644 --- a/src/rdd/dbf1.c +++ b/src/rdd/dbf1.c @@ -112,7 +112,7 @@ static HB_ERRCODE hb_dbfErrorRT( DBFAREAP pArea, hb_errPutFileName( pError, szFileName ); if( uiFlags ) hb_errPutFlags( pError, uiFlags ); - errCode = SELF_ERROR( ( AREAP ) pArea, pError ); + errCode = SELF_ERROR( &pArea->area, pError ); if( ! pErrorPtr ) hb_errRelease( pError ); } @@ -127,7 +127,7 @@ static HB_MAXINT hb_dbfGetRowVer( DBFAREAP pArea, HB_USHORT uiField, HB_MAXINT * *pValue = 0; if( pArea->fShared && ! pArea->fFLocked && ! pArea->fHeaderLocked ) { - if( SELF_RAWLOCK( ( AREAP ) pArea, HEADER_LOCK, 0 ) != HB_SUCCESS ) + if( SELF_RAWLOCK( &pArea->area, HEADER_LOCK, 0 ) != HB_SUCCESS ) return HB_FAILURE; fLck = HB_TRUE; } @@ -144,7 +144,7 @@ static HB_MAXINT hb_dbfGetRowVer( DBFAREAP pArea, HB_USHORT uiField, HB_MAXINT * if( fLck ) { - if( SELF_RAWLOCK( ( AREAP ) pArea, HEADER_UNLOCK, 0 ) != HB_SUCCESS ) + if( SELF_RAWLOCK( &pArea->area, HEADER_UNLOCK, 0 ) != HB_SUCCESS ) return HB_FAILURE; } @@ -582,7 +582,7 @@ static HB_BOOL hb_dbfReadRecord( DBFAREAP pArea ) return HB_FALSE; } - if( SELF_GETREC( ( AREAP ) pArea, NULL ) == HB_FAILURE ) + if( SELF_GETREC( &pArea->area, NULL ) == HB_FAILURE ) return HB_FALSE; /* Set flags */ @@ -598,7 +598,7 @@ static HB_BOOL hb_dbfWriteRecord( DBFAREAP pArea ) { HB_TRACE( HB_TR_DEBUG, ( "hb_dbfWriteRecord(%p)", pArea ) ); - if( SELF_PUTREC( ( AREAP ) pArea, NULL ) == HB_FAILURE ) + if( SELF_PUTREC( &pArea->area, NULL ) == HB_FAILURE ) return HB_FALSE; pArea->fRecordChanged = HB_FALSE; @@ -643,7 +643,7 @@ static HB_BOOL hb_dbfPasswordSet( DBFAREAP pArea, PHB_ITEM pPasswd, HB_BOOL fRaw { if( pArea->pRecord && pArea->fPositioned ) { - SELF_GOCOLD( ( AREAP ) pArea ); + SELF_GOCOLD( &pArea->area ); pArea->fValidBuffer = HB_FALSE; } if( pArea->pCryptKey ) @@ -687,7 +687,7 @@ static void hb_dbfTableCrypt( DBFAREAP pArea, PHB_ITEM pPasswd, HB_BOOL fEncrypt { HB_ULONG ulRecords, ulRecNo; - if( SELF_RECCOUNT( ( AREAP ) pArea, &ulRecords ) == HB_SUCCESS ) + if( SELF_RECCOUNT( &pArea->area, &ulRecords ) == HB_SUCCESS ) { HB_ERRCODE errCode = HB_SUCCESS; char * pOldCryptKey, * pNewCryptKey; @@ -713,7 +713,7 @@ static void hb_dbfTableCrypt( DBFAREAP pArea, PHB_ITEM pPasswd, HB_BOOL fEncrypt for( ulRecNo = 1; ulRecNo <= ulRecords; ++ulRecNo ) { pArea->pCryptKey = pOldCryptKey; - errCode = SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + errCode = SELF_GOTO( &pArea->area, ulRecNo ); if( errCode != HB_SUCCESS ) break; if( ! hb_dbfReadRecord( pArea ) ) @@ -725,14 +725,14 @@ static void hb_dbfTableCrypt( DBFAREAP pArea, PHB_ITEM pPasswd, HB_BOOL fEncrypt /* Buffer is hot? */ if( ! pArea->fRecordChanged ) { - errCode = SELF_GOHOT( ( AREAP ) pArea ); + errCode = SELF_GOHOT( &pArea->area ); if( errCode != HB_SUCCESS ) break; } /* Force record encryption/decryption */ pArea->fEncrypted = fEncrypt; /* Save encrypted record */ - errCode = SELF_GOCOLD( ( AREAP ) pArea ); + errCode = SELF_GOCOLD( &pArea->area ); if( errCode != HB_SUCCESS ) break; } @@ -743,7 +743,7 @@ static void hb_dbfTableCrypt( DBFAREAP pArea, PHB_ITEM pPasswd, HB_BOOL fEncrypt { pArea->fTableEncrypted = fEncrypt; pArea->fUpdateHeader = HB_TRUE; - SELF_WRITEDBHEADER( ( AREAP ) pArea ); + SELF_WRITEDBHEADER( &pArea->area ); } } } @@ -762,9 +762,9 @@ static HB_ERRCODE hb_dbfUnlockAllRecords( DBFAREAP pArea ) { HB_ULONG ulCount; - errCode = SELF_GOCOLD( ( AREAP ) pArea ); + errCode = SELF_GOCOLD( &pArea->area ); for( ulCount = 0; ulCount < pArea->ulNumLocksPos; ulCount++ ) - SELF_RAWLOCK( ( AREAP ) pArea, REC_UNLOCK, pArea->pLocksPos[ ulCount ] ); + SELF_RAWLOCK( &pArea->area, REC_UNLOCK, pArea->pLocksPos[ ulCount ] ); hb_xfree( pArea->pLocksPos ); pArea->pLocksPos = NULL; } @@ -788,8 +788,8 @@ static HB_ERRCODE hb_dbfUnlockRecord( DBFAREAP pArea, HB_ULONG ulRecNo ) if( ulCount < pArea->ulNumLocksPos ) { - errCode = SELF_GOCOLD( ( AREAP ) pArea ); - SELF_RAWLOCK( ( AREAP ) pArea, REC_UNLOCK, ulRecNo ); + errCode = SELF_GOCOLD( &pArea->area ); + SELF_RAWLOCK( &pArea->area, REC_UNLOCK, ulRecNo ); if( pArea->ulNumLocksPos == 1 ) /* Delete the list */ { hb_xfree( pArea->pLocksPos ); @@ -821,7 +821,7 @@ static HB_ERRCODE hb_dbfLockRecord( DBFAREAP pArea, HB_ULONG ulRecNo, HB_USHORT if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -851,7 +851,7 @@ static HB_ERRCODE hb_dbfLockRecord( DBFAREAP pArea, HB_ULONG ulRecNo, HB_USHORT } } - if( SELF_RAWLOCK( ( AREAP ) pArea, REC_LOCK, ulRecNo ) == HB_SUCCESS ) + if( SELF_RAWLOCK( &pArea->area, REC_LOCK, ulRecNo ) == HB_SUCCESS ) { if( pArea->ulNumLocksPos == 0 ) /* Create the list */ { @@ -869,12 +869,12 @@ static HB_ERRCODE hb_dbfLockRecord( DBFAREAP pArea, HB_ULONG ulRecNo, HB_USHORT { if( ! pArea->fPositioned ) { - if( SELF_GOTO( ( AREAP ) pArea, pArea->ulRecNo ) != HB_SUCCESS ) + if( SELF_GOTO( &pArea->area, pArea->ulRecNo ) != HB_SUCCESS ) return HB_FAILURE; } else if( ! pArea->fRecordChanged ) { - if( SELF_GOCOLD( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; pArea->fValidBuffer = HB_FALSE; } @@ -896,22 +896,22 @@ static HB_ERRCODE hb_dbfLockFile( DBFAREAP pArea, HB_USHORT * pResult ) { if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } hb_dbfUnlockAllRecords( pArea ); - SELF_RAWLOCK( ( AREAP ) pArea, FILE_LOCK, 0 ); + SELF_RAWLOCK( &pArea->area, FILE_LOCK, 0 ); *pResult = ( HB_USHORT ) pArea->fFLocked; if( ! pArea->fPositioned ) { - SELF_GOTO( ( AREAP ) pArea, pArea->ulRecNo ); + SELF_GOTO( &pArea->area, pArea->ulRecNo ); } else if( ! pArea->fRecordChanged ) { - SELF_GOCOLD( ( AREAP ) pArea ); + SELF_GOCOLD( &pArea->area ); pArea->fValidBuffer = HB_FALSE; } } @@ -932,8 +932,8 @@ static HB_ERRCODE hb_dbfUnlockFile( DBFAREAP pArea ) if( pArea->fFLocked ) { - errCode = SELF_GOCOLD( ( AREAP ) pArea ); - SELF_RAWLOCK( ( AREAP ) pArea, FILE_UNLOCK, 0 ); + errCode = SELF_GOCOLD( &pArea->area ); + SELF_RAWLOCK( &pArea->area, FILE_UNLOCK, 0 ); } return errCode; } @@ -1523,7 +1523,7 @@ static HB_ERRCODE hb_dbfBof( DBFAREAP pArea, HB_BOOL * pBof ) if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -1540,7 +1540,7 @@ static HB_ERRCODE hb_dbfEof( DBFAREAP pArea, HB_BOOL * pEof ) if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -1557,7 +1557,7 @@ static HB_ERRCODE hb_dbfFound( DBFAREAP pArea, HB_BOOL * pFound ) if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -1572,7 +1572,7 @@ static HB_ERRCODE hb_dbfGoBottom( DBFAREAP pArea ) { HB_TRACE( HB_TR_DEBUG, ( "hb_dbfGoBottom(%p)", pArea ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; /* Update record count */ @@ -1581,10 +1581,10 @@ static HB_ERRCODE hb_dbfGoBottom( DBFAREAP pArea ) pArea->area.fTop = HB_FALSE; pArea->area.fBottom = HB_TRUE; - if( SELF_GOTO( ( AREAP ) pArea, pArea->ulRecCount ) != HB_SUCCESS ) + if( SELF_GOTO( &pArea->area, pArea->ulRecCount ) != HB_SUCCESS ) return HB_FAILURE; - return SELF_SKIPFILTER( ( AREAP ) pArea, -1 ); + return SELF_SKIPFILTER( &pArea->area, -1 ); } /* @@ -1594,14 +1594,14 @@ static HB_ERRCODE hb_dbfGoTo( DBFAREAP pArea, HB_ULONG ulRecNo ) { HB_TRACE( HB_TR_DEBUG, ( "hb_dbfGoTo(%p, %lu)", pArea, ulRecNo ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; if( pArea->lpdbPendingRel ) { if( pArea->lpdbPendingRel->isScoped ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } else /* Reset parent rel struct */ @@ -1631,7 +1631,7 @@ static HB_ERRCODE hb_dbfGoTo( DBFAREAP pArea, HB_ULONG ulRecNo ) /* Force relational movement in child WorkAreas */ if( pArea->area.lpdbRelations ) - return SELF_SYNCCHILDREN( ( AREAP ) pArea ); + return SELF_SYNCCHILDREN( &pArea->area ); else return HB_SUCCESS; } @@ -1644,7 +1644,7 @@ static HB_ERRCODE hb_dbfGoToId( DBFAREAP pArea, PHB_ITEM pItem ) HB_TRACE( HB_TR_DEBUG, ( "hb_dbfGoToId(%p, %p)", pArea, pItem ) ); if( HB_IS_NUMERIC( pItem ) ) - return SELF_GOTO( ( AREAP ) pArea, hb_itemGetNL( pItem ) ); + return SELF_GOTO( &pArea->area, hb_itemGetNL( pItem ) ); else { hb_dbfErrorRT( pArea, EG_DATATYPE, EDBF_DATATYPE, NULL, 0, 0, NULL ); @@ -1662,10 +1662,10 @@ static HB_ERRCODE hb_dbfGoTop( DBFAREAP pArea ) pArea->area.fTop = HB_TRUE; pArea->area.fBottom = HB_FALSE; - if( SELF_GOTO( ( AREAP ) pArea, 1 ) == HB_FAILURE ) + if( SELF_GOTO( &pArea->area, 1 ) == HB_FAILURE ) return HB_FAILURE; - return SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + return SELF_SKIPFILTER( &pArea->area, 1 ); } #define hb_dbfSeek NULL @@ -1681,7 +1681,7 @@ static HB_ERRCODE hb_dbfSkip( DBFAREAP pArea, HB_LONG lToSkip ) if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -1689,9 +1689,9 @@ static HB_ERRCODE hb_dbfSkip( DBFAREAP pArea, HB_LONG lToSkip ) if( lToSkip == 0 || pArea->area.dbfi.itmCobExpr || pArea->area.dbfi.fFilter || hb_setGetDeleted() ) - return SUPER_SKIP( ( AREAP ) pArea, lToSkip ); + return SUPER_SKIP( &pArea->area, lToSkip ); - errCode = SELF_SKIPRAW( ( AREAP ) pArea, lToSkip ); + errCode = SELF_SKIPRAW( &pArea->area, lToSkip ); /* TODO: remove this hack - it's not necessary if SKIPRAW works as it should, Druzus */ @@ -1699,7 +1699,7 @@ static HB_ERRCODE hb_dbfSkip( DBFAREAP pArea, HB_LONG lToSkip ) /* Move first record and set Bof flag */ if( errCode == HB_SUCCESS && pArea->area.fBof && lToSkip < 0 ) { - errCode = SELF_GOTOP( ( AREAP ) pArea ); + errCode = SELF_GOTOP( &pArea->area ); pArea->area.fBof = HB_TRUE; } @@ -1725,7 +1725,7 @@ static HB_ERRCODE hb_dbfSkipRaw( DBFAREAP pArea, HB_LONG lToSkip ) if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -1737,7 +1737,7 @@ static HB_ERRCODE hb_dbfSkipRaw( DBFAREAP pArea, HB_LONG lToSkip ) bBof = pArea->area.fBof; bEof = pArea->area.fEof; - errCode = SELF_GOTO( ( AREAP ) pArea, pArea->ulRecNo ); + errCode = SELF_GOTO( &pArea->area, pArea->ulRecNo ); /* Restore flags */ pArea->area.fBof = bBof; @@ -1745,12 +1745,12 @@ static HB_ERRCODE hb_dbfSkipRaw( DBFAREAP pArea, HB_LONG lToSkip ) } else if( lToSkip < 0 && ( HB_ULONG ) ( -lToSkip ) >= pArea->ulRecNo ) { - errCode = SELF_GOTO( ( AREAP ) pArea, 1 ); + errCode = SELF_GOTO( &pArea->area, 1 ); pArea->area.fBof = HB_TRUE; } else { - errCode = SELF_GOTO( ( AREAP ) pArea, pArea->ulRecNo + lToSkip ); + errCode = SELF_GOTO( &pArea->area, pArea->ulRecNo + lToSkip ); } return errCode; @@ -1789,7 +1789,7 @@ static HB_ERRCODE hb_dbfAddField( DBFAREAP pArea, LPDBFIELDINFO pFieldInfo ) if( pArea->pFieldOffset[ pArea->area.uiFieldCount ] > pArea->uiRecordLen ) return HB_FAILURE; else - return SUPER_ADDFIELD( ( AREAP ) pArea, pFieldInfo ); + return SUPER_ADDFIELD( &pArea->area, pFieldInfo ); } /* @@ -1803,7 +1803,7 @@ static HB_ERRCODE hb_dbfAppend( DBFAREAP pArea, HB_BOOL bUnLockAll ) HB_TRACE( HB_TR_DEBUG, ( "hb_dbfAppend(%p, %d)", pArea, ( int ) bUnLockAll ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; if( pArea->fTrigger ) @@ -1822,7 +1822,7 @@ static HB_ERRCODE hb_dbfAppend( DBFAREAP pArea, HB_BOOL bUnLockAll ) { if( pArea->lpdbPendingRel->isScoped ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } else /* Reset parent rel struct */ @@ -1832,7 +1832,7 @@ static HB_ERRCODE hb_dbfAppend( DBFAREAP pArea, HB_BOOL bUnLockAll ) if( pArea->fShared ) { fLocked = HB_FALSE; - if( SELF_RAWLOCK( ( AREAP ) pArea, APPEND_LOCK, 0 ) == HB_SUCCESS ) + if( SELF_RAWLOCK( &pArea->area, APPEND_LOCK, 0 ) == HB_SUCCESS ) { /* Update RecCount */ pArea->ulRecCount = hb_dbfCalcRecCount( pArea ); @@ -1843,13 +1843,13 @@ static HB_ERRCODE hb_dbfAppend( DBFAREAP pArea, HB_BOOL bUnLockAll ) { if( fLocked ) hb_dbfUnlockRecord( pArea, ulNewRecord ); - SELF_RAWLOCK( ( AREAP ) pArea, APPEND_UNLOCK, 0 ); + SELF_RAWLOCK( &pArea->area, APPEND_UNLOCK, 0 ); return HB_FAILURE; } } if( ! fLocked ) { - SELF_RAWLOCK( ( AREAP ) pArea, APPEND_UNLOCK, 0 ); + SELF_RAWLOCK( &pArea->area, APPEND_UNLOCK, 0 ); hb_dbfErrorRT( pArea, EG_APPENDLOCK, EDBF_APPENDLOCK, NULL, 0, EF_CANDEFAULT, NULL ); return HB_FAILURE; @@ -1869,8 +1869,8 @@ static HB_ERRCODE hb_dbfAppend( DBFAREAP pArea, HB_BOOL bUnLockAll ) if( pArea->fShared ) { - errCode = SELF_GOCOLD( ( AREAP ) pArea ); - SELF_RAWLOCK( ( AREAP ) pArea, APPEND_UNLOCK, 0 ); + errCode = SELF_GOCOLD( &pArea->area ); + SELF_RAWLOCK( &pArea->area, APPEND_UNLOCK, 0 ); return errCode; } return HB_SUCCESS; @@ -1893,7 +1893,7 @@ static HB_ERRCODE hb_dbfDeleteRec( DBFAREAP pArea ) if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -1905,7 +1905,7 @@ static HB_ERRCODE hb_dbfDeleteRec( DBFAREAP pArea ) return HB_SUCCESS; /* Buffer is hot? */ - if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) == HB_FAILURE ) + if( ! pArea->fRecordChanged && SELF_GOHOT( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; pArea->pRecord[ 0 ] = '*'; @@ -1922,7 +1922,7 @@ static HB_ERRCODE hb_dbfDeleted( DBFAREAP pArea, HB_BOOL * pDeleted ) if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -1947,11 +1947,11 @@ static HB_ERRCODE hb_dbfFlush( DBFAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_dbfFlush(%p)", pArea ) ); - errCode = SELF_GOCOLD( ( AREAP ) pArea ); + errCode = SELF_GOCOLD( &pArea->area ); if( errCode == HB_SUCCESS ) { if( pArea->fUpdateHeader ) - errCode = SELF_WRITEDBHEADER( ( AREAP ) pArea ); + errCode = SELF_WRITEDBHEADER( &pArea->area ); } if( hb_setGetHardCommit() && errCode == HB_SUCCESS ) @@ -2026,7 +2026,7 @@ static HB_ERRCODE hb_dbfGetValue( DBFAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pI if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -2267,7 +2267,7 @@ static HB_ERRCODE hb_dbfGetValue( DBFAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pI hb_errPutDescription( pError, hb_langDGetErrorDesc( EG_DATATYPE ) ); hb_errPutOperation( pError, hb_dynsymName( ( PHB_DYNS ) pField->sym ) ); hb_errPutSubCode( pError, EDBF_DATATYPE ); - SELF_ERROR( ( AREAP ) pArea, pError ); + SELF_ERROR( &pArea->area, pError ); hb_itemRelease( pError ); return HB_FAILURE; } @@ -2330,7 +2330,7 @@ static HB_ERRCODE hb_dbfGoCold( DBFAREAP pArea ) /* Update header */ if( pArea->fShared && pArea->fUpdateHeader ) - return SELF_WRITEDBHEADER( ( AREAP ) pArea ); + return SELF_WRITEDBHEADER( &pArea->area ); } return HB_SUCCESS; } @@ -2369,14 +2369,14 @@ static HB_ERRCODE hb_dbfPutRec( DBFAREAP pArea, const HB_BYTE * pBuffer ) { if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } if( ! pArea->fPositioned ) return HB_SUCCESS; - if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) != HB_SUCCESS ) + if( ! pArea->fRecordChanged && SELF_GOHOT( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; /* Copy data to buffer */ @@ -2462,7 +2462,7 @@ static HB_ERRCODE hb_dbfPutValue( DBFAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pI if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -2477,7 +2477,7 @@ static HB_ERRCODE hb_dbfPutValue( DBFAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pI return HB_SUCCESS; /* Buffer is hot? */ - if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) == HB_FAILURE ) + if( ! pArea->fRecordChanged && SELF_GOHOT( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; errCode = HB_SUCCESS; @@ -2743,7 +2743,7 @@ static HB_ERRCODE hb_dbfPutValue( DBFAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pI hb_errPutOperation( pError, hb_dynsymName( ( PHB_DYNS ) pField->sym ) ); hb_errPutSubCode( pError, errCode ); hb_errPutFlags( pError, EF_CANDEFAULT ); - errCode = SELF_ERROR( ( AREAP ) pArea, pError ); + errCode = SELF_ERROR( &pArea->area, pError ); hb_itemRelease( pError ); return errCode == E_DEFAULT ? HB_SUCCESS : HB_FAILURE; } @@ -2771,7 +2771,7 @@ static HB_ERRCODE hb_dbfRecall( DBFAREAP pArea ) if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -2783,7 +2783,7 @@ static HB_ERRCODE hb_dbfRecall( DBFAREAP pArea ) return HB_SUCCESS; /* Buffer is hot? */ - if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) != HB_SUCCESS ) + if( ! pArea->fRecordChanged && SELF_GOHOT( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; pArea->pRecord[ 0 ] = ' '; @@ -2815,7 +2815,7 @@ static HB_ERRCODE hb_dbfRecNo( DBFAREAP pArea, HB_ULONG * pulRecNo ) if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -2833,7 +2833,7 @@ static HB_ERRCODE hb_dbfRecId( DBFAREAP pArea, PHB_ITEM pRecNo ) HB_TRACE( HB_TR_DEBUG, ( "hb_dbfRecId(%p, %p)", pArea, pRecNo ) ); - errCode = SELF_RECNO( ( AREAP ) pArea, &ulRecNo ); + errCode = SELF_RECNO( &pArea->area, &ulRecNo ); #ifdef HB_CLP_STRICT /* this is for strict Clipper compatibility but IMHO Clipper should not @@ -2859,7 +2859,7 @@ static HB_ERRCODE hb_dbfSetFieldExtent( DBFAREAP pArea, HB_USHORT uiFieldExtent { HB_TRACE( HB_TR_DEBUG, ( "hb_dbfSetFieldExtent(%p, %hu)", pArea, uiFieldExtent ) ); - if( SUPER_SETFIELDEXTENT( ( AREAP ) pArea, uiFieldExtent ) == HB_FAILURE ) + if( SUPER_SETFIELDEXTENT( &pArea->area, uiFieldExtent ) == HB_FAILURE ) return HB_FAILURE; /* Alloc field offsets array */ @@ -2894,22 +2894,22 @@ static HB_ERRCODE hb_dbfClose( DBFAREAP pArea ) if( pArea->pDataFile ) { /* update buffers */ - SELF_GOCOLD( ( AREAP ) pArea ); + SELF_GOCOLD( &pArea->area ); /* Unlock all records */ - SELF_UNLOCK( ( AREAP ) pArea, NULL ); + SELF_UNLOCK( &pArea->area, NULL ); /* Update header */ if( pArea->fUpdateHeader ) - SELF_WRITEDBHEADER( ( AREAP ) pArea ); + SELF_WRITEDBHEADER( &pArea->area ); /* It's not Clipper compatible but it reduces the problem with buggy Windows network setting */ if( hb_setGetHardCommit() ) - SELF_FLUSH( ( AREAP ) pArea ); + SELF_FLUSH( &pArea->area ); } - SUPER_CLOSE( ( AREAP ) pArea ); + SUPER_CLOSE( &pArea->area ); if( pArea->pDataFile ) { @@ -3008,7 +3008,7 @@ static HB_ERRCODE hb_dbfCreate( DBFAREAP pArea, LPDBOPENINFO pCreateInfo ) if( ! pFileName->szExtension && hb_setGetDefExtension() ) { pItem = hb_itemPutC( pItem, NULL ); - if( SELF_INFO( ( AREAP ) pArea, DBI_TABLEEXT, pItem ) != HB_SUCCESS ) + if( SELF_INFO( &pArea->area, DBI_TABLEEXT, pItem ) != HB_SUCCESS ) { hb_itemRelease( pItem ); hb_xfree( pFileName ); @@ -3032,7 +3032,7 @@ static HB_ERRCODE hb_dbfCreate( DBFAREAP pArea, LPDBOPENINFO pCreateInfo ) if( pArea->bLockType == 0 ) { pItem = hb_itemPutNI( pItem, 0 ); - if( SELF_INFO( ( AREAP ) pArea, DBI_LOCKSCHEME, pItem ) != HB_SUCCESS ) + if( SELF_INFO( &pArea->area, DBI_LOCKSCHEME, pItem ) != HB_SUCCESS ) { hb_itemRelease( pItem ); pArea->lpdbOpenInfo = NULL; @@ -3053,7 +3053,7 @@ static HB_ERRCODE hb_dbfCreate( DBFAREAP pArea, LPDBOPENINFO pCreateInfo ) { /* get memo type */ pItem = hb_itemPutNI( pItem, 0 ); - if( SELF_INFO( ( AREAP ) pArea, DBI_MEMOTYPE, pItem ) != HB_SUCCESS ) + if( SELF_INFO( &pArea->area, DBI_MEMOTYPE, pItem ) != HB_SUCCESS ) { hb_itemRelease( pItem ); pArea->lpdbOpenInfo = NULL; @@ -3336,7 +3336,7 @@ static HB_ERRCODE hb_dbfCreate( DBFAREAP pArea, LPDBOPENINFO pCreateInfo ) if( fError || pArea->pFieldOffset[ uiCount ] > pArea->uiRecordLen ) { hb_xfree( pBuffer ); - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); hb_dbfErrorRT( pArea, EG_CREATE, fError ? EDBF_DATATYPE : EDBF_DATAWIDTH, pCreateInfo->abName, 0, 0, NULL ); pArea->lpdbOpenInfo = NULL; @@ -3413,11 +3413,11 @@ static HB_ERRCODE hb_dbfCreate( DBFAREAP pArea, LPDBOPENINFO pCreateInfo ) /* Force write new header */ pArea->fUpdateHeader = HB_TRUE; /* Write header */ - errCode = SELF_WRITEDBHEADER( ( AREAP ) pArea ); + errCode = SELF_WRITEDBHEADER( &pArea->area ); if( errCode != HB_SUCCESS ) { hb_xfree( pBuffer ); - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); pArea->lpdbOpenInfo = NULL; return errCode; } @@ -3437,7 +3437,7 @@ static HB_ERRCODE hb_dbfCreate( DBFAREAP pArea, LPDBOPENINFO pCreateInfo ) hb_xfree( pBuffer ); hb_dbfErrorRT( pArea, EG_WRITE, EDBF_WRITE, pArea->szDataFileName, hb_fsError(), 0, NULL ); - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); pArea->lpdbOpenInfo = NULL; return HB_FAILURE; } @@ -3453,15 +3453,15 @@ static HB_ERRCODE hb_dbfCreate( DBFAREAP pArea, LPDBOPENINFO pCreateInfo ) hb_fsFNameMerge( szFileName, pFileName ); hb_xfree( pFileName ); pCreateInfo->abName = szFileName; - errCode = SELF_CREATEMEMFILE( ( AREAP ) pArea, pCreateInfo ); + errCode = SELF_CREATEMEMFILE( &pArea->area, pCreateInfo ); } /* If successful call SUPER_CREATE to finish system jobs */ if( errCode == HB_SUCCESS ) - errCode = SUPER_CREATE( ( AREAP ) pArea, pCreateInfo ); + errCode = SUPER_CREATE( &pArea->area, pCreateInfo ); if( errCode != HB_SUCCESS ) { - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); pArea->lpdbOpenInfo = NULL; return errCode; } @@ -3475,7 +3475,7 @@ static HB_ERRCODE hb_dbfCreate( DBFAREAP pArea, LPDBOPENINFO pCreateInfo ) pArea->lpdbOpenInfo = NULL; /* Position cursor at the first record */ - return SELF_GOTOP( ( AREAP ) pArea ); + return SELF_GOTOP( &pArea->area ); } /* @@ -3706,7 +3706,7 @@ static HB_ERRCODE hb_dbfInfo( DBFAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem } default: - return SUPER_INFO( ( AREAP ) pArea, uiIndex, pItem ); + return SUPER_INFO( &pArea->area, uiIndex, pItem ); } @@ -3741,7 +3741,7 @@ static HB_ERRCODE hb_dbfFieldInfo( DBFAREAP pArea, HB_USHORT uiIndex, HB_USHORT fLck = HB_FALSE; if( pArea->fShared && ! pArea->fFLocked && ! pArea->fHeaderLocked ) { - if( SELF_RAWLOCK( ( AREAP ) pArea, HEADER_LOCK, 0 ) != HB_SUCCESS ) + if( SELF_RAWLOCK( &pArea->area, HEADER_LOCK, 0 ) != HB_SUCCESS ) return HB_FAILURE; fLck = HB_TRUE; } @@ -3752,7 +3752,7 @@ static HB_ERRCODE hb_dbfFieldInfo( DBFAREAP pArea, HB_USHORT uiIndex, HB_USHORT nValue = hb_dbfGetNextValue( pArea, uiIndex - 1, HB_FALSE ); if( fLck ) - SELF_RAWLOCK( ( AREAP ) pArea, HEADER_UNLOCK, 0 ); + SELF_RAWLOCK( &pArea->area, HEADER_UNLOCK, 0 ); } hb_itemPutNInt( pItem, nValue ); return HB_SUCCESS; @@ -3765,14 +3765,14 @@ static HB_ERRCODE hb_dbfFieldInfo( DBFAREAP pArea, HB_USHORT uiIndex, HB_USHORT fLck = HB_FALSE; if( pArea->fShared && ! pArea->fFLocked && ! pArea->fHeaderLocked ) { - if( SELF_RAWLOCK( ( AREAP ) pArea, HEADER_LOCK, 0 ) != HB_SUCCESS ) + if( SELF_RAWLOCK( &pArea->area, HEADER_LOCK, 0 ) != HB_SUCCESS ) return HB_FAILURE; fLck = HB_TRUE; } iValue = hb_dbfAtoincStep( pArea, uiIndex - 1, hb_itemGetNI( pItem ) ); if( fLck ) - SELF_RAWLOCK( ( AREAP ) pArea, HEADER_UNLOCK, 0 ); + SELF_RAWLOCK( &pArea->area, HEADER_UNLOCK, 0 ); } else iValue = hb_dbfAtoincStep( pArea, uiIndex - 1, 0 ); @@ -3780,7 +3780,7 @@ static HB_ERRCODE hb_dbfFieldInfo( DBFAREAP pArea, HB_USHORT uiIndex, HB_USHORT hb_itemPutNI( pItem, iValue ); return HB_SUCCESS; default: - return SUPER_FIELDINFO( ( AREAP ) pArea, uiIndex, uiType, pItem ); + return SUPER_FIELDINFO( &pArea->area, uiIndex, uiType, pItem ); } } @@ -3797,7 +3797,7 @@ static HB_ERRCODE hb_dbfRecInfo( DBFAREAP pArea, PHB_ITEM pRecID, HB_USHORT uiIn if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -3815,7 +3815,7 @@ static HB_ERRCODE hb_dbfRecInfo( DBFAREAP pArea, PHB_ITEM pRecID, HB_USHORT uiIn case DBRI_RAWMEMOS: case DBRI_RAWDATA: ulPrevRec = pArea->ulRecNo; - errResult = SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + errResult = SELF_GOTO( &pArea->area, ulRecNo ); if( errResult != HB_SUCCESS ) return errResult; break; @@ -3825,7 +3825,7 @@ static HB_ERRCODE hb_dbfRecInfo( DBFAREAP pArea, PHB_ITEM pRecID, HB_USHORT uiIn switch( uiInfoType ) { case DBRI_DELETED: - errResult = SELF_DELETED( ( AREAP ) pArea, &bDeleted ); + errResult = SELF_DELETED( &pArea->area, &bDeleted ); if( errResult == HB_SUCCESS ) hb_itemPutL( pInfo, bDeleted ); break; @@ -3890,7 +3890,7 @@ static HB_ERRCODE hb_dbfRecInfo( DBFAREAP pArea, PHB_ITEM pRecID, HB_USHORT uiIn pArea->area.lpFields[ uiFields ].uiType == HB_FT_BLOB || pArea->area.lpFields[ uiFields ].uiType == HB_FT_OLE ) { - errResult = SELF_GETVALUE( ( AREAP ) pArea, uiFields + 1, pInfo ); + errResult = SELF_GETVALUE( &pArea->area, uiFields + 1, pInfo ); if( errResult != HB_SUCCESS ) break; nLen = hb_itemGetCLen( pInfo ); @@ -3908,11 +3908,11 @@ static HB_ERRCODE hb_dbfRecInfo( DBFAREAP pArea, PHB_ITEM pRecID, HB_USHORT uiIn } default: - errResult = SUPER_RECINFO( ( AREAP ) pArea, pRecID, uiInfoType, pInfo ); + errResult = SUPER_RECINFO( &pArea->area, pRecID, uiInfoType, pInfo ); } if( ulPrevRec != 0 ) { - if( SELF_GOTO( ( AREAP ) pArea, ulPrevRec ) != HB_SUCCESS && + if( SELF_GOTO( &pArea->area, ulPrevRec ) != HB_SUCCESS && errResult == HB_SUCCESS ) errResult = HB_FAILURE; } @@ -3926,7 +3926,7 @@ static HB_ERRCODE hb_dbfNewArea( DBFAREAP pArea ) { HB_TRACE( HB_TR_DEBUG, ( "hb_dbfNewArea(%p)", pArea ) ); - if( SUPER_NEW( ( AREAP ) pArea ) == HB_FAILURE ) + if( SUPER_NEW( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; /* set maximum fieldname length to 10 characters */ @@ -4006,7 +4006,7 @@ static HB_ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo ) if( ! pArea->bLockType ) { hb_itemClear( pItem ); - if( SELF_INFO( ( AREAP ) pArea, DBI_LOCKSCHEME, pItem ) != HB_SUCCESS ) + if( SELF_INFO( &pArea->area, DBI_LOCKSCHEME, pItem ) != HB_SUCCESS ) { hb_itemRelease( pItem ); pArea->lpdbOpenInfo = NULL; @@ -4044,7 +4044,7 @@ static HB_ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo ) if( ! pFileName->szExtension && hb_setGetDefExtension() ) { hb_itemClear( pItem ); - if( SELF_INFO( ( AREAP ) pArea, DBI_TABLEEXT, pItem ) != HB_SUCCESS ) + if( SELF_INFO( &pArea->area, DBI_TABLEEXT, pItem ) != HB_SUCCESS ) { hb_xfree( pFileName ); hb_itemRelease( pItem ); @@ -4104,7 +4104,7 @@ static HB_ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo ) /* Exit if error */ if( ! pArea->pDataFile ) { - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); pArea->lpdbOpenInfo = NULL; return HB_FAILURE; } @@ -4113,10 +4113,10 @@ static HB_ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo ) pArea->szDataFileName = hb_strdup( szFileName ); /* Read file header and exit if error */ - errCode = SELF_READDBHEADER( ( AREAP ) pArea ); + errCode = SELF_READDBHEADER( &pArea->area ); if( errCode != HB_SUCCESS ) { - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); pArea->lpdbOpenInfo = NULL; return errCode; } @@ -4151,7 +4151,7 @@ static HB_ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo ) { if( pBuffer ) hb_xfree( pBuffer ); - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); pArea->lpdbOpenInfo = NULL; return errCode; } @@ -4185,10 +4185,10 @@ static HB_ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo ) else #endif { - errCode = SELF_SETFIELDEXTENT( ( AREAP ) pArea, uiFields ); + errCode = SELF_SETFIELDEXTENT( &pArea->area, uiFields ); if( errCode != HB_SUCCESS ) { - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); pArea->lpdbOpenInfo = NULL; return errCode; } @@ -4415,7 +4415,7 @@ static HB_ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo ) hb_dbfAllocNullFlag( pArea, uiCount, HB_FALSE ); } /* Add field */ - errCode = SELF_ADDFIELD( ( AREAP ) pArea, &dbFieldInfo ); + errCode = SELF_ADDFIELD( &pArea->area, &dbFieldInfo ); } /* Exit if error */ @@ -4430,7 +4430,7 @@ static HB_ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo ) { hb_dbfErrorRT( pArea, EG_CORRUPTION, EDBF_CORRUPT, pArea->szDataFileName, 0, EF_CANDEFAULT, NULL ); - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); pArea->lpdbOpenInfo = NULL; return errCode; } @@ -4460,18 +4460,18 @@ static HB_ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo ) hb_fsFNameMerge( szFileName, pFileName ); hb_xfree( pFileName ); pOpenInfo->abName = szFileName; - errCode = SELF_OPENMEMFILE( ( AREAP ) pArea, pOpenInfo ); + errCode = SELF_OPENMEMFILE( &pArea->area, pOpenInfo ); } if( errCode == HB_SUCCESS ) { /* If successful call SUPER_OPEN to finish system jobs */ - errCode = SUPER_OPEN( ( AREAP ) pArea, pOpenInfo ); + errCode = SUPER_OPEN( &pArea->area, pOpenInfo ); } if( errCode != HB_SUCCESS ) { - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); pArea->lpdbOpenInfo = NULL; return HB_FAILURE; } @@ -4484,7 +4484,7 @@ static HB_ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo ) pArea->ulRecCount = hb_dbfCalcRecCount( pArea ); /* Position cursor at the first record */ - errCode = SELF_GOTOP( ( AREAP ) pArea ); + errCode = SELF_GOTOP( &pArea->area ); if( pArea->fTrigger ) hb_dbfTriggerDo( pArea, EVENT_POSTUSE, 0, NULL ); @@ -4553,7 +4553,7 @@ static HB_ERRCODE hb_dbfPack( DBFAREAP pArea ) return HB_FAILURE; } - if( SELF_GOCOLD( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; /* This is bad hack but looks that people begins to use it :-( @@ -4581,7 +4581,7 @@ static HB_ERRCODE hb_dbfPack( DBFAREAP pArea ) ulRecIn = 1; while( ulRecIn <= pArea->ulRecCount ) { - if( SELF_GOTO( ( AREAP ) pArea, ulRecIn ) != HB_SUCCESS ) + if( SELF_GOTO( &pArea->area, ulRecIn ) != HB_SUCCESS ) { if( pBlock ) hb_itemRelease( pBlock ); @@ -4600,7 +4600,7 @@ static HB_ERRCODE hb_dbfPack( DBFAREAP pArea ) if( ++ulEvery >= ulUserEvery ) { ulEvery = 0; - if( SELF_EVALBLOCK( ( AREAP ) pArea, pBlock ) != HB_SUCCESS ) + if( SELF_EVALBLOCK( &pArea->area, pBlock ) != HB_SUCCESS ) { hb_itemRelease( pBlock ); return HB_FAILURE; @@ -4608,7 +4608,7 @@ static HB_ERRCODE hb_dbfPack( DBFAREAP pArea ) } } - if( SELF_PACKREC( ( AREAP ) pArea, ulRecOut + 1, &fWritten ) != HB_SUCCESS ) + if( SELF_PACKREC( &pArea->area, ulRecOut + 1, &fWritten ) != HB_SUCCESS ) { if( pBlock ) hb_itemRelease( pBlock ); @@ -4638,7 +4638,7 @@ static HB_ERRCODE hb_dbfPack( DBFAREAP pArea ) { if( ulEvery > 0 ) { - if( SELF_EVALBLOCK( ( AREAP ) pArea, pBlock ) != HB_SUCCESS ) + if( SELF_EVALBLOCK( &pArea->area, pBlock ) != HB_SUCCESS ) { hb_itemRelease( pBlock ); return HB_FAILURE; @@ -4652,10 +4652,10 @@ static HB_ERRCODE hb_dbfPack( DBFAREAP pArea ) pArea->ulRecCount = ulRecOut; /* Force write new header */ pArea->fUpdateHeader = HB_TRUE; - if( SELF_WRITEDBHEADER( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_WRITEDBHEADER( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } - return SELF_GOTO( ( AREAP ) pArea, 1 ); + return SELF_GOTO( &pArea->area, 1 ); } void hb_dbfTranslateRec( DBFAREAP pArea, HB_BYTE * pBuffer, PHB_CODEPAGE cdp_src, PHB_CODEPAGE cdp_dest ) @@ -4712,7 +4712,7 @@ static HB_ERRCODE hb_dbfSort( DBFAREAP pArea, LPDBSORTINFO pSortInfo ) HB_TRACE( HB_TR_DEBUG, ( "hb_dbfSort(%p, %p)", pArea, pSortInfo ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; if( ! hb_dbQSortInit( &dbQuickSort, pSortInfo, pArea->uiRecordLen ) ) @@ -4724,7 +4724,7 @@ static HB_ERRCODE hb_dbfSort( DBFAREAP pArea, LPDBSORTINFO pSortInfo ) ulRecNo = 1; if( pSortInfo->dbtri.dbsci.itmRecID ) { - errCode = SELF_GOTOID( ( AREAP ) pArea, pSortInfo->dbtri.dbsci.itmRecID ); + errCode = SELF_GOTOID( &pArea->area, pSortInfo->dbtri.dbsci.itmRecID ); bMoreRecords = bLimited = HB_TRUE; } else if( pSortInfo->dbtri.dbsci.lNext ) @@ -4738,7 +4738,7 @@ static HB_ERRCODE hb_dbfSort( DBFAREAP pArea, LPDBSORTINFO pSortInfo ) if( ! pSortInfo->dbtri.dbsci.itmCobWhile && ( ! pSortInfo->dbtri.dbsci.fRest || ! hb_itemGetLX( pSortInfo->dbtri.dbsci.fRest ) ) ) - errCode = SELF_GOTOP( ( AREAP ) pArea ); + errCode = SELF_GOTOP( &pArea->area ); bMoreRecords = HB_TRUE; bLimited = HB_FALSE; } @@ -4747,7 +4747,7 @@ static HB_ERRCODE hb_dbfSort( DBFAREAP pArea, LPDBSORTINFO pSortInfo ) { if( pSortInfo->dbtri.dbsci.itmCobWhile ) { - if( SELF_EVALBLOCK( ( AREAP ) pArea, pSortInfo->dbtri.dbsci.itmCobWhile ) != HB_SUCCESS ) + if( SELF_EVALBLOCK( &pArea->area, pSortInfo->dbtri.dbsci.itmCobWhile ) != HB_SUCCESS ) { hb_dbQSortExit( &dbQuickSort ); return HB_FAILURE; @@ -4757,7 +4757,7 @@ static HB_ERRCODE hb_dbfSort( DBFAREAP pArea, LPDBSORTINFO pSortInfo ) if( bMoreRecords && pSortInfo->dbtri.dbsci.itmCobFor ) { - if( SELF_EVALBLOCK( ( AREAP ) pArea, pSortInfo->dbtri.dbsci.itmCobFor ) != HB_SUCCESS ) + if( SELF_EVALBLOCK( &pArea->area, pSortInfo->dbtri.dbsci.itmCobFor ) != HB_SUCCESS ) { hb_dbQSortExit( &dbQuickSort ); return HB_FAILURE; @@ -4802,7 +4802,7 @@ static HB_ERRCODE hb_dbfSort( DBFAREAP pArea, LPDBSORTINFO pSortInfo ) if( bMoreRecords && bLimited ) bMoreRecords = ( --ulRecNo > 0 ); if( bMoreRecords ) - errCode = SELF_SKIP( ( AREAP ) pArea, 1 ); + errCode = SELF_SKIP( &pArea->area, 1 ); } /* Copy last records */ @@ -4836,7 +4836,7 @@ static HB_ERRCODE hb_dbfTrans( DBFAREAP pArea, LPDBTRANSINFO pTransInfo ) else { PHB_ITEM pPutRec = hb_itemPutL( NULL, HB_FALSE ); - if( SELF_INFO( ( AREAP ) pTransInfo->lpaDest, DBI_CANPUTREC, pPutRec ) != HB_SUCCESS ) + if( SELF_INFO( pTransInfo->lpaDest, DBI_CANPUTREC, pPutRec ) != HB_SUCCESS ) { hb_itemRelease( pPutRec ); return HB_FAILURE; @@ -4848,7 +4848,7 @@ static HB_ERRCODE hb_dbfTrans( DBFAREAP pArea, LPDBTRANSINFO pTransInfo ) hb_itemRelease( pPutRec ); } } - return SUPER_TRANS( ( AREAP ) pArea, pTransInfo ); + return SUPER_TRANS( &pArea->area, pTransInfo ); } #define hb_dbfTransRec NULL @@ -4879,15 +4879,15 @@ static HB_ERRCODE hb_dbfZap( DBFAREAP pArea ) return HB_FAILURE; } - if( SELF_GOCOLD( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; pArea->fUpdateHeader = HB_TRUE; pArea->ulRecCount = 0; - if( SELF_WRITEDBHEADER( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_WRITEDBHEADER( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; - if( SELF_GOTO( ( AREAP ) pArea, 0 ) != HB_SUCCESS ) + if( SELF_GOTO( &pArea->area, 0 ) != HB_SUCCESS ) return HB_FAILURE; /* reset autoincrement and row version fields */ @@ -4902,7 +4902,7 @@ static HB_ERRCODE hb_dbfZap( DBFAREAP pArea ) /* Zap memo file */ if( pArea->fHasMemo ) { - if( SELF_CREATEMEMFILE( ( AREAP ) pArea, NULL ) != HB_SUCCESS ) + if( SELF_CREATEMEMFILE( &pArea->area, NULL ) != HB_SUCCESS ) return HB_FAILURE; } return HB_SUCCESS; @@ -4918,10 +4918,10 @@ static HB_ERRCODE hb_dbfChildEnd( DBFAREAP pArea, LPDBRELINFO pRelInfo ) HB_TRACE( HB_TR_DEBUG, ( "hb_dbfChildEnd(%p, %p)", pArea, pRelInfo ) ); if( pArea->lpdbPendingRel == pRelInfo ) - errCode = SELF_FORCEREL( ( AREAP ) pArea ); + errCode = SELF_FORCEREL( &pArea->area ); else errCode = HB_SUCCESS; - SUPER_CHILDEND( ( AREAP ) pArea, pRelInfo ); + SUPER_CHILDEND( &pArea->area, pRelInfo ); return errCode; } @@ -4932,9 +4932,9 @@ static HB_ERRCODE hb_dbfChildStart( DBFAREAP pArea, LPDBRELINFO pRelInfo ) { HB_TRACE( HB_TR_DEBUG, ( "hb_dbfChildStart(%p, %p)", pArea, pRelInfo ) ); - if( SELF_CHILDSYNC( ( AREAP ) pArea, pRelInfo ) != HB_SUCCESS ) + if( SELF_CHILDSYNC( &pArea->area, pRelInfo ) != HB_SUCCESS ) return HB_FAILURE; - return SUPER_CHILDSTART( ( AREAP ) pArea, pRelInfo ); + return SUPER_CHILDSTART( &pArea->area, pRelInfo ); } /* @@ -4967,13 +4967,13 @@ static HB_ERRCODE hb_dbfChildSync( DBFAREAP pArea, LPDBRELINFO pRelInfo ) * Druzus. */ - if( SELF_GOCOLD( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; pArea->lpdbPendingRel = pRelInfo; if( pArea->area.lpdbRelations ) - return SELF_SYNCCHILDREN( ( AREAP ) pArea ); + return SELF_SYNCCHILDREN( &pArea->area ); return HB_SUCCESS; } @@ -4997,9 +4997,9 @@ static HB_ERRCODE hb_dbfForceRel( DBFAREAP pArea ) /* update buffers */ /* commented out - see comment above in CHILDSYNC() method, Druzus */ - /* SELF_GOCOLD( ( AREAP ) pArea ); */ + /* SELF_GOCOLD( &pArea->area ); */ - return SELF_RELEVAL( ( AREAP ) pArea, lpdbPendingRel ); + return SELF_RELEVAL( &pArea->area, lpdbPendingRel ); } return HB_SUCCESS; } @@ -5027,9 +5027,9 @@ static HB_ERRCODE hb_dbfClearFilter( DBFAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_dbfClearFilter(%p)", pArea ) ); if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); - return SUPER_CLEARFILTER( ( AREAP ) pArea ); + return SUPER_CLEARFILTER( &pArea->area ); } #define hb_dbfClearLocate NULL @@ -5046,9 +5046,9 @@ static HB_ERRCODE hb_dbfSetFilter( DBFAREAP pArea, LPDBFILTERINFO pFilterInfo ) HB_TRACE( HB_TR_DEBUG, ( "hb_dbfSetFilter(%p, %p)", pArea, pFilterInfo ) ); if( pArea->lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->area ); - return SUPER_SETFILTER( ( AREAP ) pArea, pFilterInfo ); + return SUPER_SETFILTER( &pArea->area, pFilterInfo ); } #define hb_dbfSetLocate NULL @@ -5263,7 +5263,7 @@ static HB_ERRCODE hb_dbfGetValueFile( DBFAREAP pArea, HB_USHORT uiIndex, const c if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -5341,7 +5341,7 @@ static HB_ERRCODE hb_dbfPutValueFile( DBFAREAP pArea, HB_USHORT uiIndex, const c if( pArea->lpdbPendingRel ) { - if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_FORCEREL( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; } @@ -5356,7 +5356,7 @@ static HB_ERRCODE hb_dbfPutValueFile( DBFAREAP pArea, HB_USHORT uiIndex, const c return HB_FAILURE; /* Buffer is hot? */ - if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) == HB_FAILURE ) + if( ! pArea->fRecordChanged && SELF_GOHOT( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; pField = pArea->area.lpFields + uiIndex; @@ -5563,7 +5563,7 @@ static HB_ERRCODE hb_dbfWriteDBHeader( DBFAREAP pArea ) { if( ! pArea->fHeaderLocked ) { - if( SELF_RAWLOCK( ( AREAP ) pArea, HEADER_LOCK, 0 ) != HB_SUCCESS ) + if( SELF_RAWLOCK( &pArea->area, HEADER_LOCK, 0 ) != HB_SUCCESS ) return HB_FAILURE; fLck = HB_TRUE; } @@ -5593,7 +5593,7 @@ static HB_ERRCODE hb_dbfWriteDBHeader( DBFAREAP pArea ) pArea->fUpdateHeader = HB_FALSE; if( fLck ) { - if( SELF_RAWLOCK( ( AREAP ) pArea, HEADER_UNLOCK, 0 ) != HB_SUCCESS ) + if( SELF_RAWLOCK( &pArea->area, HEADER_UNLOCK, 0 ) != HB_SUCCESS ) return HB_FAILURE; } diff --git a/src/rdd/dbfcdx/dbfcdx1.c b/src/rdd/dbfcdx/dbfcdx1.c index 4c9c53a1a9..084cdae24c 100644 --- a/src/rdd/dbfcdx/dbfcdx1.c +++ b/src/rdd/dbfcdx/dbfcdx1.c @@ -218,7 +218,7 @@ static HB_ERRCODE hb_cdxErrorRT( CDXAREAP pArea, hb_errPutFileName( pError, filename ); if( uiFlags ) hb_errPutFlags( pError, uiFlags ); - iRet = SELF_ERROR( ( AREAP ) pArea, pError ); + iRet = SELF_ERROR( &pArea->dbfarea.area, pError ); if( ! pErrorPtr ) hb_errRelease( pError ); } @@ -623,7 +623,7 @@ static LPCDXKEY hb_cdxKeyEval( LPCDXKEY pKey, LPCDXTAG pTag ) if( pTag->nField ) { pItem = hb_stackReturnItem(); - SELF_GETVALUE( ( AREAP ) pArea, pTag->nField, pItem ); + SELF_GETVALUE( &pArea->dbfarea.area, pTag->nField, pItem ); pKey = hb_cdxKeyPutItem( pKey, pItem, pArea->dbfarea.ulRecNo, pTag, CDX_CMP_EXACT ); } else @@ -754,7 +754,7 @@ static void hb_cdxTagClearScope( LPCDXTAG pTag, HB_USHORT nScope ) /* resolve any pending scope relations first */ if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( pTag->UsrAscend ? nScope == 0 : nScope != 0 ) { @@ -791,7 +791,7 @@ static void hb_cdxTagSetScope( LPCDXTAG pTag, HB_USHORT nScope, PHB_ITEM pItem ) /* resolve any pending scope relations first */ if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pScopeVal = ( hb_itemType( pItem ) == HB_IT_BLOCK ) ? hb_vmEvalBlock( pItem ) : pItem; @@ -839,7 +839,7 @@ static void hb_cdxTagGetScope( LPCDXTAG pTag, HB_USHORT nScope, PHB_ITEM pItem ) /* resolve any pending scoped relations first */ if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pScope = ( pTag->UsrAscend ? nScope == 0 : nScope != 0 ) ? &( pTag->topScope ) : &( pTag->bottomScope ); @@ -858,7 +858,7 @@ static void hb_cdxTagRefreshScope( LPCDXTAG pTag ) if( pTag->pIndex->pArea->dbfarea.lpdbPendingRel && pTag->pIndex->pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pTag->pIndex->pArea ); + SELF_FORCEREL( &pTag->pIndex->pArea->dbfarea.area ); if( hb_itemType( pTag->topScope ) == HB_IT_BLOCK ) { @@ -1711,7 +1711,8 @@ static void hb_cdxPageCheckDupTrlRaw( LPCDXPAGE pPage ) hb_xfree( pKeyBuf ); } -static void hb_cdxChkLeafRecord( const HB_BYTE * pSrc, HB_ULONG ulRec, int iDup, int iTrl, +static void hb_cdxChkLeafRecord( const HB_BYTE * pSrc, + HB_ULONG ulRec, int iDup, int iTrl, LPCDXPAGE pPage ) { int iTmp = HB_GET_LE_UINT32( pSrc + pPage->ReqByte - 4 ) >> @@ -1738,7 +1739,8 @@ static void hb_cdxChkLeafRecord( const HB_BYTE * pSrc, HB_ULONG ulRec, int iDup, /* * put record and duplicate + trailing counters into leaf page */ -static void hb_cdxSetLeafRecord( HB_BYTE * pDst, HB_ULONG ulRec, int iDup, int iTrl, +static void hb_cdxSetLeafRecord( HB_BYTE * pDst, + HB_ULONG ulRec, int iDup, int iTrl, int iReq, int iDCbits, int iTCbits ) { int i, iBits, iFrom; @@ -3624,7 +3626,7 @@ static void hb_cdxTagLoad( LPCDXTAG pTag ) if( pTag->OptFlags & CDX_TYPE_STRUCTURE ) return; - if( ! *pTag->KeyExpr || SELF_COMPILE( ( AREAP ) pTag->pIndex->pArea, pTag->KeyExpr ) == HB_FAILURE ) + if( ! *pTag->KeyExpr || SELF_COMPILE( &pTag->pIndex->pArea->dbfarea.area, pTag->KeyExpr ) == HB_FAILURE ) { pTag->RootBlock = 0; /* To force RT error - index corrupted */ return; @@ -3634,7 +3636,7 @@ static void hb_cdxTagLoad( LPCDXTAG pTag ) /* go to a blank record before testing expression */ ulRecNo = pTag->pIndex->pArea->dbfarea.ulRecNo; - SELF_GOTO( ( AREAP ) pTag->pIndex->pArea, 0 ); + SELF_GOTO( &pTag->pIndex->pArea->dbfarea.area, 0 ); pTag->uiType = hb_cdxItemType( hb_vmEvalBlockOrMacro( pTag->pKeyItem ) ); pTag->bTrail = ( pTag->uiType == 'C' ) ? ' ' : '\0'; @@ -3643,7 +3645,7 @@ static void hb_cdxTagLoad( LPCDXTAG pTag ) else pTag->IgnoreCase = HB_FALSE; - pTag->nField = hb_rddFieldExpIndex( ( AREAP ) pTag->pIndex->pArea, + pTag->nField = hb_rddFieldExpIndex( &pTag->pIndex->pArea->dbfarea.area, pTag->KeyExpr ); /* Check if there is a FOR expression: pTag->OptFlags & CDX_TYPE_FORFILTER */ @@ -3652,7 +3654,7 @@ static void hb_cdxTagLoad( LPCDXTAG pTag ) pTag->ForExpr = ( char * ) hb_xgrab( uiForLen + 1 ); hb_strncpyTrim( pTag->ForExpr, ( const char * ) tagHeader.keyExpPool + uiForPos, uiForLen ); - if( SELF_COMPILE( ( AREAP ) pTag->pIndex->pArea, pTag->ForExpr ) == HB_FAILURE ) + if( SELF_COMPILE( &pTag->pIndex->pArea->dbfarea.area, pTag->ForExpr ) == HB_FAILURE ) pTag->RootBlock = 0; /* To force RT error - index corrupted */ else { @@ -3673,7 +3675,7 @@ static void hb_cdxTagLoad( LPCDXTAG pTag ) #endif } } - SELF_GOTO( ( AREAP ) pTag->pIndex->pArea, ulRecNo ); + SELF_GOTO( &pTag->pIndex->pArea->dbfarea.area, ulRecNo ); if( pTag->uiLen > pTag->pIndex->uiMaxKeyLen || pTag->uiType == 'U' || ( pTag->uiType == 'N' && pTag->uiLen != 8 && pTag->uiLen != 4 ) || @@ -3970,7 +3972,7 @@ static HB_BOOL hb_cdxCheckRecordScope( CDXAREAP pArea, HB_ULONG ulRec ) { HB_LONG lRecNo = ( HB_LONG ) ulRec; - if( SELF_COUNTSCOPE( ( AREAP ) pArea, NULL, &lRecNo ) == HB_SUCCESS && lRecNo == 0 ) + if( SELF_COUNTSCOPE( &pArea->dbfarea.area, NULL, &lRecNo ) == HB_SUCCESS && lRecNo == 0 ) { return HB_FALSE; } @@ -3988,10 +3990,10 @@ static HB_BOOL hb_cdxCheckRecordFilter( CDXAREAP pArea, HB_ULONG ulRecNo ) if( pArea->dbfarea.area.dbfi.itmCobExpr || fDeleted ) { if( pArea->dbfarea.ulRecNo != ulRecNo || pArea->dbfarea.lpdbPendingRel ) - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); if( fDeleted ) - SELF_DELETED( ( AREAP ) pArea, &lResult ); + SELF_DELETED( &pArea->dbfarea.area, &lResult ); if( ! lResult && pArea->dbfarea.area.dbfi.itmCobExpr ) { @@ -4643,7 +4645,7 @@ static LPCDXTAG hb_cdxIndexCreateTag( HB_BOOL fStruct, LPCDXINDEX pIndex, if( szKeyExp != NULL ) { pTag->KeyExpr = hb_strduptrim( szKeyExp ); - pTag->nField = hb_rddFieldExpIndex( ( AREAP ) pTag->pIndex->pArea, + pTag->nField = hb_rddFieldExpIndex( &pTag->pIndex->pArea->dbfarea.area, pTag->KeyExpr ); } pTag->pKeyItem = pKeyItem; @@ -4992,7 +4994,7 @@ static void hb_cdxCreateFName( CDXAREAP pArea, const char * szBagName, DBORDERINFO pExtInfo; memset( &pExtInfo, 0, sizeof( pExtInfo ) ); pExt = pExtInfo.itmResult = hb_itemPutC( NULL, NULL ); - if( SELF_ORDINFO( ( AREAP ) pArea, DBOI_BAGEXT, &pExtInfo ) == HB_SUCCESS && + if( SELF_ORDINFO( &pArea->dbfarea.area, DBOI_BAGEXT, &pExtInfo ) == HB_SUCCESS && hb_itemGetCLen( pExt ) > 0 ) { pFileName->szExtension = hb_itemGetCPtr( pExt ); @@ -5017,7 +5019,7 @@ static void hb_cdxCreateFName( CDXAREAP pArea, const char * szBagName, DBORDERINFO pExtInfo; memset( &pExtInfo, 0, sizeof( pExtInfo ) ); pExt = pExtInfo.itmResult = hb_itemPutC( NULL, NULL ); - if( SELF_ORDINFO( ( AREAP ) pArea, DBOI_BAGEXT, &pExtInfo ) == HB_SUCCESS ) + if( SELF_ORDINFO( &pArea->dbfarea.area, DBOI_BAGEXT, &pExtInfo ) == HB_SUCCESS ) { *fProd = hb_stricmp( pFileName->szExtension, hb_itemGetCPtr( pExt ) ) == 0; @@ -5057,7 +5059,7 @@ static void hb_cdxOrdListClear( CDXAREAP pArea, HB_BOOL fAll, LPCDXINDEX pKeepIn memset( &pExtInfo, 0, sizeof( pExtInfo ) ); pExt = pExtInfo.itmResult = hb_itemPutC( NULL, NULL ); - if( SELF_ORDINFO( ( AREAP ) pArea, DBOI_BAGEXT, &pExtInfo ) == HB_SUCCESS ) + if( SELF_ORDINFO( &pArea->dbfarea.area, DBOI_BAGEXT, &pExtInfo ) == HB_SUCCESS ) { fAll = hb_stricmp( pFileNameCdx->szExtension, hb_itemGetCPtr( pExt ) ) != 0; @@ -5256,7 +5258,7 @@ static LPCDXTAG hb_cdxGetActiveTag( CDXAREAP pArea ) static HB_BOOL hb_cdxCurKeyRefresh( CDXAREAP pArea, LPCDXTAG pTag ) { if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( ! pArea->dbfarea.fPositioned ) { @@ -5287,7 +5289,7 @@ static HB_BOOL hb_cdxCurKeyRefresh( CDXAREAP pArea, LPCDXTAG pTag ) * update it, create the new key and if differs seek again */ if( pTag->CurKey->rec != pArea->dbfarea.ulRecNo && fValidBuf ) { - SELF_GOTO( ( AREAP ) pArea, pArea->dbfarea.ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, pArea->dbfarea.ulRecNo ); pKey = hb_cdxKeyEval( pKey, pTag ); if( memcmp( pKey2->val, pKey->val, pKey->len ) != 0 ) hb_cdxTagKeyFind( pTag, pKey ); @@ -5322,14 +5324,14 @@ static HB_ERRCODE hb_cdxDBOISkipUnique( CDXAREAP pArea, LPCDXTAG pTag, HB_LONG l HB_TRACE( HB_TR_DEBUG, ( "hb_cdxDBOISkipUnique(%p, %p, %ld)", pArea, pTag, lToSkip ) ); - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( ! pTag ) - return SELF_SKIP( ( AREAP ) pArea, lToSkip ); + return SELF_SKIP( &pArea->dbfarea.area, lToSkip ); if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pArea->dbfarea.area.fTop = pArea->dbfarea.area.fBottom = HB_FALSE; @@ -5340,9 +5342,9 @@ static HB_ERRCODE hb_cdxDBOISkipUnique( CDXAREAP pArea, LPCDXTAG pTag, HB_LONG l if( ! pArea->dbfarea.fPositioned ) { if( fForward ) - retval = SELF_GOTO( ( AREAP ) pArea, 0 ); + retval = SELF_GOTO( &pArea->dbfarea.area, 0 ); else - retval = SELF_GOBOTTOM( ( AREAP ) pArea ); + retval = SELF_GOBOTTOM( &pArea->dbfarea.area ); } else { @@ -5378,14 +5380,14 @@ static HB_ERRCODE hb_cdxDBOISkipUnique( CDXAREAP pArea, LPCDXTAG pTag, HB_LONG l pTag->CurKey->val, pTag->CurKey->len, CDX_CMP_EXACT ) != 0 ) { - SELF_GOTO( ( AREAP ) pArea, pTag->CurKey->rec ); - SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + SELF_GOTO( &pArea->dbfarea.area, pTag->CurKey->rec ); + SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); break; } hb_cdxTagSkipNext( pTag ); } } - retval = SELF_GOTO( ( AREAP ) pArea, ( ! pArea->dbfarea.fPositioned || pTag->TagEOF ) + retval = SELF_GOTO( &pArea->dbfarea.area, ( ! pArea->dbfarea.fPositioned || pTag->TagEOF ) ? 0 : pTag->CurKey->rec ); } else @@ -5403,8 +5405,8 @@ static HB_ERRCODE hb_cdxDBOISkipUnique( CDXAREAP pArea, LPCDXTAG pTag, HB_LONG l pTag->CurKey->val, pTag->CurKey->len, CDX_CMP_EXACT ) != 0 ) { - SELF_GOTO( ( AREAP ) pArea, pTag->CurKey->rec ); - SELF_SKIPFILTER( ( AREAP ) pArea, -1 ); + SELF_GOTO( &pArea->dbfarea.area, pTag->CurKey->rec ); + SELF_SKIPFILTER( &pArea->dbfarea.area, -1 ); break; } hb_cdxTagSkipPrev( pTag ); @@ -5413,12 +5415,12 @@ static HB_ERRCODE hb_cdxDBOISkipUnique( CDXAREAP pArea, LPCDXTAG pTag, HB_LONG l if( fOut || pTag->TagBOF ) { - retval = SELF_GOTOP( ( AREAP ) pArea ); + retval = SELF_GOTOP( &pArea->dbfarea.area ); pArea->dbfarea.area.fBof = HB_TRUE; } else { - retval = SELF_GOTO( ( AREAP ) pArea, pTag->CurKey->rec ); + retval = SELF_GOTO( &pArea->dbfarea.area, pTag->CurKey->rec ); } } hb_cdxIndexUnLockRead( pTag->pIndex ); @@ -5444,18 +5446,18 @@ static HB_BOOL hb_cdxDBOISkipEval( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fForwa HB_TRACE( HB_TR_DEBUG, ( "hb_cdxDBOISkipEval(%p, %p, %i, %p)", pArea, pTag, fForward, pEval ) ); - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FALSE; if( ! pTag || hb_itemType( pEval ) != HB_IT_BLOCK ) { - if( SELF_SKIP( ( AREAP ) pArea, fForward ? 1 : -1 ) == HB_FAILURE ) + if( SELF_SKIP( &pArea->dbfarea.area, fForward ? 1 : -1 ) == HB_FAILURE ) return HB_FALSE; return fForward ? ! pArea->dbfarea.area.fEof : ! pArea->dbfarea.area.fBof; } if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pArea->dbfarea.area.fTop = pArea->dbfarea.area.fBottom = HB_FALSE; @@ -5474,12 +5476,12 @@ static HB_BOOL hb_cdxDBOISkipEval( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fForwa hb_cdxTagSkipNext( pTag ); while( ! pTag->TagEOF ) { - if( SELF_GOTO( ( AREAP ) pArea, pTag->CurKey->rec ) == HB_FAILURE ) + if( SELF_GOTO( &pArea->dbfarea.area, pTag->CurKey->rec ) == HB_FAILURE ) break; if( hb_cdxEvalSeekCond( pTag, pEval ) ) { HB_ULONG ulRecNo = pArea->dbfarea.ulRecNo; - SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); if( pArea->dbfarea.ulRecNo == ulRecNo || hb_cdxEvalSeekCond( pTag, pEval ) ) { fFound = HB_TRUE; @@ -5489,7 +5491,7 @@ static HB_BOOL hb_cdxDBOISkipEval( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fForwa hb_cdxTagSkipNext( pTag ); } if( ! fFound ) - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); } else { @@ -5497,12 +5499,12 @@ static HB_BOOL hb_cdxDBOISkipEval( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fForwa hb_cdxTagSkipPrev( pTag ); while( ! pTag->TagBOF ) { - if( SELF_GOTO( ( AREAP ) pArea, pTag->CurKey->rec ) == HB_FAILURE ) + if( SELF_GOTO( &pArea->dbfarea.area, pTag->CurKey->rec ) == HB_FAILURE ) break; if( hb_cdxEvalSeekCond( pTag, pEval ) ) { HB_ULONG ulRecNo = pArea->dbfarea.ulRecNo; - SELF_SKIPFILTER( ( AREAP ) pArea, -1 ); + SELF_SKIPFILTER( &pArea->dbfarea.area, -1 ); if( pArea->dbfarea.ulRecNo == ulRecNo || hb_cdxEvalSeekCond( pTag, pEval ) ) { fFound = HB_TRUE; @@ -5513,7 +5515,7 @@ static HB_BOOL hb_cdxDBOISkipEval( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fForwa } if( ! fFound ) { - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); pArea->dbfarea.area.fBof = HB_TRUE; } } @@ -5541,14 +5543,14 @@ static HB_BOOL hb_cdxDBOISkipWild( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fForwa HB_TRACE( HB_TR_DEBUG, ( "hb_cdxDBOISkipWild(%p, %p, %i, %p)", pArea, pTag, fForward, pWildItm ) ); - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FALSE; szPattern = hb_itemGetCPtr( pWildItm ); if( ! pTag || pTag->uiType != 'C' || ! szPattern || ! *szPattern ) { - if( SELF_SKIP( ( AREAP ) pArea, fForward ? 1 : -1 ) == HB_FAILURE ) + if( SELF_SKIP( &pArea->dbfarea.area, fForward ? 1 : -1 ) == HB_FAILURE ) return HB_FALSE; return fForward ? pArea->dbfarea.fPositioned : ! pArea->dbfarea.area.fBof; } @@ -5565,7 +5567,7 @@ static HB_BOOL hb_cdxDBOISkipWild( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fForwa } if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pArea->dbfarea.area.fTop = pArea->dbfarea.area.fBottom = HB_FALSE; @@ -5613,9 +5615,9 @@ static HB_BOOL hb_cdxDBOISkipWild( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fForwa if( hb_strMatchWild( ( const char * ) pTag->CurKey->val, szPattern ) ) { HB_ULONG ulRecNo = pTag->CurKey->rec; - if( SELF_GOTO( ( AREAP ) pArea, ulRecNo ) != HB_SUCCESS ) + if( SELF_GOTO( &pArea->dbfarea.area, ulRecNo ) != HB_SUCCESS ) break; - SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); if( pArea->dbfarea.ulRecNo == ulRecNo || hb_strMatchWild( ( const char * ) pTag->CurKey->val, szPattern ) ) { @@ -5632,7 +5634,7 @@ static HB_BOOL hb_cdxDBOISkipWild( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fForwa hb_cdxTagSkipNext( pTag ); } if( ! fFound ) - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); } else { @@ -5643,9 +5645,9 @@ static HB_BOOL hb_cdxDBOISkipWild( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fForwa if( hb_strMatchWild( ( const char * ) pTag->CurKey->val, szPattern ) ) { HB_ULONG ulRecNo = pTag->CurKey->rec; - if( SELF_GOTO( ( AREAP ) pArea, ulRecNo ) != HB_SUCCESS ) + if( SELF_GOTO( &pArea->dbfarea.area, ulRecNo ) != HB_SUCCESS ) break; - SELF_SKIPFILTER( ( AREAP ) pArea, -1 ); + SELF_SKIPFILTER( &pArea->dbfarea.area, -1 ); if( pArea->dbfarea.ulRecNo == ulRecNo || hb_strMatchWild( ( const char * ) pTag->CurKey->val, szPattern ) ) { @@ -5663,7 +5665,7 @@ static HB_BOOL hb_cdxDBOISkipWild( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fForwa } if( ! fFound ) { - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); pArea->dbfarea.area.fBof = HB_TRUE; } } @@ -5709,18 +5711,18 @@ static HB_BOOL hb_cdxDBOISkipRegEx( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fForw HB_TRACE( HB_TR_DEBUG, ( "hb_cdxDBOISkipRegEx(%p, %p, %i, %p)", pArea, pTag, fForward, pRegExItm ) ); - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FALSE; if( ! pTag || pTag->uiType != 'C' || ( pRegEx = hb_regexGet( pRegExItm, 0 ) ) == NULL ) { - if( SELF_SKIP( ( AREAP ) pArea, fForward ? 1 : -1 ) == HB_FAILURE ) + if( SELF_SKIP( &pArea->dbfarea.area, fForward ? 1 : -1 ) == HB_FAILURE ) return HB_FALSE; return fForward ? pArea->dbfarea.fPositioned : ! pArea->dbfarea.area.fBof; } if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pArea->dbfarea.area.fTop = pArea->dbfarea.area.fBottom = HB_FALSE; @@ -5742,7 +5744,7 @@ static HB_BOOL hb_cdxDBOISkipRegEx( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fForw if( hb_cdxRegexMatch( pArea, pRegEx, pTag->CurKey ) ) { HB_ULONG ulRecNo = pArea->dbfarea.ulRecNo; - SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); if( pArea->dbfarea.ulRecNo == ulRecNo || hb_cdxRegexMatch( pArea, pRegEx, pTag->CurKey ) ) { @@ -5752,7 +5754,7 @@ static HB_BOOL hb_cdxDBOISkipRegEx( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fForw } hb_cdxTagSkipNext( pTag ); } - SELF_GOTO( ( AREAP ) pArea, fFound ? pTag->CurKey->rec : 0 ); + SELF_GOTO( &pArea->dbfarea.area, fFound ? pTag->CurKey->rec : 0 ); } else { @@ -5763,7 +5765,7 @@ static HB_BOOL hb_cdxDBOISkipRegEx( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fForw if( hb_cdxRegexMatch( pArea, pRegEx, pTag->CurKey ) ) { HB_ULONG ulRecNo = pArea->dbfarea.ulRecNo; - SELF_SKIPFILTER( ( AREAP ) pArea, -1 ); + SELF_SKIPFILTER( &pArea->dbfarea.area, -1 ); if( pArea->dbfarea.ulRecNo == ulRecNo || hb_cdxRegexMatch( pArea, pRegEx, pTag->CurKey ) ) { @@ -5774,10 +5776,10 @@ static HB_BOOL hb_cdxDBOISkipRegEx( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fForw hb_cdxTagSkipPrev( pTag ); } if( fFound ) - SELF_GOTO( ( AREAP ) pArea, pTag->CurKey->rec ); + SELF_GOTO( &pArea->dbfarea.area, pTag->CurKey->rec ); else { - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); pArea->dbfarea.area.fBof = HB_TRUE; } } @@ -5878,7 +5880,7 @@ static HB_LONG hb_cdxDBOIKeyCount( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fFilte hb_cdxKeyFree( pTag->CurKey ); pTag->CurKey = pCurKey; if( fCheckFilter ) - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); } else { @@ -5928,20 +5930,20 @@ static HB_LONG hb_cdxDBOIKeyCount( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fFilte { HB_ULONG ulRecNo = pArea->dbfarea.ulRecNo; - if( SELF_GOTOP( ( AREAP ) pArea ) == HB_SUCCESS ) + if( SELF_GOTOP( &pArea->dbfarea.area ) == HB_SUCCESS ) { while( ! pArea->dbfarea.area.fEof ) { ulKeyCount++; - if( SELF_SKIP( ( AREAP ) pArea, 1 ) != HB_SUCCESS ) + if( SELF_SKIP( &pArea->dbfarea.area, 1 ) != HB_SUCCESS ) break; } - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); } } else { - SELF_RECCOUNT( ( AREAP ) pArea, &ulKeyCount ); + SELF_RECCOUNT( &pArea->dbfarea.area, &ulKeyCount ); } } return ulKeyCount; @@ -5956,7 +5958,7 @@ static HB_LONG hb_cdxDBOIKeyNo( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fFilters HB_BOOL fLogOpt = pArea->dbfarea.area.dbfi.itmCobExpr || ! pArea->dbfarea.area.dbfi.fFilter; if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( ! pArea->dbfarea.fPositioned ) ulKeyNo = 0; @@ -5997,7 +5999,7 @@ static HB_LONG hb_cdxDBOIKeyNo( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fFilters hb_cdxKeyFree( pTag->CurKey ); pTag->CurKey = pCurKey; if( fCheckFilter ) - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); } } else @@ -6068,11 +6070,11 @@ static HB_LONG hb_cdxDBOIKeyNo( CDXAREAP pArea, LPCDXTAG pTag, HB_BOOL fFilters do { ulKeyNo++; - if( SELF_SKIP( ( AREAP ) pArea, -1 ) != HB_SUCCESS ) + if( SELF_SKIP( &pArea->dbfarea.area, -1 ) != HB_SUCCESS ) break; } - while( ! ( ( AREAP ) pArea )->fBof ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + while( ! ( &pArea->dbfarea.area )->fBof ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); } } else @@ -6093,7 +6095,7 @@ static HB_ERRCODE hb_cdxDBOIKeyGoto( CDXAREAP pArea, LPCDXTAG pTag, HB_ULONG ulK HB_BOOL fLogOpt = pArea->dbfarea.area.dbfi.itmCobExpr || ! pArea->dbfarea.area.dbfi.fFilter; if( ulKeyNo == 0 ) - retval = SELF_GOTO( ( AREAP ) pArea, 0 ); + retval = SELF_GOTO( &pArea->dbfarea.area, 0 ); else if( pTag ) { HB_BOOL fCheckFilter = ( fLogOpt && fFilters && pArea->dbfarea.area.dbfi.itmCobExpr ); @@ -6103,7 +6105,7 @@ static HB_ERRCODE hb_cdxDBOIKeyGoto( CDXAREAP pArea, LPCDXTAG pTag, HB_ULONG ulK fLogOpt && CURKEY_LOGPOS( pTag ) && pTag->logKeyPos == ulKeyNo : ( CURKEY_RAWPOS( pTag ) && pTag->rawKeyPos == ulKeyNo ) ) ) { - retval = SELF_GOTO( ( AREAP ) pArea, fFilters ? pTag->logKeyRec : pTag->rawKeyRec ); + retval = SELF_GOTO( &pArea->dbfarea.area, fFilters ? pTag->logKeyRec : pTag->rawKeyRec ); } else { @@ -6154,7 +6156,7 @@ static HB_ERRCODE hb_cdxDBOIKeyGoto( CDXAREAP pArea, LPCDXTAG pTag, HB_ULONG ulK pTag->CurKey->rec = 0; } } - retval = SELF_GOTO( ( AREAP ) pArea, pTag->CurKey->rec ); + retval = SELF_GOTO( &pArea->dbfarea.area, pTag->CurKey->rec ); if( pArea->dbfarea.fPositioned ) { if( ! fFilters ) @@ -6175,13 +6177,13 @@ static HB_ERRCODE hb_cdxDBOIKeyGoto( CDXAREAP pArea, LPCDXTAG pTag, HB_ULONG ulK { if( fLogOpt && fFilters && pArea->dbfarea.area.dbfi.itmCobExpr ) { - retval = SELF_GOTOP( ( AREAP ) pArea ); + retval = SELF_GOTOP( &pArea->dbfarea.area ); if( retval == HB_SUCCESS && --ulKeyCnt ) - retval = SELF_SKIP( ( AREAP ) pArea, ulKeyCnt ); + retval = SELF_SKIP( &pArea->dbfarea.area, ulKeyCnt ); } else { - retval = SELF_GOTO( ( AREAP ) pArea, ulKeyNo ); + retval = SELF_GOTO( &pArea->dbfarea.area, ulKeyNo ); } } @@ -6228,7 +6230,7 @@ static double hb_cdxDBOIGetRelKeyPos( CDXAREAP pArea, LPCDXTAG pTag ) double dPos = 0.0; /* resolve any pending relations */ - SELF_RECNO( ( AREAP ) pArea, &ulRecNo ); + SELF_RECNO( &pArea->dbfarea.area, &ulRecNo ); if( ! pArea->dbfarea.fPositioned ) { @@ -6237,7 +6239,7 @@ static double hb_cdxDBOIGetRelKeyPos( CDXAREAP pArea, LPCDXTAG pTag ) } else if( ! pTag ) { - SELF_RECCOUNT( ( AREAP ) pArea, &ulRecCount ); + SELF_RECCOUNT( &pArea->dbfarea.area, &ulRecCount ); if( ulRecCount != 0 ) dPos = ( 0.5 + ulRecNo ) / ulRecCount; } @@ -6319,23 +6321,23 @@ static void hb_cdxDBOISetRelKeyPos( CDXAREAP pArea, LPCDXTAG pTag, double dPos ) { if( dPos >= 1.0 ) { - SELF_GOBOTTOM( ( AREAP ) pArea ); + SELF_GOBOTTOM( &pArea->dbfarea.area ); } else if( dPos <= 0.0 ) { - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); } else { HB_ULONG ulRecCount, ulRecNo; - SELF_RECCOUNT( ( AREAP ) pArea, &ulRecCount ); + SELF_RECCOUNT( &pArea->dbfarea.area, &ulRecCount ); ulRecNo = ( HB_ULONG ) dPos * ulRecCount + 1; if( ulRecNo >= ulRecCount ) ulRecNo = ulRecCount; - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); - SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); + SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); if( pArea->dbfarea.area.fEof ) - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); } } else @@ -6422,7 +6424,7 @@ static void hb_cdxDBOISetRelKeyPos( CDXAREAP pArea, LPCDXTAG pTag, double dPos ) } if( ! fOK ) { - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); } else { @@ -6453,7 +6455,7 @@ static void hb_cdxDBOISetRelKeyPos( CDXAREAP pArea, LPCDXTAG pTag, double dPos ) pTag->CurKey->rec = 0; } } - SELF_GOTO( ( AREAP ) pArea, pTag->CurKey->rec ); + SELF_GOTO( &pArea->dbfarea.area, pTag->CurKey->rec ); } hb_cdxIndexUnLockRead( pTag->pIndex ); } @@ -6471,7 +6473,7 @@ static HB_BOOL hb_cdxDBOIFindRec( CDXAREAP pArea, LPCDXTAG pTag, HB_ULONG ulRecN if( pTag && ulRecNo ) { if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); hb_cdxIndexLockRead( pTag->pIndex ); hb_cdxTagRefreshScope( pTag ); @@ -6500,7 +6502,7 @@ static HB_BOOL hb_cdxDBOIFindRec( CDXAREAP pArea, LPCDXTAG pTag, HB_ULONG ulRecN } hb_cdxIndexUnLockRead( pTag->pIndex ); } - SELF_GOTO( ( AREAP ) pArea, fFound ? ulRecNo : 0 ); + SELF_GOTO( &pArea->dbfarea.area, fFound ? ulRecNo : 0 ); return fFound; } @@ -6555,15 +6557,15 @@ static HB_ERRCODE hb_cdxGoBottom( CDXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_cdxGoBottom(%p)", pArea ) ); - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; pTag = hb_cdxGetActiveTag( pArea ); if( ! pTag ) - return SUPER_GOBOTTOM( ( AREAP ) pArea ); + return SUPER_GOBOTTOM( &pArea->dbfarea.area ); if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); hb_cdxIndexLockRead( pTag->pIndex ); hb_cdxTagRefreshScope( pTag ); @@ -6573,11 +6575,11 @@ static HB_ERRCODE hb_cdxGoBottom( CDXAREAP pArea ) pArea->dbfarea.area.fTop = HB_FALSE; pArea->dbfarea.area.fBottom = HB_TRUE; - retval = SELF_GOTO( ( AREAP ) pArea, pTag->CurKey->rec ); + retval = SELF_GOTO( &pArea->dbfarea.area, pTag->CurKey->rec ); if( retval != HB_FAILURE && pArea->dbfarea.fPositioned ) { - retval = SELF_SKIPFILTER( ( AREAP ) pArea, -1 ); + retval = SELF_SKIPFILTER( &pArea->dbfarea.area, -1 ); if( pArea->dbfarea.fPositioned && CURKEY_LOGCNT( pTag ) ) { @@ -6601,15 +6603,15 @@ static HB_ERRCODE hb_cdxGoTop( CDXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_cdxGoTop(%p)", pArea ) ); - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; pTag = hb_cdxGetActiveTag( pArea ); if( ! pTag ) - return SUPER_GOTOP( ( AREAP ) pArea ); + return SUPER_GOTOP( &pArea->dbfarea.area ); if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); hb_cdxIndexLockRead( pTag->pIndex ); hb_cdxTagRefreshScope( pTag ); @@ -6619,10 +6621,10 @@ static HB_ERRCODE hb_cdxGoTop( CDXAREAP pArea ) pArea->dbfarea.area.fTop = HB_TRUE; pArea->dbfarea.area.fBottom = HB_FALSE; - retval = SELF_GOTO( ( AREAP ) pArea, pTag->CurKey->rec ); + retval = SELF_GOTO( &pArea->dbfarea.area, pTag->CurKey->rec ); if( retval != HB_FAILURE && pArea->dbfarea.fPositioned ) - retval = SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + retval = SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); if( retval != HB_FAILURE && pArea->dbfarea.fPositioned ) { @@ -6641,7 +6643,7 @@ static HB_ERRCODE hb_cdxSeek( CDXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pKeyIt HB_TRACE( HB_TR_DEBUG, ( "hb_cdxSeek(%p, %d, %p, %d)", pArea, fSoftSeek, pKeyItm, fFindLast ) ); - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; pTag = hb_cdxGetActiveTag( pArea ); @@ -6659,7 +6661,7 @@ static HB_ERRCODE hb_cdxSeek( CDXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pKeyIt HB_ULONG ulRec; if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pArea->dbfarea.area.fTop = pArea->dbfarea.area.fBottom = HB_FALSE; pArea->dbfarea.area.fEof = HB_FALSE; @@ -6693,10 +6695,10 @@ static HB_ERRCODE hb_cdxSeek( CDXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pKeyIt hb_cdxIndexUnLockRead( pTag->pIndex ); if( ! fEOF ) { - retval = SELF_GOTO( ( AREAP ) pArea, pTag->CurKey->rec ); + retval = SELF_GOTO( &pArea->dbfarea.area, pTag->CurKey->rec ); if( retval != HB_FAILURE && pArea->dbfarea.fPositioned ) { - retval = SELF_SKIPFILTER( ( AREAP ) pArea, fFindLast ? -1 : 1 ); + retval = SELF_SKIPFILTER( &pArea->dbfarea.area, fFindLast ? -1 : 1 ); if( retval != HB_FAILURE && ulRec && pArea->dbfarea.fPositioned ) { pArea->dbfarea.area.fFound = ( ulRec == pArea->dbfarea.ulRecNo || @@ -6712,7 +6714,7 @@ static HB_ERRCODE hb_cdxSeek( CDXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pKeyIt ( fEOF || ! hb_cdxTopScope( pTag ) || ! hb_cdxBottomScope( pTag ) ) ) { - retval = SELF_GOTO( ( AREAP ) pArea, 0 ); + retval = SELF_GOTO( &pArea->dbfarea.area, 0 ); } pArea->dbfarea.area.fBof = HB_FALSE; hb_cdxKeyFree( pKey ); @@ -6729,7 +6731,7 @@ static HB_ERRCODE hb_cdxSkip( CDXAREAP pArea, HB_LONG lToSkip ) HB_TRACE( HB_TR_DEBUG, ( "hb_cdxSkip(%p, %ld)", pArea, lToSkip ) ); if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pTag = lToSkip == 0 ? NULL : hb_cdxGetActiveTag( pArea ); if( pTag && pArea->dbfarea.fPositioned && CURKEY_LOGPOS( pTag ) ) @@ -6742,7 +6744,7 @@ static HB_ERRCODE hb_cdxSkip( CDXAREAP pArea, HB_LONG lToSkip ) ulPos = ulRec = 0; } - if( SUPER_SKIP( ( AREAP ) pArea, lToSkip ) == HB_FAILURE ) + if( SUPER_SKIP( &pArea->dbfarea.area, lToSkip ) == HB_FAILURE ) return HB_FAILURE; if( pTag ) @@ -6797,16 +6799,16 @@ static HB_ERRCODE hb_cdxSkipRaw( CDXAREAP pArea, HB_LONG lToSkip ) HB_TRACE( HB_TR_DEBUG, ( "hb_cdxSkipRaw(%p, %ld)", pArea, lToSkip ) ); - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; pTag = hb_cdxGetActiveTag( pArea ); if( ! pTag || lToSkip == 0 ) - return SUPER_SKIPRAW( ( AREAP ) pArea, lToSkip ); + return SUPER_SKIPRAW( &pArea->dbfarea.area, lToSkip ); if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); fForward = ( lToSkip > 0 ); @@ -6843,7 +6845,7 @@ static HB_ERRCODE hb_cdxSkipRaw( CDXAREAP pArea, HB_LONG lToSkip ) } } } - retval = SELF_GOTO( ( AREAP ) pArea, ( pTag->TagEOF || fOut ) + retval = SELF_GOTO( &pArea->dbfarea.area, ( pTag->TagEOF || fOut ) ? 0 : pTag->CurKey->rec ); } else /* if( lToSkip < 0 ) */ @@ -6862,7 +6864,7 @@ static HB_ERRCODE hb_cdxSkipRaw( CDXAREAP pArea, HB_LONG lToSkip ) } } } - retval = SELF_GOTO( ( AREAP ) pArea, pTag->CurKey->rec ); + retval = SELF_GOTO( &pArea->dbfarea.area, pTag->CurKey->rec ); pArea->dbfarea.area.fBof = fOut; } hb_cdxIndexUnLockRead( pTag->pIndex ); @@ -6897,10 +6899,10 @@ static HB_ERRCODE hb_cdxFlush( CDXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_cdxFlush(%p)", pArea ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; - errCode = SUPER_FLUSH( ( AREAP ) pArea ); + errCode = SUPER_FLUSH( &pArea->dbfarea.area ); if( hb_setGetHardCommit() ) { @@ -6934,7 +6936,7 @@ static HB_ERRCODE hb_cdxGoCold( CDXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_cdxGoCold(%p)", pArea ) ); - if( SUPER_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SUPER_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( ( fRecordChanged || pArea->fCdxAppend ) && pArea->lpIndexes ) @@ -7061,7 +7063,7 @@ static HB_ERRCODE hb_cdxGoHot( CDXAREAP pArea ) if( pArea->dbfarea.fRecordChanged ) hb_cdxErrInternal( "hb_cdxGoHot: multiple marking buffer as hot." ); - if( SUPER_GOHOT( ( AREAP ) pArea ) == HB_FAILURE ) + if( SUPER_GOHOT( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( pArea->lpIndexes && ! pArea->fCdxAppend ) @@ -7109,10 +7111,10 @@ static HB_ERRCODE hb_cdxClose( CDXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_cdxClose(%p)", pArea ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; - errCode = SUPER_CLOSE( ( AREAP ) pArea ); + errCode = SUPER_CLOSE( &pArea->dbfarea.area ); if( errCode == HB_SUCCESS ) { @@ -7167,7 +7169,7 @@ static HB_ERRCODE hb_cdxOpen( CDXAREAP pArea, LPDBOPENINFO pOpenInfo ) if( ! pArea->dbfarea.bLockType ) { PHB_ITEM pItem = hb_itemNew( NULL ); - if( SELF_INFO( ( AREAP ) pArea, DBI_LOCKSCHEME, pItem ) != HB_SUCCESS ) + if( SELF_INFO( &pArea->dbfarea.area, DBI_LOCKSCHEME, pItem ) != HB_SUCCESS ) { hb_itemRelease( pItem ); return HB_FAILURE; @@ -7179,7 +7181,7 @@ static HB_ERRCODE hb_cdxOpen( CDXAREAP pArea, LPDBOPENINFO pOpenInfo ) pArea->dbfarea.bLockType = DB_DBFLOCK_VFP; } } - if( SUPER_OPEN( ( AREAP ) pArea, pOpenInfo ) == HB_FAILURE ) + if( SUPER_OPEN( &pArea->dbfarea.area, pOpenInfo ) == HB_FAILURE ) { return HB_FAILURE; } @@ -7200,14 +7202,14 @@ static HB_ERRCODE hb_cdxOpen( CDXAREAP pArea, LPDBOPENINFO pOpenInfo ) pOrderInfo.atomBagName = hb_itemPutC( NULL, szFileName ); pOrderInfo.itmNewVal = NULL; pOrderInfo.itmOrder = NULL; - errCode = SELF_ORDLSTADD( ( AREAP ) pArea, &pOrderInfo ); + errCode = SELF_ORDLSTADD( &pArea->dbfarea.area, &pOrderInfo ); if( errCode == HB_SUCCESS ) { pOrderInfo.itmOrder = hb_itemPutNI( NULL, hb_setGetAutOrder() ); - errCode = SELF_ORDLSTFOCUS( ( AREAP ) pArea, &pOrderInfo ); + errCode = SELF_ORDLSTFOCUS( &pArea->dbfarea.area, &pOrderInfo ); hb_itemRelease( pOrderInfo.itmOrder ); if( errCode == HB_SUCCESS ) - errCode = SELF_GOTOP( ( AREAP ) pArea ); + errCode = SELF_GOTOP( &pArea->dbfarea.area ); } hb_itemRelease( pOrderInfo.atomBagName ); hb_itemRelease( pOrderInfo.itmResult ); @@ -7245,12 +7247,12 @@ static HB_ERRCODE hb_cdxPack( CDXAREAP pArea ) { HB_TRACE( HB_TR_DEBUG, ( "hb_cdxPack(%p)", pArea ) ); - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; - if( SUPER_PACK( ( AREAP ) pArea ) == HB_SUCCESS ) + if( SUPER_PACK( &pArea->dbfarea.area ) == HB_SUCCESS ) { - return SELF_ORDLSTREBUILD( ( AREAP ) pArea ); + return SELF_ORDLSTREBUILD( &pArea->dbfarea.area ); } else return HB_FAILURE; @@ -7266,12 +7268,12 @@ static HB_ERRCODE hb_cdxZap( CDXAREAP pArea ) { HB_TRACE( HB_TR_DEBUG, ( "nb_cdxZap(%p)", pArea ) ); - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; - if( SUPER_ZAP( ( AREAP ) pArea ) == HB_SUCCESS ) + if( SUPER_ZAP( &pArea->dbfarea.area ) == HB_SUCCESS ) { - return SELF_ORDLSTREBUILD( ( AREAP ) pArea ); + return SELF_ORDLSTREBUILD( &pArea->dbfarea.area ); } else return HB_FAILURE; @@ -7301,7 +7303,7 @@ static HB_ERRCODE hb_cdxOrderListAdd( CDXAREAP pArea, LPDBORDERINFO pOrderInfo ) HB_TRACE( HB_TR_DEBUG, ( "hb_cdxOrderListAdd(%p, %p)", pArea, pOrderInfo ) ); - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( hb_itemGetCLen( pOrderInfo->atomBagName ) == 0 ) @@ -7322,7 +7324,7 @@ static HB_ERRCODE hb_cdxOrderListAdd( CDXAREAP pArea, LPDBORDERINFO pOrderInfo ) if( ! pArea->uiTag ) { pArea->uiTag = hb_cdxGetTagNumber( pArea, pIndex->TagList ); - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); } return HB_SUCCESS; } @@ -7393,7 +7395,7 @@ static HB_ERRCODE hb_cdxOrderListAdd( CDXAREAP pArea, LPDBORDERINFO pOrderInfo ) if( ! pArea->uiTag ) { pArea->uiTag = hb_cdxGetTagNumber( pArea, pIndex->TagList ); - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); } return HB_SUCCESS; } @@ -7406,7 +7408,7 @@ static HB_ERRCODE hb_cdxOrderListClear( CDXAREAP pArea ) { HB_TRACE( HB_TR_DEBUG, ( "hb_cdxOrderListClear(%p)", pArea ) ); - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; hb_cdxOrdListClear( pArea, !( DBFAREA_DATA( &pArea->dbfarea )->fStrictStruct ? @@ -7426,7 +7428,7 @@ static HB_ERRCODE hb_cdxOrderListDelete( CDXAREAP pArea, LPDBORDERINFO pOrderInf HB_TRACE( HB_TR_DEBUG, ( "hb_cdxOrderListDelete(%p, %p)", pArea, pOrderInfo ) ); - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; hb_cdxCreateFName( pArea, hb_itemGetCPtr( pOrderInfo->atomBagName ), &fProd, @@ -7465,7 +7467,7 @@ static HB_ERRCODE hb_cdxOrderListFocus( CDXAREAP pArea, LPDBORDERINFO pOrderInfo HB_TRACE( HB_TR_DEBUG, ( "hb_cdxOrderListFocus(%p, %p)", pArea, pOrderInfo ) ); - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( ! pArea->lpIndexes ) @@ -7489,7 +7491,7 @@ static HB_ERRCODE hb_cdxOrderListRebuild( CDXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_cdxPack(%p)", pArea ) ); - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( pArea->dbfarea.fShared ) @@ -7523,9 +7525,9 @@ static HB_ERRCODE hb_cdxOrderListRebuild( CDXAREAP pArea ) pArea->uiTag = uiPrevTag; /* Clear pArea->dbfarea.area.lpdbOrdCondInfo */ - SELF_ORDSETCOND( ( AREAP ) pArea, NULL ); + SELF_ORDSETCOND( &pArea->dbfarea.area, NULL ); - return SELF_GOTOP( ( AREAP ) pArea ); + return SELF_GOTOP( &pArea->dbfarea.area ); } /* ( DBENTRYP_VOO ) hb_cdxOrderCondition : NULL */ @@ -7550,11 +7552,11 @@ static HB_ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderI HB_TRACE( HB_TR_DEBUG, ( "hb_cdxOrderCreate(%p, %p)", pArea, pOrderInfo ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( hb_strlentrim( hb_itemGetCPtr( pOrderInfo->abExpr ) ) + ( pArea->dbfarea.area.lpdbOrdCondInfo && pArea->dbfarea.area.lpdbOrdCondInfo->abFor ? @@ -7565,7 +7567,7 @@ static HB_ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderI return HB_FAILURE; } - if( SELF_COMPILE( ( AREAP ) pArea, hb_itemGetCPtr( pOrderInfo->abExpr ) ) == HB_FAILURE ) + if( SELF_COMPILE( &pArea->dbfarea.area, hb_itemGetCPtr( pOrderInfo->abExpr ) ) == HB_FAILURE ) { if( pOrderInfo->itmCobExpr ) { @@ -7591,11 +7593,11 @@ static HB_ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderI /* Get a blank record before testing expression */ ulRecNo = pArea->dbfarea.ulRecNo; - SELF_GOTO( ( AREAP ) pArea, 0 ); - if( SELF_EVALBLOCK( ( AREAP ) pArea, pKeyExp ) == HB_FAILURE ) + SELF_GOTO( &pArea->dbfarea.area, 0 ); + if( SELF_EVALBLOCK( &pArea->dbfarea.area, pKeyExp ) == HB_FAILURE ) { hb_vmDestroyBlockOrMacro( pKeyExp ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); return HB_FAILURE; } pResult = pArea->dbfarea.area.valResult; @@ -7630,7 +7632,7 @@ static HB_ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderI if( bType == 'U' || uiLen == 0 ) { hb_vmDestroyBlockOrMacro( pKeyExp ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); hb_cdxErrorRT( pArea, bType == 'U' ? EG_DATATYPE : EG_DATAWIDTH, EDBF_INVALIDKEY, NULL, 0, 0, NULL ); return HB_FAILURE; } @@ -7642,7 +7644,7 @@ static HB_ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderI else { hb_vmDestroyBlockOrMacro( pKeyExp ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); return HB_FAILURE; } } @@ -7658,10 +7660,10 @@ static HB_ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderI szFor = pArea->dbfarea.area.lpdbOrdCondInfo->abFor; if( szFor ) { - if( SELF_COMPILE( ( AREAP ) pArea, szFor ) == HB_FAILURE ) + if( SELF_COMPILE( &pArea->dbfarea.area, szFor ) == HB_FAILURE ) { hb_vmDestroyBlockOrMacro( pKeyExp ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); hb_cdxErrorRT( pArea, EG_DATATYPE, EDBF_INVALIDFOR, NULL, 0, 0, NULL ); return HB_FAILURE; } @@ -7685,11 +7687,11 @@ static HB_ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderI { HB_BOOL fOK; - if( SELF_EVALBLOCK( ( AREAP ) pArea, pForExp ) == HB_FAILURE ) + if( SELF_EVALBLOCK( &pArea->dbfarea.area, pForExp ) == HB_FAILURE ) { hb_vmDestroyBlockOrMacro( pKeyExp ); hb_vmDestroyBlockOrMacro( pForExp ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); return HB_FAILURE; } fOK = hb_itemType( pArea->dbfarea.area.valResult ) == HB_IT_LOGICAL; @@ -7699,13 +7701,13 @@ static HB_ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderI { hb_vmDestroyBlockOrMacro( pKeyExp ); hb_vmDestroyBlockOrMacro( pForExp ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); hb_cdxErrorRT( pArea, EG_DATATYPE, EDBF_INVALIDFOR, NULL, 0, 0, NULL ); return HB_FAILURE; } } - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); /* * abBagName -> cBag, atomBagName -> cTag @@ -7878,7 +7880,7 @@ static HB_ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderI pArea->dbfarea.fHasTags = HB_TRUE; if( ! pArea->dbfarea.fReadonly && ( pArea->dbfarea.dbfHeader.bHasTags & 0x01 ) == 0 && ( hb_setGetAutOpen() || DBFAREA_DATA( &pArea->dbfarea )->fStrictStruct ) ) - SELF_WRITEDBHEADER( ( AREAP ) pArea ); + SELF_WRITEDBHEADER( &pArea->dbfarea.area ); } else { @@ -7904,9 +7906,9 @@ static HB_ERRCODE hb_cdxOrderCreate( CDXAREAP pArea, LPDBORDERCREATEINFO pOrderI pArea->uiTag = hb_cdxGetTagNumber( pArea, pTag ); /* Clear pArea->dbfarea.area.lpdbOrdCondInfo */ - SELF_ORDSETCOND( ( AREAP ) pArea, NULL ); + SELF_ORDSETCOND( &pArea->dbfarea.area, NULL ); - return SELF_GOTOP( ( AREAP ) pArea ); + return SELF_GOTOP( &pArea->dbfarea.area ); } /* ( DBENTRYP_VOI ) hb_cdxOrderDestroy */ @@ -7918,7 +7920,7 @@ static HB_ERRCODE hb_cdxOrderDestroy( CDXAREAP pArea, LPDBORDERINFO pOrderInfo ) HB_TRACE( HB_TR_DEBUG, ( "hb_cdxOrderDestroy(%p, %p)", pArea, pOrderInfo ) ); - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( ! pArea->lpIndexes ) @@ -7945,7 +7947,7 @@ static HB_ERRCODE hb_cdxOrderDestroy( CDXAREAP pArea, LPDBORDERINFO pOrderInfo ) pArea->dbfarea.fHasTags = HB_FALSE; if( ! pArea->dbfarea.fReadonly && ( pArea->dbfarea.dbfHeader.bHasTags & 0x01 ) != 0 && ( hb_setGetAutOpen() || DBFAREA_DATA( &pArea->dbfarea )->fStrictStruct ) ) - SELF_WRITEDBHEADER( ( AREAP ) pArea ); + SELF_WRITEDBHEADER( &pArea->dbfarea.area ); } } else @@ -8172,7 +8174,7 @@ static HB_ERRCODE hb_cdxOrderInfo( CDXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI return HB_SUCCESS; } - if( FAST_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( FAST_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( pInfo->itmOrder ) @@ -8205,11 +8207,11 @@ static HB_ERRCODE hb_cdxOrderInfo( CDXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI { const char * pForExpr = hb_itemGetCPtr( pInfo->itmNewVal ); - if( SELF_COMPILE( ( AREAP ) pArea, pForExpr ) == HB_SUCCESS ) + if( SELF_COMPILE( &pArea->dbfarea.area, pForExpr ) == HB_SUCCESS ) { PHB_ITEM pForItem = pArea->dbfarea.area.valResult; pArea->dbfarea.area.valResult = NULL; - if( SELF_EVALBLOCK( ( AREAP ) pArea, pForItem ) == HB_SUCCESS ) + if( SELF_EVALBLOCK( &pArea->dbfarea.area, pForItem ) == HB_SUCCESS ) { if( hb_itemType( pArea->dbfarea.area.valResult ) == HB_IT_LOGICAL ) { @@ -8419,7 +8421,7 @@ static HB_ERRCODE hb_cdxOrderInfo( CDXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI case DBOI_KEYVAL: hb_itemClear( pInfo->itmResult ); if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( pTag && pArea->dbfarea.fPositioned ) { if( pTag->CurKey->rec != pArea->dbfarea.ulRecNo ) @@ -8504,14 +8506,15 @@ static HB_ERRCODE hb_cdxOrderInfo( CDXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI break; case DBOI_CUSTOM: - if( hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL ) + if( pTag && ! pTag->Template && + hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL ) { - if( hb_cdxIndexLockWrite( pTag->pIndex ) ) + HB_BOOL fNewVal = hb_itemGetL( pInfo->itmNewVal ); + if( pTag->Custom ? ! fNewVal : fNewVal ) { - if( ! pTag->Template ) + if( hb_cdxIndexLockWrite( pTag->pIndex ) ) { - HB_BOOL fNewVal = hb_itemGetL( pInfo->itmNewVal ); - if( pTag->Custom ? ! fNewVal : fNewVal ) + if( ! pTag->Template && ( pTag->Custom ? ! fNewVal : fNewVal ) ) { pTag->Custom = fNewVal; pTag->Partial = HB_TRUE; @@ -8524,8 +8527,8 @@ static HB_ERRCODE hb_cdxOrderInfo( CDXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI if( pTag->Custom ) pTag->Template = pTag->MultiKey = HB_TRUE; } + hb_cdxIndexUnLockWrite( pTag->pIndex ); } - hb_cdxIndexUnLockWrite( pTag->pIndex ); } } /* Warning: it's not CL53 compatible. CL53 returns previous @@ -8534,44 +8537,65 @@ static HB_ERRCODE hb_cdxOrderInfo( CDXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag && pTag->Custom ); break; - case DBOI_PARTIAL: - pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag && pTag->Partial ); - break; - case DBOI_CHGONLY: - /* TODO: set */ + if( pTag && ! pTag->Custom && + hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL ) + { + HB_BOOL fNewVal = hb_itemGetL( pInfo->itmNewVal ); + if( pTag->ChgOnly ? ! fNewVal : fNewVal ) + { + if( hb_cdxIndexLockWrite( pTag->pIndex ) ) + { + if( ! pTag->Custom && ( pTag->ChgOnly ? ! fNewVal : fNewVal ) ) + { + pTag->ChgOnly = fNewVal; + pTag->Partial = HB_TRUE; + pTag->TagChanged = HB_TRUE; + } + hb_cdxIndexUnLockWrite( pTag->pIndex ); + } + } + } pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag && pTag->ChgOnly ); break; - /* TODO: */ -#if 0 case DBOI_TEMPLATE: - if( hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL && - hb_itemGetL( pInfo->itmNewVal ) ) - { - if( hb_cdxIndexLockWrite( pTag->pIndex ) ) - { - if( pTag->Custom && ! pTag->Template ) - pTag->Template = HB_TRUE; - hb_cdxIndexUnLockWrite( pTag->pIndex ); - } - } - hb_itemPutL( pInfo->itmResult, pTag->Template ); - break; + if( pTag && pTag->Custom && ! pTag->Template && + hb_itemGetL( pInfo->itmNewVal ) ) + { + if( hb_cdxIndexLockWrite( pTag->pIndex ) ) + { + if( pTag->Custom && ! pTag->Template ) + { + pTag->Template = HB_TRUE; + pTag->TagChanged = HB_TRUE; + } + hb_cdxIndexUnLockWrite( pTag->pIndex ); + } + } + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag && pTag->Template ); + break; case DBOI_MULTIKEY: - if( hb_itemGetL( pInfo->itmNewVal ) ) - { - if( hb_cdxIndexLockWrite( pTag->pIndex ) ) - { - if( pTag->Custom && ! pTag->MultiKey ) - pTag->MultiKey = HB_TRUE; - hb_cdxIndexUnLockWrite( pTag->pIndex ); - } - } - hb_itemPutL( pInfo->itmResult, pTag->MultiKey ); - break; -#endif + if( pTag && pTag->Custom && ! pTag->MultiKey && + hb_itemGetL( pInfo->itmNewVal ) ) + { + if( hb_cdxIndexLockWrite( pTag->pIndex ) ) + { + if( pTag->Custom && ! pTag->MultiKey ) + { + pTag->MultiKey = HB_TRUE; + pTag->TagChanged = HB_TRUE; + } + hb_cdxIndexUnLockWrite( pTag->pIndex ); + } + } + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag && pTag->MultiKey ); + break; + + case DBOI_PARTIAL: + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag && pTag->Partial ); + break; case DBOI_KEYADD: { @@ -8581,14 +8605,13 @@ static HB_ERRCODE hb_cdxOrderInfo( CDXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI if( pTag->Custom ) { if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( pArea->dbfarea.fPositioned && ( ! pTag->pForItem || hb_cdxEvalCond( pArea, pTag->pForItem, HB_TRUE ) ) ) { LPCDXKEY pKey; - hb_cdxIndexLockWrite( pTag->pIndex ); #if defined( HB_SIXCDX ) if( pTag->Template ) { @@ -8608,12 +8631,16 @@ static HB_ERRCODE hb_cdxOrderInfo( CDXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI #endif else pKey = hb_cdxKeyEval( NULL, pTag ); + if( pKey ) { - fResult = hb_cdxTagKeyAdd( pTag, pKey ); + if( hb_cdxIndexLockWrite( pTag->pIndex ) ) + { + fResult = hb_cdxTagKeyAdd( pTag, pKey ); + hb_cdxIndexUnLockWrite( pTag->pIndex ); + } hb_cdxKeyFree( pKey ); } - hb_cdxIndexUnLockWrite( pTag->pIndex ); } } #if ! defined( HB_SIXCDX ) @@ -8632,14 +8659,14 @@ static HB_ERRCODE hb_cdxOrderInfo( CDXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI if( pTag->Custom ) { if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( pArea->dbfarea.fPositioned && ( ! pTag->pForItem || hb_cdxEvalCond( pArea, pTag->pForItem, HB_TRUE ) ) ) { + HB_BOOL fLck = HB_FALSE; LPCDXKEY pKey; - hb_cdxIndexLockWrite( pTag->pIndex ); #if defined( HB_SIXCDX ) if( pTag->Template ) { @@ -8660,7 +8687,13 @@ static HB_ERRCODE hb_cdxOrderInfo( CDXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI else { if( pTag->CurKey->rec != pArea->dbfarea.ulRecNo ) - hb_cdxCurKeyRefresh( pArea, pTag ); + { + if( hb_cdxIndexLockWrite( pTag->pIndex ) ) + { + fLck = HB_TRUE; + hb_cdxCurKeyRefresh( pArea, pTag ); + } + } if( pTag->CurKey->rec == pArea->dbfarea.ulRecNo ) pKey = hb_cdxKeyCopy( NULL, pTag->CurKey ); @@ -8669,10 +8702,14 @@ static HB_ERRCODE hb_cdxOrderInfo( CDXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI } if( pKey ) { - fResult = hb_cdxTagKeyDel( pTag, pKey ); + if( !fLck ) + fLck = hb_cdxIndexLockWrite( pTag->pIndex ); + if( fLck ) + fResult = hb_cdxTagKeyDel( pTag, pKey ); hb_cdxKeyFree( pKey ); } - hb_cdxIndexUnLockWrite( pTag->pIndex ); + if( fLck ) + hb_cdxIndexUnLockWrite( pTag->pIndex ); } } #if ! defined( HB_SIXCDX ) @@ -8761,7 +8798,7 @@ static HB_ERRCODE hb_cdxOrderInfo( CDXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI break; default: - return SUPER_ORDINFO( ( AREAP ) pArea, uiIndex, pInfo ); + return SUPER_ORDINFO( &pArea->dbfarea.area, uiIndex, pInfo ); } return HB_SUCCESS; @@ -8770,7 +8807,7 @@ static HB_ERRCODE hb_cdxOrderInfo( CDXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI /* ( DBENTRYP_V ) hb_cdxClearFilter */ static HB_ERRCODE hb_cdxClearFilter( CDXAREAP pArea ) { - HB_ERRCODE errCode = SUPER_CLEARFILTER( ( AREAP ) pArea ); + HB_ERRCODE errCode = SUPER_CLEARFILTER( &pArea->dbfarea.area ); hb_cdxClearLogPosInfo( pArea ); return errCode; @@ -8788,7 +8825,7 @@ static HB_ERRCODE hb_cdxCountScope( CDXAREAP pArea, void * pPtr, HB_LONG * plRec { return HB_SUCCESS; } - return SUPER_COUNTSCOPE( ( AREAP ) pArea, pPtr, plRec ); + return SUPER_COUNTSCOPE( &pArea->dbfarea.area, pPtr, plRec ); } /* ( DBENTRYP_I ) hb_cdxFilterText : NULL */ @@ -8797,7 +8834,7 @@ static HB_ERRCODE hb_cdxCountScope( CDXAREAP pArea, void * pPtr, HB_LONG * plRec /* ( DBENTRYP_VFI ) hb_cdxSetFilter */ static HB_ERRCODE hb_cdxSetFilter( CDXAREAP pArea, LPDBFILTERINFO pFilterInfo ) { - HB_ERRCODE errCode = SUPER_SETFILTER( ( AREAP ) pArea, pFilterInfo ); + HB_ERRCODE errCode = SUPER_SETFILTER( &pArea->dbfarea.area, pFilterInfo ); hb_cdxClearLogPosInfo( pArea ); return errCode; @@ -9526,7 +9563,7 @@ static void hb_cdxTagDoIndex( LPCDXTAG pTag, HB_BOOL fReindex ) if( pTag->Custom || ( pTag->OptFlags & CDX_TYPE_STRUCTURE ) ) ulRecCount = 0; - else if( SELF_RECCOUNT( ( AREAP ) pArea, &ulRecCount ) != HB_SUCCESS ) + else if( SELF_RECCOUNT( &pArea->dbfarea.area, &ulRecCount ) != HB_SUCCESS ) return; pArea->pSort = pSort = hb_cdxSortNew( pTag, ulRecCount ); @@ -9535,12 +9572,12 @@ static void hb_cdxTagDoIndex( LPCDXTAG pTag, HB_BOOL fReindex ) #if defined( HB_SIXCDX ) if( ( pTag->OptFlags & CDX_TYPE_STRUCTURE ) == 0 && pEvalItem ) { - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); if( ! hb_cdxEvalCond( pArea, pEvalItem, HB_FALSE ) ) { hb_cdxSortFree( pSort ); pArea->pSort = NULL; - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); return; } } @@ -9606,12 +9643,12 @@ static void hb_cdxTagDoIndex( LPCDXTAG pTag, HB_BOOL fReindex ) ulStartRec = 1; if( ulStartRec == 0 ) - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); else { - SELF_GOTO( ( AREAP ) pArea, ulStartRec ); + SELF_GOTO( &pArea->dbfarea.area, ulStartRec ); if( fUseFilter ) - SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); } ulRecNo = pArea->dbfarea.ulRecNo; @@ -9646,13 +9683,13 @@ static void hb_cdxTagDoIndex( LPCDXTAG pTag, HB_BOOL fReindex ) } pArea->dbfarea.pRecord = pSort->pRecBuff + iRecBuff * pArea->dbfarea.uiRecordLen; pArea->dbfarea.ulRecNo = ulRecNo; - if( SELF_GETREC( ( AREAP ) pArea, NULL ) == HB_FAILURE ) + if( SELF_GETREC( &pArea->dbfarea.area, NULL ) == HB_FAILURE ) break; pArea->dbfarea.fValidBuffer = pArea->dbfarea.fPositioned = HB_TRUE; pArea->dbfarea.fDeleted = pArea->dbfarea.pRecord[ 0 ] == '*'; /* Force relational movement in child WorkAreas */ if( pArea->dbfarea.area.lpdbRelations ) - if( SELF_SYNCCHILDREN( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_SYNCCHILDREN( &pArea->dbfarea.area ) == HB_FAILURE ) break; iRecBuff++; } @@ -9679,7 +9716,7 @@ static void hb_cdxTagDoIndex( LPCDXTAG pTag, HB_BOOL fReindex ) double d; if( pTag->nField ) - SELF_GETVALUE( ( AREAP ) pArea, pTag->nField, pItem ); + SELF_GETVALUE( &pArea->dbfarea.area, pTag->nField, pItem ); else pItem = hb_vmEvalBlockOrMacro( pTag->pKeyItem ); @@ -9757,9 +9794,9 @@ static void hb_cdxTagDoIndex( LPCDXTAG pTag, HB_BOOL fReindex ) ulRecNo++; else { - if( SELF_SKIPRAW( ( AREAP ) pArea, 1 ) == HB_FAILURE ) + if( SELF_SKIPRAW( &pArea->dbfarea.area, 1 ) == HB_FAILURE ) break; - if( fUseFilter && SELF_SKIPFILTER( ( AREAP ) pArea, 1 ) == HB_FAILURE ) + if( fUseFilter && SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ) == HB_FAILURE ) break; ulRecNo = pArea->dbfarea.ulRecNo; } @@ -9772,7 +9809,7 @@ static void hb_cdxTagDoIndex( LPCDXTAG pTag, HB_BOOL fReindex ) if( fDirectRead ) { pArea->dbfarea.pRecord = pSaveRecBuff; - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); } pArea->uiTag = uiSaveTag; @@ -9788,7 +9825,7 @@ static void hb_cdxTagDoIndex( LPCDXTAG pTag, HB_BOOL fReindex ) #if defined( HB_SIXCDX ) if( pEvalItem ) { - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); pArea->dbfarea.area.fBof = HB_FALSE; hb_cdxEvalCond( pArea, pEvalItem, HB_FALSE ); } diff --git a/src/rdd/dbffpt/dbffpt1.c b/src/rdd/dbffpt/dbffpt1.c index 0e6f04a7e1..f80a61314a 100644 --- a/src/rdd/dbffpt/dbffpt1.c +++ b/src/rdd/dbffpt/dbffpt1.c @@ -120,7 +120,7 @@ static HB_ERRCODE hb_memoErrorRT( FPTAREAP pArea, HB_ERRCODE uiGenCode, HB_ERRCO hb_errPutFileName( pError, szFileName ); if( uiFlags ) hb_errPutFlags( pError, uiFlags ); - errCode = SELF_ERROR( ( AREAP ) pArea, pError ); + errCode = SELF_ERROR( &pArea->area, pError ); hb_errRelease( pError ); } return errCode; @@ -3320,7 +3320,7 @@ static HB_ERRCODE hb_fptLockForRead( FPTAREAP pArea, HB_USHORT uiIndex, HB_BOOL #ifdef HB_MEMO_SAFELOCK if( pArea->lpdbPendingRel ) { - errCode = SELF_FORCEREL( ( AREAP ) pArea ); + errCode = SELF_FORCEREL( &pArea->area ); if( errCode != HB_SUCCESS ) return errCode; } @@ -3336,7 +3336,7 @@ static HB_ERRCODE hb_fptLockForRead( FPTAREAP pArea, HB_USHORT uiIndex, HB_BOOL { PHB_ITEM pRecNo = hb_itemNew( NULL ), pResult = hb_itemNew( NULL ); - errCode = SELF_RECINFO( ( AREAP ) pArea, pRecNo, DBRI_LOCKED, pResult ); + errCode = SELF_RECINFO( &pArea->area, pRecNo, DBRI_LOCKED, pResult ); fLocked = hb_itemGetL( pResult ); hb_itemRelease( pRecNo ); hb_itemRelease( pResult ); @@ -3360,7 +3360,7 @@ static HB_ERRCODE hb_fptLockForRead( FPTAREAP pArea, HB_USHORT uiIndex, HB_BOOL HB_SYMBOL_UNUSED( uiIndex ); #endif /* update any pending relations and reread record if necessary */ - errCode = SELF_DELETED( ( AREAP ) pArea, &fLocked ); + errCode = SELF_DELETED( &pArea->area, &fLocked ); return errCode; } @@ -3544,7 +3544,7 @@ static HB_ERRCODE hb_fptGetVarField( FPTAREAP pArea, HB_USHORT uiIndex, PHB_ITEM } else if( pFile == NULL ) { - return SUPER_GETVALUE( ( AREAP ) pArea, uiIndex, pItem ); + return SUPER_GETVALUE( &pArea->area, uiIndex, pItem ); } else { @@ -3662,7 +3662,7 @@ static HB_ERRCODE hb_fptPutVarField( FPTAREAP pArea, HB_USHORT uiIndex, PHB_ITEM HB_BOOL bDeleted; /* update any pending relations and reread record if necessary */ - errCode = SELF_DELETED( ( AREAP ) pArea, &bDeleted ); + errCode = SELF_DELETED( &pArea->area, &bDeleted ); if( errCode != HB_SUCCESS ) return errCode; @@ -3672,7 +3672,7 @@ static HB_ERRCODE hb_fptPutVarField( FPTAREAP pArea, HB_USHORT uiIndex, PHB_ITEM /* Buffer is hot? */ if( ! pArea->fRecordChanged ) { - errCode = SELF_GOHOT( ( AREAP ) pArea ); + errCode = SELF_GOHOT( &pArea->area ); if( errCode != HB_SUCCESS ) return errCode; } @@ -3689,7 +3689,7 @@ static HB_ERRCODE hb_fptPutVarField( FPTAREAP pArea, HB_USHORT uiIndex, PHB_ITEM if( errCode == HB_SUCCESS ) { /* Force writer record to eliminate race condition */ - SELF_GOCOLD( ( AREAP ) pArea ); + SELF_GOCOLD( &pArea->area ); } #endif hb_fptFileUnLockEx( pArea ); @@ -3876,7 +3876,7 @@ static HB_ERRCODE hb_fptPutVarField( FPTAREAP pArea, HB_USHORT uiIndex, PHB_ITEM HB_PUT_LE_UINT32( pFieldBuf + pField->uiLen - 6, ulOldBlock ); #if defined( HB_MEMO_SAFELOCK ) /* Force writer record to eliminate race condition */ - SELF_GOCOLD( ( AREAP ) pArea ); + SELF_GOCOLD( &pArea->area ); #endif } hb_fptFileUnLockEx( pArea ); @@ -3888,7 +3888,7 @@ static HB_ERRCODE hb_fptPutVarField( FPTAREAP pArea, HB_USHORT uiIndex, PHB_ITEM return errCode; } - return SUPER_PUTVALUE( ( AREAP ) pArea, uiIndex, pItem ); + return SUPER_PUTVALUE( &pArea->area, uiIndex, pItem ); } @@ -3942,7 +3942,7 @@ static HB_ERRCODE hb_fptGetVarLen( FPTAREAP pArea, HB_USHORT uiIndex, HB_ULONG * return errCode; } - return SUPER_GETVARLEN( ( AREAP ) pArea, uiIndex, pLength ); + return SUPER_GETVARLEN( &pArea->area, uiIndex, pLength ); } /* @@ -4015,7 +4015,7 @@ static HB_ERRCODE hb_fptCreateMemFile( FPTAREAP pArea, LPDBOPENINFO pCreateInfo if( ! pArea->bMemoType ) { pItem = hb_itemPutNI( pItem, 0 ); - if( SELF_INFO( ( AREAP ) pArea, DBI_MEMOTYPE, pItem ) != HB_SUCCESS ) + if( SELF_INFO( &pArea->area, DBI_MEMOTYPE, pItem ) != HB_SUCCESS ) { hb_itemRelease( pItem ); return HB_FAILURE; @@ -4045,7 +4045,7 @@ static HB_ERRCODE hb_fptCreateMemFile( FPTAREAP pArea, LPDBOPENINFO pCreateInfo else if( pArea->bMemoType == DB_MEMO_FPT ) { pItem = hb_itemPutNI( pItem, 0 ); - if( SELF_INFO( ( AREAP ) pArea, DBI_MEMOVERSION, pItem ) != HB_SUCCESS ) + if( SELF_INFO( &pArea->area, DBI_MEMOVERSION, pItem ) != HB_SUCCESS ) { hb_itemRelease( pItem ); return HB_FAILURE; @@ -4058,7 +4058,7 @@ static HB_ERRCODE hb_fptCreateMemFile( FPTAREAP pArea, LPDBOPENINFO pCreateInfo if( ! pArea->ulMemoBlockSize ) { pItem = hb_itemPutNI( pItem, 0 ); - if( SELF_INFO( ( AREAP ) pArea, DBI_MEMOBLOCKSIZE, pItem ) != HB_SUCCESS ) + if( SELF_INFO( &pArea->area, DBI_MEMOBLOCKSIZE, pItem ) != HB_SUCCESS ) { hb_itemRelease( pItem ); return HB_FAILURE; @@ -4073,7 +4073,7 @@ static HB_ERRCODE hb_fptCreateMemFile( FPTAREAP pArea, LPDBOPENINFO pCreateInfo if( ! pFileName->szExtension ) { pItem = hb_itemPutC( pItem, NULL ); - SELF_INFO( ( AREAP ) pArea, DBI_MEMOEXT, pItem ); + SELF_INFO( &pArea->area, DBI_MEMOEXT, pItem ); pFileName->szExtension = hb_itemGetCPtr( pItem ); hb_fsFNameMerge( szFileName, pFileName ); } @@ -4112,7 +4112,7 @@ static HB_ERRCODE hb_fptCreateMemFile( FPTAREAP pArea, LPDBOPENINFO pCreateInfo hb_errPutFlags( pError, EF_CANRETRY ); } hb_errPutOsCode( pError, hb_fsError() ); - bRetry = ( SELF_ERROR( ( AREAP ) pArea, pError ) == E_RETRY ); + bRetry = ( SELF_ERROR( &pArea->area, pError ) == E_RETRY ); } else bRetry = HB_FALSE; @@ -4236,7 +4236,7 @@ static HB_ERRCODE hb_fptGetValueFile( FPTAREAP pArea, HB_USHORT uiIndex, const c } return HB_SUCCESS; } - return SUPER_GETVALUEFILE( ( AREAP ) pArea, uiIndex, szFile, uiMode ); + return SUPER_GETVALUEFILE( &pArea->area, uiIndex, szFile, uiMode ); } /* @@ -4272,7 +4272,7 @@ static HB_ERRCODE hb_fptOpenMemFile( FPTAREAP pArea, LPDBOPENINFO pOpenInfo ) if( ! pFileName->szExtension ) { PHB_ITEM pItem = hb_itemPutC( NULL, NULL ); - SELF_INFO( ( AREAP ) pArea, DBI_MEMOEXT, pItem ); + SELF_INFO( &pArea->area, DBI_MEMOEXT, pItem ); pFileName->szExtension = hb_itemGetCPtr( pItem ); hb_fsFNameMerge( szFileName, pFileName ); hb_itemRelease( pItem ); @@ -4305,7 +4305,7 @@ static HB_ERRCODE hb_fptOpenMemFile( FPTAREAP pArea, LPDBOPENINFO pOpenInfo ) hb_errPutFileName( pError, ( char * ) szFileName ); hb_errPutFlags( pError, EF_CANRETRY | EF_CANDEFAULT ); } - bRetry = ( SELF_ERROR( ( AREAP ) pArea, pError ) == E_RETRY ); + bRetry = ( SELF_ERROR( &pArea->area, pError ) == E_RETRY ); } else bRetry = HB_FALSE; @@ -4408,7 +4408,7 @@ static HB_ERRCODE hb_fptPutValueFile( FPTAREAP pArea, HB_USHORT uiIndex, const c PHB_FILE pFile; /* update any pending relations and reread record if necessary */ - errCode = SELF_DELETED( ( AREAP ) pArea, &bDeleted ); + errCode = SELF_DELETED( &pArea->area, &bDeleted ); if( errCode != HB_SUCCESS ) return errCode; @@ -4416,7 +4416,7 @@ static HB_ERRCODE hb_fptPutValueFile( FPTAREAP pArea, HB_USHORT uiIndex, const c return HB_FAILURE; /* Buffer is hot? */ - if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) == HB_FAILURE ) + if( ! pArea->fRecordChanged && SELF_GOHOT( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; pFile = hb_fileExtOpen( szFile, NULL, FO_READ | FO_DENYNONE | @@ -4487,7 +4487,7 @@ static HB_ERRCODE hb_fptPutValueFile( FPTAREAP pArea, HB_USHORT uiIndex, const c if( errCode == HB_SUCCESS ) { /* Force writer record to eliminate race condition */ - SELF_GOCOLD( ( AREAP ) pArea ); + SELF_GOCOLD( &pArea->area ); } #endif hb_fptFileUnLockEx( pArea ); @@ -4504,7 +4504,7 @@ static HB_ERRCODE hb_fptPutValueFile( FPTAREAP pArea, HB_USHORT uiIndex, const c return HB_SUCCESS; } - return SUPER_PUTVALUEFILE( ( AREAP ) pArea, uiIndex, szFile, uiMode ); + return SUPER_PUTVALUEFILE( &pArea->area, uiIndex, szFile, uiMode ); } static HB_ERRCODE hb_fptDoPackRec( FPTAREAP pArea ) @@ -4532,7 +4532,7 @@ static HB_ERRCODE hb_fptDoPackRec( FPTAREAP pArea ) { /* Buffer is hot? */ if( ! pArea->fRecordChanged ) - errCode = SELF_GOHOT( ( AREAP ) pArea ); + errCode = SELF_GOHOT( &pArea->area ); if( ulSize == 0 && errCode == HB_SUCCESS ) { if( pArea->bMemoType == DB_MEMO_DBT ) @@ -4607,7 +4607,7 @@ static HB_ERRCODE hb_fptDoPackRec( FPTAREAP pArea ) { /* Buffer is hot? */ if( ! pArea->fRecordChanged ) - errCode = SELF_GOHOT( ( AREAP ) pArea ); + errCode = SELF_GOHOT( &pArea->area ); if( errCode == HB_SUCCESS ) { from = FPT_BLOCK_OFFSET( ulBlock ); @@ -4639,7 +4639,7 @@ static HB_ERRCODE hb_fptDoPack( FPTAREAP pArea, HB_ULONG ulBlockSize, errCode = EDBF_READONLY; else if( pArea->fShared ) errCode = EDBF_SHARED; - else if( SELF_GOCOLD( ( AREAP ) pArea ) != HB_SUCCESS ) + else if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; else if( pArea->fHasMemo && pArea->pMemoFile && pArea->pDataFile ) { @@ -4650,7 +4650,7 @@ static HB_ERRCODE hb_fptDoPack( FPTAREAP pArea, HB_ULONG ulBlockSize, if( pEvalBlock && ! HB_IS_BLOCK( pEvalBlock ) ) pEvalBlock = NULL; - errCode = SELF_RECCOUNT( ( AREAP ) pArea, &ulRecords ); + errCode = SELF_RECCOUNT( &pArea->area, &ulRecords ); if( errCode == HB_SUCCESS && ulRecords ) { pArea->ulNewBlockSize = ulBlockSize && pArea->bMemoType != DB_MEMO_DBT @@ -4663,14 +4663,14 @@ static HB_ERRCODE hb_fptDoPack( FPTAREAP pArea, HB_ULONG ulBlockSize, pArea->ulMemoBlockSize = pArea->ulNewBlockSize; pArea->pMemoFile = pArea->pMemoTmpFile; - errCode = SELF_CREATEMEMFILE( ( AREAP ) pArea, NULL ); + errCode = SELF_CREATEMEMFILE( &pArea->area, NULL ); pArea->pMemoFile = pFile; pArea->ulMemoBlockSize = ulMemoBlockSize; if( errCode == HB_SUCCESS ) { if( pEvalBlock ) { - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->area, 0 ); pArea->area.fEof = HB_FALSE; hb_vmEvalBlock( pEvalBlock ); } @@ -4679,7 +4679,7 @@ static HB_ERRCODE hb_fptDoPack( FPTAREAP pArea, HB_ULONG ulBlockSize, { HB_BOOL fDeleted; - errCode = SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + errCode = SELF_GOTO( &pArea->area, ulRecNo ); if( errCode != HB_SUCCESS ) break; if( pEvalBlock ) @@ -4692,20 +4692,20 @@ static HB_ERRCODE hb_fptDoPack( FPTAREAP pArea, HB_ULONG ulBlockSize, } /* read record into bugger */ - errCode = SELF_DELETED( ( AREAP ) pArea, &fDeleted ); + errCode = SELF_DELETED( &pArea->area, &fDeleted ); if( errCode != HB_SUCCESS ) break; errCode = hb_fptDoPackRec( pArea ); if( errCode != HB_SUCCESS ) break; - errCode = SELF_GOCOLD( ( AREAP ) pArea ); + errCode = SELF_GOCOLD( &pArea->area ); if( errCode != HB_SUCCESS ) break; } if( errCode == HB_SUCCESS && pEvalBlock ) { - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->area, 0 ); pArea->area.fBof = HB_FALSE; hb_vmEvalBlock( pEvalBlock ); } @@ -4760,7 +4760,7 @@ static HB_ERRCODE hb_fptPackRec( FPTAREAP pArea, HB_ULONG ulRecNo, HB_BOOL * pfW if( pArea->fPackMemo ) { - HB_ERRCODE errCode = SUPER_PACKREC( ( AREAP ) pArea, ulRecNo, pfWritten ); + HB_ERRCODE errCode = SUPER_PACKREC( &pArea->area, ulRecNo, pfWritten ); if( errCode == HB_SUCCESS && *pfWritten ) { errCode = hb_fptDoPackRec( pArea ); @@ -4773,7 +4773,7 @@ static HB_ERRCODE hb_fptPackRec( FPTAREAP pArea, HB_ULONG ulRecNo, HB_BOOL * pfW return errCode; } - return SUPER_PACKREC( ( AREAP ) pArea, ulRecNo, pfWritten ); + return SUPER_PACKREC( &pArea->area, ulRecNo, pfWritten ); } /* @@ -4789,7 +4789,7 @@ static HB_ERRCODE hb_fptPack( FPTAREAP pArea ) { char szFile[ HB_PATH_MAX ]; - if( SELF_GOCOLD( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; pArea->pMemoTmpFile = hb_fileCreateTemp( NULL, NULL, FC_NORMAL, szFile ); @@ -4801,13 +4801,13 @@ static HB_ERRCODE hb_fptPack( FPTAREAP pArea ) pArea->ulNewBlockSize = pArea->ulMemoBlockSize; pArea->pMemoFile = pArea->pMemoTmpFile; - errCode = SELF_CREATEMEMFILE( ( AREAP ) pArea, NULL ); + errCode = SELF_CREATEMEMFILE( &pArea->area, NULL ); pArea->pMemoFile = pFile; if( errCode == HB_SUCCESS ) { pArea->fPackMemo = HB_TRUE; - errCode = SUPER_PACK( ( AREAP ) pArea ); + errCode = SUPER_PACK( &pArea->area ); pArea->fPackMemo = HB_FALSE; if( errCode == HB_SUCCESS ) { @@ -4843,7 +4843,7 @@ static HB_ERRCODE hb_fptPack( FPTAREAP pArea ) } } - return SUPER_PACK( ( AREAP ) pArea ); + return SUPER_PACK( &pArea->area ); } /* @@ -5078,7 +5078,7 @@ static HB_ERRCODE hb_fptInfo( FPTAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem break; default: - return SUPER_INFO( ( AREAP ) pArea, uiIndex, pItem ); + return SUPER_INFO( &pArea->area, uiIndex, pItem ); } return HB_SUCCESS; @@ -5108,7 +5108,7 @@ static HB_ERRCODE hb_fptFieldInfo( FPTAREAP pArea, HB_USHORT uiIndex, HB_USHORT HB_ULONG ulBlock, ulSize, ulType; HB_BOOL bDeleted; - SELF_DELETED( ( AREAP ) pArea, &bDeleted ); + SELF_DELETED( &pArea->area, &bDeleted ); switch( uiType ) { case DBS_BLOB_GET: /* BLOBGet() { , } */ @@ -5172,7 +5172,7 @@ static HB_ERRCODE hb_fptFieldInfo( FPTAREAP pArea, HB_USHORT uiIndex, HB_USHORT return HB_SUCCESS; } } - return SUPER_FIELDINFO( ( AREAP ) pArea, uiIndex, uiType, pItem ); + return SUPER_FIELDINFO( &pArea->area, uiIndex, uiType, pItem ); } /* diff --git a/src/rdd/dbfnsx/dbfnsx1.c b/src/rdd/dbfnsx/dbfnsx1.c index 4b71ce7c61..717b116be1 100644 --- a/src/rdd/dbfnsx/dbfnsx1.c +++ b/src/rdd/dbfnsx/dbfnsx1.c @@ -503,7 +503,7 @@ static HB_ERRCODE hb_nsxErrorRT( NSXAREAP pArea, hb_errPutFileName( pError, szFileName ); if( uiFlags ) hb_errPutFlags( pError, uiFlags ); - iRet = SELF_ERROR( ( AREAP ) pArea, pError ); + iRet = SELF_ERROR( &pArea->dbfarea.area, pError ); if( ! pErrorPtr ) hb_errRelease( pError ); } @@ -785,7 +785,7 @@ static LPKEYINFO hb_nsxEvalKey( LPKEYINFO pKey, LPTAGINFO pTag ) if( pTag->nField ) { pItem = hb_itemNew( NULL ); - SELF_GETVALUE( ( AREAP ) pArea, pTag->nField, pItem ); + SELF_GETVALUE( &pArea->dbfarea.area, pTag->nField, pItem ); pKey = hb_nsxKeyPutItem( pKey, pItem, pArea->dbfarea.ulRecNo, pTag, HB_FALSE, NULL ); hb_itemRelease( pItem ); } @@ -971,7 +971,7 @@ static void hb_nsxTagClearScope( LPTAGINFO pTag, HB_USHORT nScope ) /* resolve any pending scope relations first */ if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( pTag->fUsrDescend ) nScope = ( nScope == 0 ) ? 1 : 0; @@ -1003,7 +1003,7 @@ static void hb_nsxTagSetScope( LPTAGINFO pTag, HB_USHORT nScope, PHB_ITEM pItem /* resolve any pending scope relations first */ if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pScopeVal = ( hb_itemType( pItem ) == HB_IT_BLOCK ) ? hb_vmEvalBlock( pItem ) : pItem; @@ -1044,7 +1044,7 @@ static void hb_nsxTagGetScope( LPTAGINFO pTag, HB_USHORT nScope, PHB_ITEM pItem /* resolve any pending scope relations first */ if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( pTag->fUsrDescend ) nScope = ( nScope == 0 ) ? 1 : 0; @@ -1067,7 +1067,7 @@ static void hb_nsxTagRefreshScope( LPTAGINFO pTag ) /* resolve any pending scope relations first */ if( pTag->pIndex->pArea->dbfarea.lpdbPendingRel && pTag->pIndex->pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pTag->pIndex->pArea ); + SELF_FORCEREL( &pTag->pIndex->pArea->dbfarea.area ); if( hb_itemType( pTag->top.scopeItem ) == HB_IT_BLOCK ) { @@ -1090,7 +1090,7 @@ static HB_BOOL hb_nsxCheckRecordScope( NSXAREAP pArea, HB_ULONG ulRec ) { HB_LONG lRecNo = ( HB_LONG ) ulRec; - if( SELF_COUNTSCOPE( ( AREAP ) pArea, NULL, &lRecNo ) == HB_SUCCESS && lRecNo == 0 ) + if( SELF_COUNTSCOPE( &pArea->dbfarea.area, NULL, &lRecNo ) == HB_SUCCESS && lRecNo == 0 ) { return HB_FALSE; } @@ -1705,7 +1705,7 @@ static LPTAGINFO hb_nsxTagNew( LPNSXINDEX pIndex, const char * szTagName, if( pForExpr && szForExpr ) pTag->ForExpr = hb_strndup( szForExpr, NSX_MAXEXPLEN ); - pTag->nField = hb_rddFieldExpIndex( ( AREAP ) pIndex->pArea, pTag->KeyExpr ); + pTag->nField = hb_rddFieldExpIndex( &pIndex->pArea->dbfarea.area, pTag->KeyExpr ); pTag->pKeyItem = pKeyExpr; pTag->pForItem = pForExpr; pTag->AscendKey = fAscendKey; @@ -1822,14 +1822,14 @@ static LPTAGINFO hb_nsxTagLoad( LPNSXINDEX pIndex, HB_ULONG ulBlock, uiKeySize == 0 || uiKeySize > NSX_MAXKEYLEN || lpNSX->KeyExpr[ 0 ] < 0x20 ) return NULL; - if( SELF_COMPILE( ( AREAP ) pIndex->pArea, ( const char * ) lpNSX->KeyExpr ) == HB_FAILURE ) + if( SELF_COMPILE( &pIndex->pArea->dbfarea.area, ( const char * ) lpNSX->KeyExpr ) == HB_FAILURE ) return NULL; pKeyExp = pIndex->pArea->dbfarea.area.valResult; pIndex->pArea->dbfarea.area.valResult = NULL; if( lpNSX->ForExpr[ 0 ] >= 0x20 ) { - if( SELF_COMPILE( ( AREAP ) pIndex->pArea, ( const char * ) lpNSX->ForExpr ) == HB_FAILURE ) + if( SELF_COMPILE( &pIndex->pArea->dbfarea.area, ( const char * ) lpNSX->ForExpr ) == HB_FAILURE ) { hb_vmDestroyBlockOrMacro( pKeyExp ); return NULL; @@ -3700,7 +3700,7 @@ static HB_BOOL hb_nsxCurKeyRefresh( LPTAGINFO pTag ) NSXAREAP pArea = pTag->pIndex->pArea; if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( ! pArea->dbfarea.fPositioned ) { @@ -3733,7 +3733,7 @@ static HB_BOOL hb_nsxCurKeyRefresh( LPTAGINFO pTag ) * update it, create the new key and if differs seek again */ if( pTag->CurKeyInfo->rec != pArea->dbfarea.ulRecNo && fValidBuf ) { - SELF_GOTO( ( AREAP ) pArea, pArea->dbfarea.ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, pArea->dbfarea.ulRecNo ); memcpy( buf, pKey->val, pTag->KeyLength ); pKey = hb_nsxEvalKey( pKey, pTag ); if( memcmp( buf, pKey->val, pTag->KeyLength ) != 0 ) @@ -3835,7 +3835,7 @@ static void hb_nsxCreateFName( NSXAREAP pArea, const char * szBagName, HB_BOOL * DBORDERINFO pExtInfo; memset( &pExtInfo, 0, sizeof( pExtInfo ) ); pExt = pExtInfo.itmResult = hb_itemPutC( NULL, NULL ); - if( SELF_ORDINFO( ( AREAP ) pArea, DBOI_BAGEXT, &pExtInfo ) == HB_SUCCESS && + if( SELF_ORDINFO( &pArea->dbfarea.area, DBOI_BAGEXT, &pExtInfo ) == HB_SUCCESS && hb_itemGetCLen( pExt ) > 0 ) { pFileName->szExtension = hb_itemGetCPtr( pExt ); @@ -3860,7 +3860,7 @@ static void hb_nsxCreateFName( NSXAREAP pArea, const char * szBagName, HB_BOOL * DBORDERINFO pExtInfo; memset( &pExtInfo, 0, sizeof( pExtInfo ) ); pExt = pExtInfo.itmResult = hb_itemPutC( NULL, NULL ); - if( SELF_ORDINFO( ( AREAP ) pArea, DBOI_BAGEXT, &pExtInfo ) == HB_SUCCESS ) + if( SELF_ORDINFO( &pArea->dbfarea.area, DBOI_BAGEXT, &pExtInfo ) == HB_SUCCESS ) { *fProd = hb_stricmp( pFileName->szExtension, hb_itemGetCPtr( pExt ) ) == 0; @@ -4289,14 +4289,14 @@ static HB_BOOL hb_nsxOrdKeyGoto( LPTAGINFO pTag, HB_ULONG ulKeyNo ) if( ulKeyNo != 0 || pTag->TagEOF ) { pTag->stackLevel = 0; - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); } else { LPTAGINFO pSavedTag = pArea->lpCurTag; pArea->lpCurTag = pTag; - if( SELF_GOTO( ( AREAP ) pArea, pTag->CurKeyInfo->rec ) == HB_SUCCESS ) - SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + if( SELF_GOTO( &pArea->dbfarea.area, pTag->CurKeyInfo->rec ) == HB_SUCCESS ) + SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); pArea->lpCurTag = pSavedTag; } hb_nsxTagUnLockRead( pTag ); @@ -4419,7 +4419,7 @@ static void hb_nsxOrdSetRelKeyPos( LPTAGINFO pTag, double dPos ) } if( ! fOK ) { - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); } else { @@ -4434,26 +4434,26 @@ static void hb_nsxOrdSetRelKeyPos( LPTAGINFO pTag, double dPos ) hb_nsxTagGoTop( pTag ); if( pTag->CurKeyInfo->rec != 0 ) { - if( SELF_GOTO( ( AREAP ) pArea, pTag->CurKeyInfo->rec ) == HB_SUCCESS ) + if( SELF_GOTO( &pArea->dbfarea.area, pTag->CurKeyInfo->rec ) == HB_SUCCESS ) { - SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); if( pArea->dbfarea.area.fEof && ! fTop ) fForward = HB_FALSE; } } else if( fTop ) - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); else fForward = HB_FALSE; } if( ! fForward ) { hb_nsxTagGoBottom( pTag ); - if( SELF_GOTO( ( AREAP ) pArea, pTag->CurKeyInfo->rec ) == HB_SUCCESS && + if( SELF_GOTO( &pArea->dbfarea.area, pTag->CurKeyInfo->rec ) == HB_SUCCESS && pTag->CurKeyInfo->rec != 0 ) { pArea->dbfarea.area.fBottom = HB_TRUE; - SELF_SKIPFILTER( ( AREAP ) pArea, -1 ); + SELF_SKIPFILTER( &pArea->dbfarea.area, -1 ); } } pArea->lpCurTag = pSavedTag; @@ -4471,7 +4471,7 @@ static HB_BOOL hb_nsxOrdSkipUnique( LPTAGINFO pTag, HB_LONG lToSkip ) HB_BOOL fOut = HB_FALSE, fEof = HB_FALSE, fForward = ( lToSkip >= 0 ); if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pArea->dbfarea.area.fTop = pArea->dbfarea.area.fBottom = HB_FALSE; @@ -4520,10 +4520,10 @@ static HB_BOOL hb_nsxOrdSkipUnique( LPTAGINFO pTag, HB_LONG lToSkip ) } hb_nsxTagUnLockRead( pTag ); - if( SELF_GOTO( ( AREAP ) pArea, fEof ? 0 : pTag->CurKeyInfo->rec ) == HB_SUCCESS && + if( SELF_GOTO( &pArea->dbfarea.area, fEof ? 0 : pTag->CurKeyInfo->rec ) == HB_SUCCESS && ! fEof ) { - SELF_SKIPFILTER( ( AREAP ) pArea, ( fForward || fOut ) ? 1 : -1 ); + SELF_SKIPFILTER( &pArea->dbfarea.area, ( fForward || fOut ) ? 1 : -1 ); if( ! fForward && fOut ) pArea->dbfarea.area.fBof = HB_TRUE; } @@ -4552,13 +4552,13 @@ static HB_BOOL hb_nsxOrdSkipEval( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pEv if( hb_itemType( pEval ) != HB_IT_BLOCK ) { - if( SELF_SKIP( ( AREAP ) pArea, fForward ? 1 : -1 ) != HB_SUCCESS ) + if( SELF_SKIP( &pArea->dbfarea.area, fForward ? 1 : -1 ) != HB_SUCCESS ) return HB_FALSE; return fForward ? ! pArea->dbfarea.area.fEof : ! pArea->dbfarea.area.fBof; } if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pArea->dbfarea.area.fTop = pArea->dbfarea.area.fBottom = HB_FALSE; @@ -4577,12 +4577,12 @@ static HB_BOOL hb_nsxOrdSkipEval( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pEv while( fForward ? ! pTag->TagEOF : ! pTag->TagBOF ) { - if( SELF_GOTO( ( AREAP ) pArea, pTag->CurKeyInfo->rec ) != HB_SUCCESS ) + if( SELF_GOTO( &pArea->dbfarea.area, pTag->CurKeyInfo->rec ) != HB_SUCCESS ) break; if( hb_nsxEvalSeekCond( pTag, pEval ) ) { HB_ULONG ulRecNo = pArea->dbfarea.ulRecNo; - if( SELF_SKIPFILTER( ( AREAP ) pArea, fForward ? 1 : -1 ) != HB_SUCCESS || + if( SELF_SKIPFILTER( &pArea->dbfarea.area, fForward ? 1 : -1 ) != HB_SUCCESS || pArea->dbfarea.ulRecNo == ulRecNo || hb_nsxEvalSeekCond( pTag, pEval ) ) { fFound = HB_TRUE; @@ -4597,10 +4597,10 @@ static HB_BOOL hb_nsxOrdSkipEval( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pEv if( ! fFound ) { if( fForward ) - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); else { - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); pArea->dbfarea.area.fBof = HB_TRUE; } } @@ -4635,7 +4635,7 @@ static HB_BOOL hb_nsxOrdSkipWild( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pWi if( pTag->KeyType != 'C' || ! szPattern || ! *szPattern ) { - if( SELF_SKIP( ( AREAP ) pArea, fForward ? 1 : -1 ) != HB_SUCCESS ) + if( SELF_SKIP( &pArea->dbfarea.area, fForward ? 1 : -1 ) != HB_SUCCESS ) return HB_FALSE; return fForward ? ! pArea->dbfarea.area.fEof : ! pArea->dbfarea.area.fBof; } @@ -4651,7 +4651,7 @@ static HB_BOOL hb_nsxOrdSkipWild( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pWi } if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pArea->dbfarea.area.fTop = pArea->dbfarea.area.fBottom = HB_FALSE; @@ -4697,9 +4697,9 @@ static HB_BOOL hb_nsxOrdSkipWild( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pWi if( hb_strMatchWild( ( const char * ) pTag->CurKeyInfo->val, szPattern ) ) { HB_ULONG ulRecNo = pTag->CurKeyInfo->rec; - if( SELF_GOTO( ( AREAP ) pArea, ulRecNo ) != HB_SUCCESS ) + if( SELF_GOTO( &pArea->dbfarea.area, ulRecNo ) != HB_SUCCESS ) break; - if( SELF_SKIPFILTER( ( AREAP ) pArea, fForward ? 1 : -1 ) != HB_SUCCESS || + if( SELF_SKIPFILTER( &pArea->dbfarea.area, fForward ? 1 : -1 ) != HB_SUCCESS || pArea->dbfarea.ulRecNo == ulRecNo || hb_strMatchWild( ( const char * ) pTag->CurKeyInfo->val, szPattern ) ) { @@ -4720,10 +4720,10 @@ static HB_BOOL hb_nsxOrdSkipWild( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pWi if( ! fFound ) { if( fForward ) - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); else { - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); pArea->dbfarea.area.fBof = HB_TRUE; } } @@ -4773,13 +4773,13 @@ static HB_BOOL hb_nsxOrdSkipRegEx( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pR if( pTag->KeyType != 'C' || ( pRegEx = hb_regexGet( pRegExItm, 0 ) ) == NULL ) { - if( SELF_SKIP( ( AREAP ) pArea, fForward ? 1 : -1 ) != HB_SUCCESS ) + if( SELF_SKIP( &pArea->dbfarea.area, fForward ? 1 : -1 ) != HB_SUCCESS ) return HB_FALSE; return fForward ? ! pArea->dbfarea.area.fEof : ! pArea->dbfarea.area.fBof; } if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pArea->dbfarea.area.fTop = pArea->dbfarea.area.fBottom = HB_FALSE; @@ -4798,13 +4798,13 @@ static HB_BOOL hb_nsxOrdSkipRegEx( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pR while( fForward ? ! pTag->TagEOF : ! pTag->TagBOF ) { - if( SELF_GOTO( ( AREAP ) pArea, pTag->CurKeyInfo->rec ) != HB_SUCCESS ) + if( SELF_GOTO( &pArea->dbfarea.area, pTag->CurKeyInfo->rec ) != HB_SUCCESS ) break; if( hb_nsxRegexMatch( pTag, pRegEx, ( const char * ) pTag->CurKeyInfo->val ) ) { HB_ULONG ulRecNo = pArea->dbfarea.ulRecNo; - if( SELF_SKIPFILTER( ( AREAP ) pArea, fForward ? 1 : -1 ) != HB_SUCCESS || + if( SELF_SKIPFILTER( &pArea->dbfarea.area, fForward ? 1 : -1 ) != HB_SUCCESS || pArea->dbfarea.ulRecNo == ulRecNo || hb_nsxRegexMatch( pTag, pRegEx, ( const char * ) pTag->CurKeyInfo->val ) ) { @@ -4820,10 +4820,10 @@ static HB_BOOL hb_nsxOrdSkipRegEx( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pR if( ! fFound ) { if( fForward ) - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); else { - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); pArea->dbfarea.area.fBof = HB_TRUE; } } @@ -4854,7 +4854,7 @@ static HB_BOOL hb_nsxOrdKeyAdd( LPTAGINFO pTag, PHB_ITEM pItem ) LPKEYINFO pKey; if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( ! pArea->dbfarea.fPositioned ) return HB_FALSE; @@ -4897,7 +4897,7 @@ static HB_BOOL hb_nsxOrdKeyDel( LPTAGINFO pTag, PHB_ITEM pItem ) LPKEYINFO pKey = NULL; if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( ! pArea->dbfarea.fPositioned ) return HB_FALSE; @@ -4945,7 +4945,7 @@ static HB_BOOL hb_nsxOrdFindRec( LPTAGINFO pTag, HB_ULONG ulRecNo, HB_BOOL fCont if( pTag && ulRecNo ) { if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( hb_nsxTagLockRead( pTag ) ) { @@ -4976,7 +4976,7 @@ static HB_BOOL hb_nsxOrdFindRec( LPTAGINFO pTag, HB_ULONG ulRecNo, HB_BOOL fCont hb_nsxTagUnLockRead( pTag ); } } - SELF_GOTO( ( AREAP ) pArea, fFound ? ulRecNo : 0 ); + SELF_GOTO( &pArea->dbfarea.area, fFound ? ulRecNo : 0 ); return fFound; } @@ -5807,7 +5807,7 @@ static HB_ERRCODE hb_nsxTagCreate( LPTAGINFO pTag, HB_BOOL fReindex ) } else { - errCode = SELF_RECCOUNT( ( AREAP ) pArea, &ulRecCount ); + errCode = SELF_RECCOUNT( &pArea->dbfarea.area, &ulRecCount ); if( errCode != HB_SUCCESS ) return errCode; } @@ -5909,13 +5909,13 @@ static HB_ERRCODE hb_nsxTagCreate( LPTAGINFO pTag, HB_BOOL fReindex ) if( ulStartRec == 0 ) { - errCode = SELF_GOTOP( ( AREAP ) pArea ); + errCode = SELF_GOTOP( &pArea->dbfarea.area ); } else { - errCode = SELF_GOTO( ( AREAP ) pArea, ulStartRec ); + errCode = SELF_GOTO( &pArea->dbfarea.area, ulStartRec ); if( fUseFilter && errCode == HB_SUCCESS ) - errCode = SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + errCode = SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); } ulRecNo = pArea->dbfarea.ulRecNo; @@ -5956,14 +5956,14 @@ static HB_ERRCODE hb_nsxTagCreate( LPTAGINFO pTag, HB_BOOL fReindex ) } pArea->dbfarea.pRecord = pSort->pBuffIO + iRecBuff * pArea->dbfarea.uiRecordLen; pArea->dbfarea.ulRecNo = ulRecNo; - if( SELF_GETREC( ( AREAP ) pArea, NULL ) == HB_FAILURE ) + if( SELF_GETREC( &pArea->dbfarea.area, NULL ) == HB_FAILURE ) break; pArea->dbfarea.fValidBuffer = pArea->dbfarea.fPositioned = HB_TRUE; pArea->dbfarea.fDeleted = pArea->dbfarea.pRecord[ 0 ] == '*'; /* Force relational movement in child WorkAreas */ if( pArea->dbfarea.area.lpdbRelations ) { - errCode = SELF_SYNCCHILDREN( ( AREAP ) pArea ); + errCode = SELF_SYNCCHILDREN( &pArea->dbfarea.area ); if( errCode != HB_SUCCESS ) break; } @@ -5977,7 +5977,7 @@ static HB_ERRCODE hb_nsxTagCreate( LPTAGINFO pTag, HB_BOOL fReindex ) ( pForItem == NULL || hb_nsxEvalCond( pArea, pForItem, HB_FALSE ) ) ) { if( pTag->nField ) - errCode = SELF_GETVALUE( ( AREAP ) pArea, pTag->nField, pItem ); + errCode = SELF_GETVALUE( &pArea->dbfarea.area, pTag->nField, pItem ); else pItem = hb_vmEvalBlockOrMacro( pTag->pKeyItem ); @@ -6048,9 +6048,9 @@ static HB_ERRCODE hb_nsxTagCreate( LPTAGINFO pTag, HB_BOOL fReindex ) ulRecNo++; else if( errCode == HB_SUCCESS ) { - errCode = SELF_SKIPRAW( ( AREAP ) pArea, 1 ); + errCode = SELF_SKIPRAW( &pArea->dbfarea.area, 1 ); if( fUseFilter && errCode == HB_SUCCESS ) - errCode = SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + errCode = SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); ulRecNo = pArea->dbfarea.ulRecNo; } } @@ -6060,7 +6060,7 @@ static HB_ERRCODE hb_nsxTagCreate( LPTAGINFO pTag, HB_BOOL fReindex ) pArea->dbfarea.pRecord = pSaveRecBuff; pArea->dbfarea.fValidBuffer = HB_FALSE; if( errCode == HB_SUCCESS ) - errCode = SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + errCode = SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); } if( errCode == HB_SUCCESS ) @@ -6117,14 +6117,14 @@ static HB_ERRCODE hb_nsxGoBottom( NSXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_nsxGoBottom(%p)", pArea ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( ! pArea->lpCurTag ) - return SUPER_GOBOTTOM( ( AREAP ) pArea ); + return SUPER_GOBOTTOM( &pArea->dbfarea.area ); if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( ! hb_nsxTagLockRead( pArea->lpCurTag ) ) return HB_FAILURE; @@ -6136,12 +6136,12 @@ static HB_ERRCODE hb_nsxGoBottom( NSXAREAP pArea ) pArea->dbfarea.area.fBottom = HB_TRUE; if( pArea->lpCurTag->TagEOF ) - retval = SELF_GOTO( ( AREAP ) pArea, 0 ); + retval = SELF_GOTO( &pArea->dbfarea.area, 0 ); else { - retval = SELF_GOTO( ( AREAP ) pArea, pArea->lpCurTag->CurKeyInfo->rec ); + retval = SELF_GOTO( &pArea->dbfarea.area, pArea->lpCurTag->CurKeyInfo->rec ); if( retval != HB_FAILURE && pArea->dbfarea.fPositioned ) - retval = SELF_SKIPFILTER( ( AREAP ) pArea, -1 ); + retval = SELF_SKIPFILTER( &pArea->dbfarea.area, -1 ); } hb_nsxTagUnLockRead( pArea->lpCurTag ); @@ -6154,14 +6154,14 @@ static HB_ERRCODE hb_nsxTop( NSXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_nsxTop(%p)", pArea ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( ! pArea->lpCurTag ) - return SUPER_GOTOP( ( AREAP ) pArea ); + return SUPER_GOTOP( &pArea->dbfarea.area ); if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( ! hb_nsxTagLockRead( pArea->lpCurTag ) ) return HB_FAILURE; @@ -6173,12 +6173,12 @@ static HB_ERRCODE hb_nsxTop( NSXAREAP pArea ) pArea->dbfarea.area.fBottom = HB_FALSE; if( pArea->lpCurTag->TagEOF ) - retval = SELF_GOTO( ( AREAP ) pArea, 0 ); + retval = SELF_GOTO( &pArea->dbfarea.area, 0 ); else { - retval = SELF_GOTO( ( AREAP ) pArea, pArea->lpCurTag->CurKeyInfo->rec ); + retval = SELF_GOTO( &pArea->dbfarea.area, pArea->lpCurTag->CurKeyInfo->rec ); if( retval != HB_FAILURE && pArea->dbfarea.fPositioned ) - retval = SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + retval = SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); } hb_nsxTagUnLockRead( pArea->lpCurTag ); @@ -6189,7 +6189,7 @@ static HB_ERRCODE hb_nsxSeek( NSXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pItem, { HB_TRACE( HB_TR_DEBUG, ( "hb_nsxSeek(%p, %d, %p, %d)", pArea, fSoftSeek, pItem, fFindLast ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( ! pArea->lpCurTag ) @@ -6206,7 +6206,7 @@ static HB_ERRCODE hb_nsxSeek( NSXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pItem, HB_ULONG ulRec; if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pArea->dbfarea.area.fTop = pArea->dbfarea.area.fBottom = HB_FALSE; pArea->dbfarea.area.fEof = HB_FALSE; @@ -6246,10 +6246,10 @@ static HB_ERRCODE hb_nsxSeek( NSXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pItem, hb_nsxTagUnLockRead( pArea->lpCurTag ); if( ! fEOF ) { - retval = SELF_GOTO( ( AREAP ) pArea, pArea->lpCurTag->CurKeyInfo->rec ); + retval = SELF_GOTO( &pArea->dbfarea.area, pArea->lpCurTag->CurKeyInfo->rec ); if( retval != HB_FAILURE && pArea->dbfarea.fPositioned ) { - retval = SELF_SKIPFILTER( ( AREAP ) pArea, fFindLast ? -1 : 1 ); + retval = SELF_SKIPFILTER( &pArea->dbfarea.area, fFindLast ? -1 : 1 ); if( retval != HB_FAILURE && ulRec && pArea->dbfarea.fPositioned ) { pArea->dbfarea.area.fFound = ( ulRec == pArea->dbfarea.ulRecNo || @@ -6265,7 +6265,7 @@ static HB_ERRCODE hb_nsxSeek( NSXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pItem, if( retval != HB_FAILURE && ( fEOF || ! hb_nsxKeyInScope( pArea->lpCurTag, pArea->lpCurTag->CurKeyInfo ) ) ) { - retval = SELF_GOTO( ( AREAP ) pArea, 0 ); + retval = SELF_GOTO( &pArea->dbfarea.area, 0 ); } if( pArea->dbfarea.fPositioned || pArea->dbfarea.ulRecNo != 1 ) pArea->dbfarea.area.fBof = HB_FALSE; @@ -6281,11 +6281,11 @@ static HB_ERRCODE hb_nsxSkipRaw( NSXAREAP pArea, HB_LONG lToSkip ) HB_TRACE( HB_TR_DEBUG, ( "hb_nsxSkipRaw(%p, %ld)", pArea, lToSkip ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( ! pArea->lpCurTag || lToSkip == 0 ) - return SUPER_SKIPRAW( ( AREAP ) pArea, lToSkip ); + return SUPER_SKIPRAW( &pArea->dbfarea.area, lToSkip ); if( ! hb_nsxTagLockRead( pArea->lpCurTag ) ) return HB_FAILURE; @@ -6311,7 +6311,7 @@ static HB_ERRCODE hb_nsxSkipRaw( NSXAREAP pArea, HB_LONG lToSkip ) { hb_nsxTagSkipNext( pArea->lpCurTag ); } - retval = SELF_GOTO( ( AREAP ) pArea, + retval = SELF_GOTO( &pArea->dbfarea.area, ( pArea->lpCurTag->TagEOF || fOut ) ? 0 : pArea->lpCurTag->CurKeyInfo->rec ); } @@ -6326,7 +6326,7 @@ static HB_ERRCODE hb_nsxSkipRaw( NSXAREAP pArea, HB_LONG lToSkip ) hb_nsxTagGoTop( pArea->lpCurTag ); fOut = HB_TRUE; } - retval = SELF_GOTO( ( AREAP ) pArea, pArea->lpCurTag->TagEOF ? 0 : + retval = SELF_GOTO( &pArea->dbfarea.area, pArea->lpCurTag->TagEOF ? 0 : pArea->lpCurTag->CurKeyInfo->rec ); pArea->dbfarea.area.fBof = fOut; } @@ -6351,10 +6351,10 @@ static HB_ERRCODE hb_nsxFlush( NSXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_nsxFlush(%p)", pArea ) ); - errCode = SELF_GOCOLD( ( AREAP ) pArea ); + errCode = SELF_GOCOLD( &pArea->dbfarea.area ); if( errCode == HB_SUCCESS ) { - errCode = SUPER_FLUSH( ( AREAP ) pArea ); + errCode = SUPER_FLUSH( &pArea->dbfarea.area ); if( hb_setGetHardCommit() ) { @@ -6384,7 +6384,7 @@ static HB_ERRCODE hb_nsxGoCold( NSXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_nsxGoCold(%p)", pArea ) ); - if( SUPER_GOCOLD( ( AREAP ) pArea ) == HB_SUCCESS ) + if( SUPER_GOCOLD( &pArea->dbfarea.area ) == HB_SUCCESS ) { if( fRecordChanged || pArea->fIdxAppend ) { @@ -6513,7 +6513,7 @@ static HB_ERRCODE hb_nsxGoHot( NSXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_nsxGoHot(%p)", pArea ) ); - errCode = SUPER_GOHOT( ( AREAP ) pArea ); + errCode = SUPER_GOHOT( &pArea->dbfarea.area ); if( errCode == HB_SUCCESS ) { if( ! pArea->fIdxAppend ) @@ -6554,10 +6554,10 @@ static HB_ERRCODE hb_nsxClose( NSXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_nsxClose(%p)", pArea ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; - errCode = SUPER_CLOSE( ( AREAP ) pArea ); + errCode = SUPER_CLOSE( &pArea->dbfarea.area ); if( errCode == HB_SUCCESS ) { @@ -6567,7 +6567,7 @@ static HB_ERRCODE hb_nsxClose( NSXAREAP pArea ) pArea->pSort = NULL; } - SELF_ORDLSTCLEAR( ( AREAP ) pArea ); + SELF_ORDLSTCLEAR( &pArea->dbfarea.area ); /* close also production indexes if any */ while( pArea->lpIndexes ) @@ -6605,7 +6605,7 @@ static HB_ERRCODE hb_nsxOpen( NSXAREAP pArea, LPDBOPENINFO pOpenInfo ) if( ! pArea->dbfarea.bLockType ) { PHB_ITEM pItem = hb_itemNew( NULL ); - errCode = SELF_INFO( ( AREAP ) pArea, DBI_LOCKSCHEME, pItem ); + errCode = SELF_INFO( &pArea->dbfarea.area, DBI_LOCKSCHEME, pItem ); if( errCode != HB_SUCCESS ) { hb_itemRelease( pItem ); @@ -6617,7 +6617,7 @@ static HB_ERRCODE hb_nsxOpen( NSXAREAP pArea, LPDBOPENINFO pOpenInfo ) pArea->dbfarea.bLockType = DB_DBFLOCK_CLIPPER; } - errCode = SUPER_OPEN( ( AREAP ) pArea, pOpenInfo ); + errCode = SUPER_OPEN( &pArea->dbfarea.area, pOpenInfo ); if( errCode == HB_SUCCESS && ( DBFAREA_DATA( &pArea->dbfarea )->fStrictStruct ? pArea->dbfarea.fHasTags : hb_setGetAutOpen() ) ) @@ -6634,14 +6634,14 @@ static HB_ERRCODE hb_nsxOpen( NSXAREAP pArea, LPDBOPENINFO pOpenInfo ) pOrderInfo.atomBagName = hb_itemPutC( NULL, szFileName ); pOrderInfo.itmNewVal = NULL; pOrderInfo.itmOrder = NULL; - errCode = SELF_ORDLSTADD( ( AREAP ) pArea, &pOrderInfo ); + errCode = SELF_ORDLSTADD( &pArea->dbfarea.area, &pOrderInfo ); if( errCode == HB_SUCCESS ) { pOrderInfo.itmOrder = hb_itemPutNI( NULL, hb_setGetAutOrder() ); - errCode = SELF_ORDLSTFOCUS( ( AREAP ) pArea, &pOrderInfo ); + errCode = SELF_ORDLSTFOCUS( &pArea->dbfarea.area, &pOrderInfo ); hb_itemRelease( pOrderInfo.itmOrder ); if( errCode == HB_SUCCESS ) - errCode = SELF_GOTOP( ( AREAP ) pArea ); + errCode = SELF_GOTOP( &pArea->dbfarea.area ); } hb_itemRelease( pOrderInfo.atomBagName ); hb_itemRelease( pOrderInfo.itmResult ); @@ -6657,9 +6657,9 @@ static HB_ERRCODE hb_nsxPack( NSXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_nsxPack(%p)", pArea ) ); - errCode = SUPER_PACK( ( AREAP ) pArea ); + errCode = SUPER_PACK( &pArea->dbfarea.area ); if( errCode == HB_SUCCESS ) - return SELF_ORDLSTREBUILD( ( AREAP ) pArea ); + return SELF_ORDLSTREBUILD( &pArea->dbfarea.area ); return errCode; } @@ -6670,9 +6670,9 @@ static HB_ERRCODE hb_nsxZap( NSXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_nsxZap(%p)", pArea ) ); - errCode = SUPER_ZAP( ( AREAP ) pArea ); + errCode = SUPER_ZAP( &pArea->dbfarea.area ); if( errCode == HB_SUCCESS ) - return SELF_ORDLSTREBUILD( ( AREAP ) pArea ); + return SELF_ORDLSTREBUILD( &pArea->dbfarea.area ); return errCode; } @@ -6694,13 +6694,13 @@ static HB_ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderI HB_TRACE( HB_TR_DEBUG, ( "hb_nsxOrderCreate(%p, %p)", pArea, pOrderInfo ) ); - errCode = SELF_GOCOLD( ( AREAP ) pArea ); + errCode = SELF_GOCOLD( &pArea->dbfarea.area ); if( errCode != HB_SUCCESS ) return errCode; if( pArea->dbfarea.lpdbPendingRel ) { - errCode = SELF_FORCEREL( ( AREAP ) pArea ); + errCode = SELF_FORCEREL( &pArea->dbfarea.area ); if( errCode != HB_SUCCESS ) return errCode; } @@ -6711,7 +6711,7 @@ static HB_ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderI pKeyExp = hb_itemNew( pOrderInfo->itmCobExpr ); else /* Otherwise, try compiling the key expression string */ { - errCode = SELF_COMPILE( ( AREAP ) pArea, szKey ); + errCode = SELF_COMPILE( &pArea->dbfarea.area, szKey ); if( errCode != HB_SUCCESS ) return errCode; pKeyExp = pArea->dbfarea.area.valResult; @@ -6720,15 +6720,15 @@ static HB_ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderI /* Get a blank record before testing expression */ ulRecNo = pArea->dbfarea.ulRecNo; - errCode = SELF_GOTO( ( AREAP ) pArea, 0 ); + errCode = SELF_GOTO( &pArea->dbfarea.area, 0 ); if( errCode != HB_SUCCESS ) return errCode; - errCode = SELF_EVALBLOCK( ( AREAP ) pArea, pKeyExp ); + errCode = SELF_EVALBLOCK( &pArea->dbfarea.area, pKeyExp ); if( errCode != HB_SUCCESS ) { hb_vmDestroyBlockOrMacro( pKeyExp ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); return errCode; } pResult = pArea->dbfarea.area.valResult; @@ -6762,7 +6762,7 @@ static HB_ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderI if( iLen == 0 ) { hb_vmDestroyBlockOrMacro( pKeyExp ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); hb_nsxErrorRT( pArea, bType == 'U' ? EG_DATATYPE : EG_DATAWIDTH, EDBF_INVALIDKEY, NULL, 0, 0, NULL ); return HB_FAILURE; @@ -6782,11 +6782,11 @@ static HB_ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderI else if( szFor ) { /* Otherwise, try compiling the conditional expression string */ - errCode = SELF_COMPILE( ( AREAP ) pArea, szFor ); + errCode = SELF_COMPILE( &pArea->dbfarea.area, szFor ); if( errCode != HB_SUCCESS ) { hb_vmDestroyBlockOrMacro( pKeyExp ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); return errCode; } pForExp = pArea->dbfarea.area.valResult; @@ -6802,12 +6802,12 @@ static HB_ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderI { HB_BOOL fOK; - errCode = SELF_EVALBLOCK( ( AREAP ) pArea, pForExp ); + errCode = SELF_EVALBLOCK( &pArea->dbfarea.area, pForExp ); if( errCode != HB_SUCCESS ) { hb_vmDestroyBlockOrMacro( pKeyExp ); hb_vmDestroyBlockOrMacro( pForExp ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); return errCode; } fOK = hb_itemType( pArea->dbfarea.area.valResult ) == HB_IT_LOGICAL; @@ -6817,13 +6817,13 @@ static HB_ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderI { hb_vmDestroyBlockOrMacro( pKeyExp ); hb_vmDestroyBlockOrMacro( pForExp ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); hb_nsxErrorRT( pArea, EG_DATATYPE, EDBF_INVALIDFOR, NULL, 0, 0, NULL ); return HB_FAILURE; } } - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); /* * abBagName -> cBag, atomBagName -> cTag @@ -7033,7 +7033,7 @@ static HB_ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderI { *pIndexPtr = pIndex->pNext; pIndex->pNext = NULL; - SELF_ORDLSTCLEAR( ( AREAP ) pArea ); + SELF_ORDLSTCLEAR( &pArea->dbfarea.area ); pIndexPtr = &pArea->lpIndexes; while( *pIndexPtr ) pIndexPtr = &( *pIndexPtr )->pNext; @@ -7045,11 +7045,11 @@ static HB_ERRCODE hb_nsxOrderCreate( NSXAREAP pArea, LPDBORDERCREATEINFO pOrderI { pArea->dbfarea.fHasTags = HB_TRUE; if( ! pArea->dbfarea.fReadonly && ( pArea->dbfarea.dbfHeader.bHasTags & 0x01 ) == 0 ) - SELF_WRITEDBHEADER( ( AREAP ) pArea ); + SELF_WRITEDBHEADER( &pArea->dbfarea.area ); } pArea->lpCurTag = pTag; - SELF_ORDSETCOND( ( AREAP ) pArea, NULL ); - return SELF_GOTOP( ( AREAP ) pArea ); + SELF_ORDSETCOND( &pArea->dbfarea.area, NULL ); + return SELF_GOTOP( &pArea->dbfarea.area ); } static HB_ERRCODE hb_nsxOrderDestroy( NSXAREAP pArea, LPDBORDERINFO pOrderInfo ) @@ -7058,13 +7058,13 @@ static HB_ERRCODE hb_nsxOrderDestroy( NSXAREAP pArea, LPDBORDERINFO pOrderInfo ) HB_TRACE( HB_TR_DEBUG, ( "hb_nsxOrderDestroy(%p, %p)", pArea, pOrderInfo ) ); - errCode = SELF_GOCOLD( ( AREAP ) pArea ); + errCode = SELF_GOCOLD( &pArea->dbfarea.area ); if( errCode != HB_SUCCESS ) return errCode; if( pArea->dbfarea.lpdbPendingRel ) { - errCode = SELF_FORCEREL( ( AREAP ) pArea ); + errCode = SELF_FORCEREL( &pArea->dbfarea.area ); if( errCode != HB_SUCCESS ) return errCode; } @@ -7091,7 +7091,7 @@ static HB_ERRCODE hb_nsxOrderDestroy( NSXAREAP pArea, LPDBORDERINFO pOrderInfo ) { pArea->dbfarea.fHasTags = HB_FALSE; if( ! pArea->dbfarea.fReadonly && ( pArea->dbfarea.dbfHeader.bHasTags & 0x01 ) != 0 ) - SELF_WRITEDBHEADER( ( AREAP ) pArea ); + SELF_WRITEDBHEADER( &pArea->dbfarea.area ); } } else if( pIndex->fReadonly ) @@ -7280,7 +7280,7 @@ static HB_ERRCODE hb_nsxOrderInfo( NSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI return HB_SUCCESS; } - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; pTag = hb_nsxFindTag( pArea, pInfo->itmOrder, pInfo->atomBagName ); @@ -7302,11 +7302,11 @@ static HB_ERRCODE hb_nsxOrderInfo( NSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI HB_BOOL fOK = *szForExpr == 0; if( ! fOK ) { - if( SELF_COMPILE( ( AREAP ) pArea, szForExpr ) == HB_SUCCESS ) + if( SELF_COMPILE( &pArea->dbfarea.area, szForExpr ) == HB_SUCCESS ) { pForItem = pArea->dbfarea.area.valResult; pArea->dbfarea.area.valResult = NULL; - if( SELF_EVALBLOCK( ( AREAP ) pArea, pForItem ) == HB_SUCCESS ) + if( SELF_EVALBLOCK( &pArea->dbfarea.area, pForItem ) == HB_SUCCESS ) { fOK = hb_itemType( pArea->dbfarea.area.valResult ) == HB_IT_LOGICAL; hb_itemRelease( pArea->dbfarea.area.valResult ); @@ -7395,48 +7395,50 @@ static HB_ERRCODE hb_nsxOrderInfo( NSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->UniqueKey ); break; case DBOI_CUSTOM: - if( hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL ) + if( ! pTag->Template && + hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL ) { - if( hb_nsxTagLockWrite( pTag ) ) + HB_BOOL fNewVal = hb_itemGetL( pInfo->itmNewVal ); + if( pTag->Custom ? ! fNewVal : fNewVal ) { - if( ! pTag->Template ) + if( hb_nsxTagLockWrite( pTag ) ) { - HB_BOOL fNewVal = hb_itemGetL( pInfo->itmNewVal ); - if( pTag->Custom ? ! fNewVal : fNewVal ) + if( ! pTag->Template && ( pTag->Custom ? ! fNewVal : fNewVal ) ) { pTag->Custom = fNewVal; pTag->Partial = HB_TRUE; pTag->ChgOnly = HB_FALSE; pTag->HdrChanged = HB_TRUE; } + hb_nsxTagUnLockWrite( pTag ); } - hb_nsxTagUnLockWrite( pTag ); } } pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->Custom ); break; case DBOI_CHGONLY: - if( hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL ) + if( ! pTag->Custom && + hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL ) { - if( hb_nsxTagLockWrite( pTag ) ) + HB_BOOL fNewVal = hb_itemGetL( pInfo->itmNewVal ); + if( pTag->ChgOnly ? ! fNewVal : fNewVal ) { - if( ! pTag->Custom ) + if( hb_nsxTagLockWrite( pTag ) ) { - HB_BOOL fNewVal = hb_itemGetL( pInfo->itmNewVal ); - if( pTag->ChgOnly ? ! fNewVal : fNewVal ) + if( ! pTag->Custom && ( pTag->ChgOnly ? ! fNewVal : fNewVal ) ) { pTag->ChgOnly = fNewVal; pTag->Partial = HB_TRUE; pTag->HdrChanged = HB_TRUE; } + hb_nsxTagUnLockWrite( pTag ); } - hb_nsxTagUnLockWrite( pTag ); } } pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->ChgOnly ); break; case DBOI_TEMPLATE: - if( hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL && + if( pTag->Custom && ! pTag->Template && hb_itemGetL( pInfo->itmNewVal ) ) { if( hb_nsxTagLockWrite( pTag ) ) @@ -7452,7 +7454,8 @@ static HB_ERRCODE hb_nsxOrderInfo( NSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->Template ); break; case DBOI_MULTIKEY: - if( hb_itemGetL( pInfo->itmNewVal ) ) + if( pTag->Custom && ! pTag->MultiKey && + hb_itemGetL( pInfo->itmNewVal ) ) { if( hb_nsxTagLockWrite( pTag ) ) { @@ -7509,7 +7512,8 @@ static HB_ERRCODE hb_nsxOrderInfo( NSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI case DBOI_KEYADD: if( pTag->pIndex->fReadonly ) { - hb_nsxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pTag->pIndex->IndexName, 0, 0, NULL ); + hb_nsxErrorRT( pArea, EG_READONLY, EDBF_READONLY, + pTag->pIndex->IndexName, 0, 0, NULL ); return HB_FAILURE; } if( pTag->Custom ) @@ -7526,7 +7530,8 @@ static HB_ERRCODE hb_nsxOrderInfo( NSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI case DBOI_KEYDELETE: if( pTag->pIndex->fReadonly ) { - hb_nsxErrorRT( pArea, EG_READONLY, EDBF_READONLY, pTag->pIndex->IndexName, 0, 0, NULL ); + hb_nsxErrorRT( pArea, EG_READONLY, EDBF_READONLY, + pTag->pIndex->IndexName, 0, 0, NULL ); return HB_FAILURE; } if( pTag->Custom ) @@ -7665,7 +7670,7 @@ static HB_ERRCODE hb_nsxOrderInfo( NSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI case DBOI_KEYCOUNTRAW: { HB_ULONG ulRecCount = 0; - SELF_RECCOUNT( ( AREAP ) pArea, &ulRecCount ); + SELF_RECCOUNT( &pArea->dbfarea.area, &ulRecCount ); hb_itemPutNInt( pInfo->itmResult, ulRecCount ); break; } @@ -7673,10 +7678,10 @@ static HB_ERRCODE hb_nsxOrderInfo( NSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI case DBOI_KEYNORAW: /* case DBOI_RECNO: */ if( pInfo->itmNewVal && hb_itemType( pInfo->itmNewVal ) & HB_IT_NUMERIC ) - hb_itemPutL( pInfo->itmResult, SELF_GOTO( ( AREAP ) pArea, + hb_itemPutL( pInfo->itmResult, SELF_GOTO( &pArea->dbfarea.area, hb_itemGetNL( pInfo->itmNewVal ) ) == HB_SUCCESS ); else - SELF_RECID( ( AREAP ) pArea, pInfo->itmResult ); + SELF_RECID( &pArea->dbfarea.area, pInfo->itmResult ); break; case DBOI_RELKEYPOS: if( hb_itemType( pInfo->itmNewVal ) & HB_IT_NUMERIC ) @@ -7686,23 +7691,23 @@ static HB_ERRCODE hb_nsxOrderInfo( NSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI pArea->lpCurTag = NULL; if( dPos >= 1.0 ) { - SELF_GOBOTTOM( ( AREAP ) pArea ); + SELF_GOBOTTOM( &pArea->dbfarea.area ); } else if( dPos <= 0.0 ) { - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); } else { HB_ULONG ulRecCount, ulRecNo; - SELF_RECCOUNT( ( AREAP ) pArea, &ulRecCount ); + SELF_RECCOUNT( &pArea->dbfarea.area, &ulRecCount ); ulRecNo = ( HB_ULONG ) dPos * ulRecCount + 1; if( ulRecNo >= ulRecCount ) ulRecNo = ulRecCount; - if( SELF_GOTO( ( AREAP ) pArea, ulRecNo ) == HB_SUCCESS && - SELF_SKIPFILTER( ( AREAP ) pArea, 1 ) == HB_SUCCESS && + if( SELF_GOTO( &pArea->dbfarea.area, ulRecNo ) == HB_SUCCESS && + SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ) == HB_SUCCESS && pArea->dbfarea.area.fEof ) - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); } pArea->lpCurTag = pSavedTag; } @@ -7711,7 +7716,7 @@ static HB_ERRCODE hb_nsxOrderInfo( NSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI HB_ULONG ulRecNo = 0, ulRecCount = 0; double dPos = 0.0; /* resolve any pending relations */ - if( SELF_RECNO( ( AREAP ) pArea, &ulRecNo ) == HB_SUCCESS ) + if( SELF_RECNO( &pArea->dbfarea.area, &ulRecNo ) == HB_SUCCESS ) { if( ! pArea->dbfarea.fPositioned ) { @@ -7720,7 +7725,7 @@ static HB_ERRCODE hb_nsxOrderInfo( NSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI } else { - SELF_RECCOUNT( ( AREAP ) pArea, &ulRecCount ); + SELF_RECCOUNT( &pArea->dbfarea.area, &ulRecCount ); if( ulRecCount != 0 ) dPos = ( 0.5 + ulRecNo ) / ulRecCount; } @@ -7729,7 +7734,7 @@ static HB_ERRCODE hb_nsxOrderInfo( NSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI } break; case DBOI_SKIPUNIQUE: - hb_itemPutL( pInfo->itmResult, SELF_SKIP( ( AREAP ) pArea, + hb_itemPutL( pInfo->itmResult, SELF_SKIP( &pArea->dbfarea.area, pInfo->itmNewVal && HB_IS_NUMERIC( pInfo->itmNewVal ) ? hb_itemGetNL( pInfo->itmNewVal ) : 1 ) == HB_SUCCESS ); break; @@ -7741,7 +7746,7 @@ static HB_ERRCODE hb_nsxOrderInfo( NSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI case DBOI_SKIPREGEXBACK: case DBOI_FINDREC: case DBOI_FINDRECCONT: - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); hb_itemPutL( pInfo->itmResult, HB_FALSE ); break; case DBOI_ISCOND: @@ -7810,7 +7815,7 @@ static HB_ERRCODE hb_nsxCountScope( NSXAREAP pArea, void * pPtr, HB_LONG * plRec if( pPtr == NULL ) return HB_SUCCESS; - return SUPER_COUNTSCOPE( ( AREAP ) pArea, pPtr, plRecNo ); + return SUPER_COUNTSCOPE( &pArea->dbfarea.area, pPtr, plRecNo ); } static HB_ERRCODE hb_nsxOrderListAdd( NSXAREAP pArea, LPDBORDERINFO pOrderInfo ) @@ -7824,7 +7829,7 @@ static HB_ERRCODE hb_nsxOrderListAdd( NSXAREAP pArea, LPDBORDERINFO pOrderInfo ) HB_TRACE( HB_TR_DEBUG, ( "hb_nsxOrderListAdd(%p, %p)", pArea, pOrderInfo ) ); - errCode = SELF_GOCOLD( ( AREAP ) pArea ); + errCode = SELF_GOCOLD( &pArea->dbfarea.area ); if( errCode != HB_SUCCESS ) return errCode; @@ -7896,7 +7901,7 @@ static HB_ERRCODE hb_nsxOrderListAdd( NSXAREAP pArea, LPDBORDERINFO pOrderInfo ) if( ! pArea->lpCurTag && pIndex->iTags ) { pArea->lpCurTag = pIndex->lpTags[ 0 ]; - errCode = SELF_GOTOP( ( AREAP ) pArea ); + errCode = SELF_GOTOP( &pArea->dbfarea.area ); } return errCode; } @@ -7907,7 +7912,7 @@ static HB_ERRCODE hb_nsxOrderListClear( NSXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_nsxOrderListClear(%p)", pArea ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; pArea->lpCurTag = NULL; @@ -7938,7 +7943,7 @@ static HB_ERRCODE hb_nsxOrderListDelete( NSXAREAP pArea, LPDBORDERINFO pOrderInf HB_TRACE( HB_TR_DEBUG, ( "hb_nsxOrderListDelete(%p, %p)", pArea, pOrderInfo ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; hb_nsxCreateFName( pArea, hb_itemGetCPtr( pOrderInfo->atomBagName ), &fProd, @@ -8003,7 +8008,7 @@ static HB_ERRCODE hb_nsxOrderListRebuild( NSXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_nsxOrderListRebuild(%p)", pArea ) ); - errCode = SELF_GOCOLD( ( AREAP ) pArea ); + errCode = SELF_GOCOLD( &pArea->dbfarea.area ); if( errCode != HB_SUCCESS ) return errCode; @@ -8020,7 +8025,7 @@ static HB_ERRCODE hb_nsxOrderListRebuild( NSXAREAP pArea ) if( pArea->dbfarea.lpdbPendingRel ) { - errCode = SELF_FORCEREL( ( AREAP ) pArea ); + errCode = SELF_FORCEREL( &pArea->dbfarea.area ); if( errCode != HB_SUCCESS ) return errCode; } @@ -8035,7 +8040,7 @@ static HB_ERRCODE hb_nsxOrderListRebuild( NSXAREAP pArea ) if( errCode == HB_SUCCESS ) { pArea->lpCurTag = pCurrTag; - errCode = SELF_GOTOP( ( AREAP ) pArea ); + errCode = SELF_GOTOP( &pArea->dbfarea.area ); } return errCode; } diff --git a/src/rdd/dbfntx/dbfntx1.c b/src/rdd/dbfntx/dbfntx1.c index 7e01b4b1be..76035b5d5d 100644 --- a/src/rdd/dbfntx/dbfntx1.c +++ b/src/rdd/dbfntx/dbfntx1.c @@ -282,7 +282,7 @@ static HB_ERRCODE hb_ntxErrorRT( NTXAREAP pArea, hb_errPutFileName( pError, szFileName ); if( uiFlags ) hb_errPutFlags( pError, uiFlags ); - iRet = SELF_ERROR( ( AREAP ) pArea, pError ); + iRet = SELF_ERROR( &pArea->dbfarea.area, pError ); if( ! pErrorPtr ) hb_errRelease( pError ); } @@ -452,7 +452,7 @@ static LPKEYINFO hb_ntxKeyPutItem( LPKEYINFO pKey, PHB_ITEM pItem, HB_ULONG ulRe len = pTag->KeyLength; hb_cdpnDup2( hb_itemGetCPtr( pItem ), hb_itemGetCLen( pItem ), pKey->key, &len, - hb_vmCDP(), pTag->Owner->Owner->dbfarea.area.cdPage ); + hb_vmCDP(), pTag->pIndex->pArea->dbfarea.area.cdPage ); } else { @@ -527,7 +527,7 @@ static PHB_ITEM hb_ntxKeyGetItem( PHB_ITEM pItem, LPKEYINFO pKey, { HB_SIZE nLen = pTag->KeyLength; char * pszVal = hb_cdpnDup( pKey->key, &nLen, - pTag->Owner->Owner->dbfarea.area.cdPage, hb_vmCDP() ); + pTag->pIndex->pArea->dbfarea.area.cdPage, hb_vmCDP() ); pItem = hb_itemPutCLPtr( pItem, pszVal, nLen ); } else @@ -616,7 +616,7 @@ static HB_BYTE hb_ntxGetKeyType( LPTAGINFO pTag ) if( pTag->nField ) { PHB_ITEM pItem = hb_itemNew( NULL ); - SELF_GETVALUE( ( AREAP ) pTag->Owner->Owner, pTag->nField, pItem ); + SELF_GETVALUE( &pTag->pIndex->pArea->dbfarea.area, pTag->nField, pItem ); bType = hb_ntxItemType( pItem ); hb_itemRelease( pItem ); } @@ -624,8 +624,8 @@ static HB_BYTE hb_ntxGetKeyType( LPTAGINFO pTag ) { int iCurrArea = hb_rddGetCurrentWorkAreaNumber(); - if( iCurrArea != pTag->Owner->Owner->dbfarea.area.uiArea ) - hb_rddSelectWorkAreaNumber( pTag->Owner->Owner->dbfarea.area.uiArea ); + if( iCurrArea != pTag->pIndex->pArea->dbfarea.area.uiArea ) + hb_rddSelectWorkAreaNumber( pTag->pIndex->pArea->dbfarea.area.uiArea ); else iCurrArea = 0; @@ -642,14 +642,14 @@ static HB_BYTE hb_ntxGetKeyType( LPTAGINFO pTag ) */ static LPKEYINFO hb_ntxEvalKey( LPKEYINFO pKey, LPTAGINFO pTag ) { - NTXAREAP pArea = pTag->Owner->Owner; + NTXAREAP pArea = pTag->pIndex->pArea; PHB_ITEM pItem; PHB_CODEPAGE cdpTmp = hb_cdpSelect( pArea->dbfarea.area.cdPage ); if( pTag->nField ) { pItem = hb_itemNew( NULL ); - SELF_GETVALUE( ( AREAP ) pArea, pTag->nField, pItem ); + SELF_GETVALUE( &pArea->dbfarea.area, pTag->nField, pItem ); pKey = hb_ntxKeyPutItem( pKey, pItem, pArea->dbfarea.ulRecNo, pTag, HB_FALSE, NULL ); hb_itemRelease( pItem ); } @@ -688,11 +688,11 @@ static int hb_ntxValCompare( LPTAGINFO pTag, const char * val1, int len1, { if( iLimit > 0 ) { - if( HB_CDP_ISBINSORT( pTag->Owner->Owner->dbfarea.area.cdPage ) ) + if( HB_CDP_ISBINSORT( pTag->pIndex->pArea->dbfarea.area.cdPage ) ) iResult = memcmp( val1, val2, iLimit ); else return -hb_cdpcmp( val2, ( HB_SIZE ) len2, val1, ( HB_SIZE ) len1, - pTag->Owner->Owner->dbfarea.area.cdPage, 0 ); + pTag->pIndex->pArea->dbfarea.area.cdPage, 0 ); } if( iResult == 0 ) @@ -772,12 +772,12 @@ static HB_BOOL hb_ntxKeyInScope( LPTAGINFO pTag, LPKEYINFO pKey ) */ static void hb_ntxTagClearScope( LPTAGINFO pTag, HB_USHORT nScope ) { - NTXAREAP pArea = pTag->Owner->Owner; + NTXAREAP pArea = pTag->pIndex->pArea; PHB_NTXSCOPE pScope; /* resolve any pending scope relations first */ if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( pTag->fUsrDescend ) nScope = ( nScope == 0 ) ? 1 : 0; @@ -804,12 +804,12 @@ static void hb_ntxTagClearScope( LPTAGINFO pTag, HB_USHORT nScope ) */ static void hb_ntxTagSetScope( LPTAGINFO pTag, HB_USHORT nScope, PHB_ITEM pItem ) { - NTXAREAP pArea = pTag->Owner->Owner; + NTXAREAP pArea = pTag->pIndex->pArea; PHB_ITEM pScopeVal; /* resolve any pending scope relations first */ if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pScopeVal = ( hb_itemType( pItem ) == HB_IT_BLOCK ) ? hb_vmEvalBlock( pItem ) : pItem; @@ -845,12 +845,12 @@ static void hb_ntxTagSetScope( LPTAGINFO pTag, HB_USHORT nScope, PHB_ITEM pItem */ static void hb_ntxTagGetScope( LPTAGINFO pTag, HB_USHORT nScope, PHB_ITEM pItem ) { - NTXAREAP pArea = pTag->Owner->Owner; + NTXAREAP pArea = pTag->pIndex->pArea; PHB_NTXSCOPE pScope; /* resolve any pending scope relations first */ if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( pTag->fUsrDescend ) nScope = ( nScope == 0 ) ? 1 : 0; @@ -871,9 +871,9 @@ static void hb_ntxTagRefreshScope( LPTAGINFO pTag ) PHB_ITEM pItem; /* resolve any pending scope relations first */ - if( pTag->Owner->Owner->dbfarea.lpdbPendingRel && - pTag->Owner->Owner->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pTag->Owner->Owner ); + if( pTag->pIndex->pArea->dbfarea.lpdbPendingRel && + pTag->pIndex->pArea->dbfarea.lpdbPendingRel->isScoped ) + SELF_FORCEREL( &pTag->pIndex->pArea->dbfarea.area ); if( hb_itemType( pTag->top.scopeItem ) == HB_IT_BLOCK ) { @@ -896,7 +896,7 @@ static HB_BOOL hb_ntxCheckRecordScope( NTXAREAP pArea, HB_ULONG ulRec ) { HB_LONG lRecNo = ( HB_LONG ) ulRec; - if( SELF_COUNTSCOPE( ( AREAP ) pArea, NULL, &lRecNo ) == HB_SUCCESS && lRecNo == 0 ) + if( SELF_COUNTSCOPE( &pArea->dbfarea.area, NULL, &lRecNo ) == HB_SUCCESS && lRecNo == 0 ) { return HB_FALSE; } @@ -909,13 +909,13 @@ static void hb_ntxTagCheckBuffers( LPTAGINFO pTag ) LPPAGEINFO pPage; HB_ULONG i; - if( ( pTag->HdrChanged || pTag->Owner->Changed ) && ! pTag->Owner->lockWrite ) + if( ( pTag->HdrChanged || pTag->pIndex->Changed ) && ! pTag->pIndex->lockWrite ) hb_errInternal( 9301, "hb_ntxTagCheckBuffers: tag modified in unlocked index", NULL, NULL ); - for( i = 0; i < pTag->Owner->ulPages; i++ ) + for( i = 0; i < pTag->pIndex->ulPages; i++ ) { - pPage = pTag->Owner->pages[ i ]; - if( pPage->Changed && ! pTag->Owner->lockWrite ) + pPage = pTag->pIndex->pages[ i ]; + if( pPage->Changed && ! pTag->pIndex->lockWrite ) hb_errInternal( 9302, "hb_ntxTagCheckBuffers: page modified in unlocked index", NULL, NULL ); if( pPage->iUsed ) hb_errInternal( 9303, "hb_ntxTagCheckBuffers: page still allocated", NULL, NULL ); @@ -960,7 +960,7 @@ static HB_BOOL hb_ntxBlockRead( LPNTXINDEX pIndex, HB_ULONG ulBlock, void * buff if( hb_fileReadAt( pIndex->DiskFile, buffer, iSize, hb_ntxFileOffset( pIndex, ulBlock ) ) != ( HB_SIZE ) iSize ) { - hb_ntxErrorRT( pIndex->Owner, EG_READ, EDBF_READ, + hb_ntxErrorRT( pIndex->pArea, EG_READ, EDBF_READ, pIndex->IndexName, hb_fsError(), 0, NULL ); return HB_FALSE; } @@ -981,7 +981,7 @@ static HB_BOOL hb_ntxBlockWrite( LPNTXINDEX pIndex, HB_ULONG ulBlock, const void if( hb_fileWriteAt( pIndex->DiskFile, buffer, iSize, hb_ntxFileOffset( pIndex, ulBlock ) ) != ( HB_SIZE ) iSize ) { - hb_ntxErrorRT( pIndex->Owner, EG_WRITE, EDBF_WRITE, + hb_ntxErrorRT( pIndex->pArea, EG_WRITE, EDBF_WRITE, pIndex->IndexName, hb_fsError(), 0, NULL ); return HB_FALSE; } @@ -1058,7 +1058,7 @@ static HB_BOOL hb_ntxTagHeaderCheck( LPTAGINFO pTag ) if( pTag->HeadBlock ) { NTXHEADERUPDT header; - if( hb_ntxBlockRead( pTag->Owner, pTag->HeadBlock, &header, sizeof( header ) ) ) + if( hb_ntxBlockRead( pTag->pIndex, pTag->HeadBlock, &header, sizeof( header ) ) ) { pTag->Signature = HB_GET_LE_UINT16( header.type ); pTag->RootBlock = HB_GET_LE_UINT32( header.root ); @@ -1117,10 +1117,10 @@ static void hb_ntxIndexTrunc( LPNTXINDEX pIndex ) */ static LPPAGEINFO hb_ntxPageFind( LPTAGINFO pTag, HB_ULONG ulPage ) { - LPPAGEINFO * pPagePtr = pTag->Owner->pages; + LPPAGEINFO * pPagePtr = pTag->pIndex->pages; HB_ULONG u; - for( u = pTag->Owner->ulPages; u; u--, pPagePtr++ ) + for( u = pTag->pIndex->ulPages; u; u--, pPagePtr++ ) { if( *pPagePtr && ( *pPagePtr )->Page == ulPage ) return *pPagePtr; @@ -1133,7 +1133,7 @@ static LPPAGEINFO hb_ntxPageFind( LPTAGINFO pTag, HB_ULONG ulPage ) */ static LPPAGEINFO hb_ntxPageGetBuffer( LPTAGINFO pTag, HB_ULONG ulPage ) { - LPNTXINDEX pIndex = pTag->Owner; + LPNTXINDEX pIndex = pTag->pIndex; LPPAGEINFO * pPagePtr; if( pIndex->ulPages < pIndex->ulPagesDepth ) @@ -1221,9 +1221,9 @@ static LPPAGEINFO hb_ntxPageGetBuffer( LPTAGINFO pTag, HB_ULONG ulPage ) */ static void hb_ntxPageFree( LPTAGINFO pTag, LPPAGEINFO pPage ) { - hb_ntxSetKeyPage( pPage, 0, pTag->Owner->NextAvail ); - pTag->Owner->NextAvail = pPage->Page; - pTag->Owner->Changed = pPage->Changed = HB_TRUE; + hb_ntxSetKeyPage( pPage, 0, pTag->pIndex->NextAvail ); + pTag->pIndex->NextAvail = pPage->Page; + pTag->pIndex->Changed = pPage->Changed = HB_TRUE; } /* @@ -1231,7 +1231,7 @@ static void hb_ntxPageFree( LPTAGINFO pTag, LPPAGEINFO pPage ) */ static void hb_ntxPageRelease( LPTAGINFO pTag, LPPAGEINFO pPage ) { - LPNTXINDEX pIndex = pTag->Owner; + LPNTXINDEX pIndex = pTag->pIndex; if( --pPage->iUsed == 0 ) { @@ -1274,8 +1274,8 @@ static LPPAGEINFO hb_ntxPageLoad( LPTAGINFO pTag, HB_ULONG ulPage ) ulPage = pTag->RootBlock; if( ! ulPage ) { - hb_ntxErrorRT( pTag->Owner->Owner, EG_CORRUPTION, EDBF_CORRUPT, - pTag->Owner->IndexName, 0, 0, NULL ); + hb_ntxErrorRT( pTag->pIndex->pArea, EG_CORRUPTION, EDBF_CORRUPT, + pTag->pIndex->IndexName, 0, 0, NULL ); return NULL; } } @@ -1287,14 +1287,14 @@ static LPPAGEINFO hb_ntxPageLoad( LPTAGINFO pTag, HB_ULONG ulPage ) if( pPage->pNext ) pPage->pNext->pPrev = pPage->pPrev; else - pTag->Owner->pLast = pPage->pPrev; + pTag->pIndex->pLast = pPage->pPrev; if( pPage->pPrev ) { pPage->pPrev->pNext = pPage->pNext; pPage->pPrev = NULL; } else - pTag->Owner->pFirst = pPage->pNext; + pTag->pIndex->pFirst = pPage->pNext; } pPage->iUsed++; } @@ -1302,7 +1302,7 @@ static LPPAGEINFO hb_ntxPageLoad( LPTAGINFO pTag, HB_ULONG ulPage ) { pPage = hb_ntxPageGetBuffer( pTag, ulPage ); pPage->Changed = HB_FALSE; - if( ! hb_ntxBlockRead( pTag->Owner, ulPage, + if( ! hb_ntxBlockRead( pTag->pIndex, ulPage, hb_ntxPageBuffer( pPage ), NTXBLOCKSIZE ) ) { hb_ntxPageRelease( pTag, pPage ); @@ -1352,7 +1352,7 @@ static LPPAGEINFO hb_ntxPageNew( LPTAGINFO pTag, HB_BOOL fNull ) { LPPAGEINFO pPage; - if( pTag->Owner->NextAvail != 0 ) + if( pTag->pIndex->NextAvail != 0 ) { /* Handling of a pool of empty pages. @@ -1363,7 +1363,7 @@ static LPPAGEINFO hb_ntxPageNew( LPTAGINFO pTag, HB_BOOL fNull ) in the page - it is done here now in such a way. = Alexander Kresin = */ - pPage = hb_ntxPageLoad( pTag, pTag->Owner->NextAvail ); + pPage = hb_ntxPageLoad( pTag, pTag->pIndex->NextAvail ); if( ! pPage ) return NULL; /* @@ -1375,12 +1375,12 @@ static LPPAGEINFO hb_ntxPageNew( LPTAGINFO pTag, HB_BOOL fNull ) #if 0 if( pPage->uiKeys != 0 ) { - hb_ntxErrorRT( pTag->Owner->Owner, EG_CORRUPTION, EDBF_CORRUPT, - pTag->Owner->IndexName, 0, 0, NULL ); + hb_ntxErrorRT( pTag->pIndex->pArea, EG_CORRUPTION, EDBF_CORRUPT, + pTag->pIndex->IndexName, 0, 0, NULL ); return NULL; } #endif - pTag->Owner->NextAvail = hb_ntxGetKeyPage( pPage, 0 ); + pTag->pIndex->NextAvail = hb_ntxGetKeyPage( pPage, 0 ); #if defined( HB_NTX_NOMULTITAG ) hb_ntxSetKeyPage( pPage, 0, 0 ); pPage->uiKeys = 0; @@ -1390,10 +1390,10 @@ static LPPAGEINFO hb_ntxPageNew( LPTAGINFO pTag, HB_BOOL fNull ) } else { - pPage = hb_ntxPageGetBuffer( pTag, fNull ? 0 : hb_ntxPageAlloc( pTag->Owner ) ); + pPage = hb_ntxPageGetBuffer( pTag, fNull ? 0 : hb_ntxPageAlloc( pTag->pIndex ) ); hb_ntxPageInit( pTag, pPage ); } - pTag->Owner->Changed = pPage->Changed = HB_TRUE; + pTag->pIndex->Changed = pPage->Changed = HB_TRUE; return pPage; } @@ -1408,7 +1408,7 @@ static void hb_ntxPageAddFree( LPTAGINFO pTag, HB_ULONG ulPage ) pPage->Changed = HB_TRUE; hb_ntxPageInit( pTag, pPage ); hb_ntxPageFree( pTag, pPage ); - hb_ntxPageSave( pTag->Owner, pPage ); + hb_ntxPageSave( pTag->pIndex, pPage ); hb_ntxPageRelease( pTag, pPage ); } @@ -1446,7 +1446,7 @@ static LPTAGINFO hb_ntxTagNew( LPNTXINDEX pIndex, memset( pTag, 0, sizeof( TAGINFO ) ); pTag->TagName = hb_strndup( szTagName, NTX_MAX_TAGNAME ); pTag->fTagName = fTagName; - pTag->Owner = pIndex; + pTag->pIndex = pIndex; if( szKeyExpr ) { pTag->KeyExpr = hb_strndup( szKeyExpr, NTX_MAX_EXP ); @@ -1455,14 +1455,14 @@ static LPTAGINFO hb_ntxTagNew( LPNTXINDEX pIndex, { pTag->ForExpr = hb_strndup( szForExpr, NTX_MAX_EXP ); } - pTag->nField = hb_rddFieldExpIndex( ( AREAP ) pIndex->Owner, pTag->KeyExpr ); + pTag->nField = hb_rddFieldExpIndex( &pIndex->pArea->dbfarea.area, pTag->KeyExpr ); pTag->pKeyItem = pKeyExpr; pTag->pForItem = pForExpr; pTag->AscendKey = fAscendKey; pTag->fUsrDescend = ! pTag->AscendKey; pTag->UniqueKey = fUnique; pTag->Custom = fCustom; - pTag->MultiKey = fCustom && DBFAREA_DATA( &pIndex->Owner->dbfarea )->fMultiKey; + pTag->MultiKey = fCustom && DBFAREA_DATA( &pIndex->pArea->dbfarea )->fMultiKey; pTag->KeyType = bKeyType; pTag->KeyLength = uiKeyLen; pTag->KeyDec = uiKeyDec; @@ -1488,8 +1488,8 @@ static LPTAGINFO hb_ntxTagNew( LPNTXINDEX pIndex, */ static void hb_ntxTagFree( LPTAGINFO pTag ) { - if( pTag == pTag->Owner->Owner->lpCurTag ) - pTag->Owner->Owner->lpCurTag = NULL; + if( pTag == pTag->pIndex->pArea->lpCurTag ) + pTag->pIndex->pArea->lpCurTag = NULL; hb_xfree( pTag->TagName ); if( pTag->KeyExpr ) hb_xfree( pTag->KeyExpr ); @@ -1514,7 +1514,7 @@ static void hb_ntxTagFree( LPTAGINFO pTag ) */ static void hb_ntxTagDelete( LPTAGINFO pTag ) { - LPNTXINDEX pIndex = pTag->Owner; + LPNTXINDEX pIndex = pTag->pIndex; int i; for( i = 0; i < pIndex->iTags; i++ ) @@ -1532,7 +1532,7 @@ static void hb_ntxTagDelete( LPTAGINFO pTag ) } } hb_ntxTagFree( pTag ); - pIndex->Owner->fSetTagNumbers = HB_TRUE; + pIndex->pArea->fSetTagNumbers = HB_TRUE; } /* @@ -1550,7 +1550,7 @@ static HB_ERRCODE hb_ntxTagAdd( LPNTXINDEX pIndex, LPTAGINFO pTag ) pIndex->lpTags = ( LPTAGINFO * ) hb_xgrab( sizeof( LPTAGINFO ) ); pIndex->lpTags[ pIndex->iTags++ ] = pTag; - pIndex->Owner->fSetTagNumbers = HB_TRUE; + pIndex->pArea->fSetTagNumbers = HB_TRUE; return HB_SUCCESS; } @@ -1574,20 +1574,20 @@ static LPTAGINFO hb_ntxTagLoad( LPNTXINDEX pIndex, HB_ULONG ulBlock, lpNTX->key_expr[ 0 ] < 0x20 ) return NULL; - if( SELF_COMPILE( ( AREAP ) pIndex->Owner, ( const char * ) lpNTX->key_expr ) == HB_FAILURE ) + if( SELF_COMPILE( &pIndex->pArea->dbfarea.area, ( const char * ) lpNTX->key_expr ) == HB_FAILURE ) return NULL; - pKeyExp = pIndex->Owner->dbfarea.area.valResult; - pIndex->Owner->dbfarea.area.valResult = NULL; + pKeyExp = pIndex->pArea->dbfarea.area.valResult; + pIndex->pArea->dbfarea.area.valResult = NULL; if( usType & NTX_FLAG_FORITEM && lpNTX->for_expr[ 0 ] >= 0x20 ) { - if( SELF_COMPILE( ( AREAP ) pIndex->Owner, ( const char * ) lpNTX->for_expr ) == HB_FAILURE ) + if( SELF_COMPILE( &pIndex->pArea->dbfarea.area, ( const char * ) lpNTX->for_expr ) == HB_FAILURE ) { hb_vmDestroyBlockOrMacro( pKeyExp ); return NULL; } - pForExp = pIndex->Owner->dbfarea.area.valResult; - pIndex->Owner->dbfarea.area.valResult = NULL; + pForExp = pIndex->pArea->dbfarea.area.valResult; + pIndex->pArea->dbfarea.area.valResult = NULL; } fName = ! pIndex->Compound && lpNTX->tag_name[ 0 ] >= 0x20; pTag = hb_ntxTagNew( pIndex, @@ -1619,15 +1619,15 @@ static LPTAGINFO hb_ntxTagLoad( LPNTXINDEX pIndex, HB_ULONG ulBlock, /* TODO: this breaks unlocking !!! */ if( usType & NTX_FLAG_LARGEFILE ) { - pIndex->Owner->dbfarea.bLockType = DB_DBFLOCK_HB64; + pIndex->pArea->dbfarea.bLockType = DB_DBFLOCK_HB64; } else if( usType & NTX_FLAG_EXTLOCK ) { - pIndex->Owner->dbfarea.bLockType = DB_DBFLOCK_CLIPPER2; + pIndex->pArea->dbfarea.bLockType = DB_DBFLOCK_CLIPPER2; } - else if( ! pIndex->Owner->dbfarea.bLockType ) + else if( ! pIndex->pArea->dbfarea.bLockType ) { - pIndex->Owner->dbfarea.bLockType = usType & NTX_FLAG_EXTLOCK ? + pIndex->pArea->dbfarea.bLockType = usType & NTX_FLAG_EXTLOCK ? DB_DBFLOCK_CLIPPER2 : DB_DBFLOCK_CLIPPER; } } @@ -1706,7 +1706,7 @@ static HB_ULONG hb_ntxIndexTagFind( LPCTXHEADER lpCTX, const char * szTagName ) */ static HB_ERRCODE hb_ntxTagHeaderSave( LPTAGINFO pTag ) { - LPNTXINDEX pIndex = pTag->Owner; + LPNTXINDEX pIndex = pTag->pIndex; NTXHEADER Header; int iSize = NTX_ROOTHEAD_HEADSIZE, type, version = 0, iLen; HB_ULONG next = 0; @@ -1737,7 +1737,7 @@ static HB_ERRCODE hb_ntxTagHeaderSave( LPTAGINFO pTag ) type = NTX_FLAG_DEFALUT | ( pTag->ForExpr ? NTX_FLAG_FORITEM : 0 ) | ( pTag->Partial ? NTX_FLAG_PARTIAL | NTX_FLAG_FORITEM : 0 ) | - ( pIndex->Owner->dbfarea.bLockType == DB_DBFLOCK_CLIPPER2 ? NTX_FLAG_EXTLOCK : 0 ) | + ( pIndex->pArea->dbfarea.bLockType == DB_DBFLOCK_CLIPPER2 ? NTX_FLAG_EXTLOCK : 0 ) | ( pTag->Partial ? NTX_FLAG_PARTIAL | NTX_FLAG_FORITEM : 0 ) | /* non CLipper flags */ ( pTag->Custom ? NTX_FLAG_CUSTOM : 0 ) | @@ -1805,7 +1805,7 @@ static LPNTXINDEX hb_ntxIndexNew( NTXAREAP pArea ) memset( pIndex, 0, sizeof( NTXINDEX ) ); pIndex->DiskFile = NULL; - pIndex->Owner = pArea; + pIndex->pArea = pArea; return pIndex; } @@ -1836,7 +1836,7 @@ static void hb_ntxIndexFree( LPNTXINDEX pIndex ) hb_xfree( pIndex->IndexName ); if( pIndex->RealName ) hb_xfree( pIndex->RealName ); - pIndex->Owner->fSetTagNumbers = HB_TRUE; + pIndex->pArea->fSetTagNumbers = HB_TRUE; hb_xfree( pIndex ); } @@ -1945,7 +1945,7 @@ static HB_ERRCODE hb_ntxIndexHeaderRead( LPNTXINDEX pIndex ) if( ( type & NTX_FLAG_COMPOUND ) != 0 ) { #if defined( HB_NTX_NOMULTITAG ) - hb_ntxErrorRT( pIndex->Owner, EG_CORRUPTION, EDBF_CORRUPT, + hb_ntxErrorRT( pIndex->pArea, EG_CORRUPTION, EDBF_CORRUPT, pIndex->IndexName, 0, 0, NULL ); return HB_FAILURE; #else @@ -1983,7 +1983,7 @@ static HB_ERRCODE hb_ntxIndexHeaderRead( LPNTXINDEX pIndex ) if( pIndex->Compound ) { - hb_ntxErrorRT( pIndex->Owner, EG_CORRUPTION, EDBF_CORRUPT, + hb_ntxErrorRT( pIndex->pArea, EG_CORRUPTION, EDBF_CORRUPT, pIndex->IndexName, 0, 0, NULL ); return HB_FAILURE; } @@ -2053,14 +2053,14 @@ static HB_BOOL hb_ntxIndexLockRead( LPNTXINDEX pIndex ) HB_BOOL fOK; if( pIndex->lockRead > 0 || pIndex->lockWrite > 0 || ! pIndex->fShared || - HB_DIRTYREAD( &pIndex->Owner->dbfarea ) ) + HB_DIRTYREAD( &pIndex->pArea->dbfarea ) ) { fOK = HB_TRUE; pIndex->lockRead++; } else { - fOK = hb_dbfLockIdxFile( &pIndex->Owner->dbfarea, pIndex->DiskFile, + fOK = hb_dbfLockIdxFile( &pIndex->pArea->dbfarea, pIndex->DiskFile, FL_LOCK | FLX_SHARED | FLX_WAIT, HB_FALSE, &pIndex->lockData ); /* if fOK then check VERSION field in NTXHEADER and @@ -2072,14 +2072,14 @@ static HB_BOOL hb_ntxIndexLockRead( LPNTXINDEX pIndex ) if( hb_ntxIndexHeaderRead( pIndex ) != HB_SUCCESS ) { pIndex->lockRead--; - hb_dbfLockIdxFile( &pIndex->Owner->dbfarea, pIndex->DiskFile, + hb_dbfLockIdxFile( &pIndex->pArea->dbfarea, pIndex->DiskFile, FL_UNLOCK, HB_FALSE, &pIndex->lockData ); return HB_FALSE; } } } if( ! fOK ) - hb_ntxErrorRT( pIndex->Owner, EG_LOCK, EDBF_LOCK, + hb_ntxErrorRT( pIndex->pArea, EG_LOCK, EDBF_LOCK, pIndex->IndexName, hb_fsError(), 0, NULL ); return fOK; @@ -2105,7 +2105,7 @@ static HB_BOOL hb_ntxIndexLockWrite( LPNTXINDEX pIndex, HB_BOOL fCheck ) } else { - fOK = hb_dbfLockIdxFile( &pIndex->Owner->dbfarea, pIndex->DiskFile, + fOK = hb_dbfLockIdxFile( &pIndex->pArea->dbfarea, pIndex->DiskFile, FL_LOCK | FLX_EXCLUSIVE | FLX_WAIT, HB_FALSE, &pIndex->lockData ); /* if fOK then check VERSION field in NTXHEADER and @@ -2117,14 +2117,14 @@ static HB_BOOL hb_ntxIndexLockWrite( LPNTXINDEX pIndex, HB_BOOL fCheck ) if( fCheck && hb_ntxIndexHeaderRead( pIndex ) != HB_SUCCESS ) { pIndex->lockWrite--; - hb_dbfLockIdxFile( &pIndex->Owner->dbfarea, pIndex->DiskFile, + hb_dbfLockIdxFile( &pIndex->pArea->dbfarea, pIndex->DiskFile, FL_UNLOCK, HB_FALSE, &pIndex->lockData ); return HB_FALSE; } } } if( ! fOK ) - hb_ntxErrorRT( pIndex->Owner, EG_LOCK, EDBF_LOCK, + hb_ntxErrorRT( pIndex->pArea, EG_LOCK, EDBF_LOCK, pIndex->IndexName, hb_fsError(), 0, NULL ); return fOK; @@ -2148,14 +2148,14 @@ static HB_BOOL hb_ntxIndexUnLockRead( LPNTXINDEX pIndex ) hb_errInternal( 9106, "hb_ntxIndexUnLockRead: bad count of locks.", NULL, NULL ); if( pIndex->lockRead || pIndex->lockWrite || ! pIndex->fShared || - HB_DIRTYREAD( &pIndex->Owner->dbfarea ) ) + HB_DIRTYREAD( &pIndex->pArea->dbfarea ) ) { fOK = HB_TRUE; } else { pIndex->fValidHeader = HB_FALSE; - fOK = hb_dbfLockIdxFile( &pIndex->Owner->dbfarea, pIndex->DiskFile, + fOK = hb_dbfLockIdxFile( &pIndex->pArea->dbfarea, pIndex->DiskFile, FL_UNLOCK, HB_FALSE, &pIndex->lockData ); } if( ! fOK ) @@ -2193,7 +2193,7 @@ static HB_BOOL hb_ntxIndexUnLockWrite( LPNTXINDEX pIndex ) { hb_fileFlush( pIndex->DiskFile, HB_TRUE ); pIndex->fValidHeader = HB_FALSE; - fOK = hb_dbfLockIdxFile( &pIndex->Owner->dbfarea, pIndex->DiskFile, + fOK = hb_dbfLockIdxFile( &pIndex->pArea->dbfarea, pIndex->DiskFile, FL_UNLOCK, HB_FALSE, &pIndex->lockData ); } if( ! fOK ) @@ -2209,14 +2209,14 @@ static HB_BOOL hb_ntxTagLockRead( LPTAGINFO pTag ) { HB_BOOL fOK = HB_FALSE; - if( hb_ntxIndexLockRead( pTag->Owner ) ) + if( hb_ntxIndexLockRead( pTag->pIndex ) ) { fOK = hb_ntxTagHeaderCheck( pTag ); if( ! fOK ) { - hb_ntxIndexUnLockRead( pTag->Owner ); - hb_ntxErrorRT( pTag->Owner->Owner, EG_CORRUPTION, EDBF_CORRUPT, - pTag->Owner->IndexName, 0, 0, NULL ); + hb_ntxIndexUnLockRead( pTag->pIndex ); + hb_ntxErrorRT( pTag->pIndex->pArea, EG_CORRUPTION, EDBF_CORRUPT, + pTag->pIndex->IndexName, 0, 0, NULL ); } } return fOK; @@ -2229,14 +2229,14 @@ static HB_BOOL hb_ntxTagLockWrite( LPTAGINFO pTag ) { HB_BOOL fOK = HB_FALSE; - if( hb_ntxIndexLockWrite( pTag->Owner, HB_TRUE ) ) + if( hb_ntxIndexLockWrite( pTag->pIndex, HB_TRUE ) ) { fOK = hb_ntxTagHeaderCheck( pTag ); if( ! fOK ) { - hb_ntxIndexUnLockWrite( pTag->Owner ); - hb_ntxErrorRT( pTag->Owner->Owner, EG_CORRUPTION, EDBF_CORRUPT, - pTag->Owner->IndexName, 0, 0, NULL ); + hb_ntxIndexUnLockWrite( pTag->pIndex ); + hb_ntxErrorRT( pTag->pIndex->pArea, EG_CORRUPTION, EDBF_CORRUPT, + pTag->pIndex->IndexName, 0, 0, NULL ); } } return fOK; @@ -2247,7 +2247,7 @@ static HB_BOOL hb_ntxTagLockWrite( LPTAGINFO pTag ) */ static HB_BOOL hb_ntxTagUnLockRead( LPTAGINFO pTag ) { - return hb_ntxIndexUnLockRead( pTag->Owner ); + return hb_ntxIndexUnLockRead( pTag->pIndex ); } /* @@ -2255,7 +2255,7 @@ static HB_BOOL hb_ntxTagUnLockRead( LPTAGINFO pTag ) */ static HB_BOOL hb_ntxTagUnLockWrite( LPTAGINFO pTag ) { - return hb_ntxIndexUnLockWrite( pTag->Owner ); + return hb_ntxIndexUnLockWrite( pTag->pIndex ); } /* @@ -3226,7 +3226,7 @@ static void hb_ntxTagSkipFilter( LPTAGINFO pTag, HB_BOOL fForward ) fBack = pTag->fUsrDescend == pTag->AscendKey ? fForward : ! fForward; - while( ! fEof && ! hb_ntxCheckRecordScope( pTag->Owner->Owner, + while( ! fEof && ! hb_ntxCheckRecordScope( pTag->pIndex->pArea, pTag->CurKeyInfo->Xtra ) ) { if( fBack ) @@ -3265,7 +3265,7 @@ static void hb_ntxTagGoTop( LPTAGINFO pTag ) pTag->TagEOF = pTag->CurKeyInfo->Xtra == 0 || ! hb_ntxKeyInScope( pTag, pTag->CurKeyInfo ); - if( ! pTag->TagEOF && pTag->Owner->Owner->dbfarea.area.dbfi.fFilter ) + if( ! pTag->TagEOF && pTag->pIndex->pArea->dbfarea.area.dbfi.fFilter ) hb_ntxTagSkipFilter( pTag, HB_TRUE ); pTag->TagBOF = pTag->TagEOF; @@ -3288,7 +3288,7 @@ static void hb_ntxTagGoBottom( LPTAGINFO pTag ) pTag->TagBOF = pTag->CurKeyInfo->Xtra == 0 || ! hb_ntxKeyInScope( pTag, pTag->CurKeyInfo ); - if( ! pTag->TagBOF && pTag->Owner->Owner->dbfarea.area.dbfi.fFilter ) + if( ! pTag->TagBOF && pTag->pIndex->pArea->dbfarea.area.dbfi.fFilter ) hb_ntxTagSkipFilter( pTag, HB_FALSE ); pTag->TagEOF = pTag->TagBOF; @@ -3313,7 +3313,7 @@ static void hb_ntxTagSkipNext( LPTAGINFO pTag ) if( ! pTag->TagEOF && ! hb_ntxKeyInScope( pTag, pTag->CurKeyInfo ) ) pTag->TagEOF = HB_TRUE; - if( ! pTag->TagEOF && pTag->Owner->Owner->dbfarea.area.dbfi.fFilter ) + if( ! pTag->TagEOF && pTag->pIndex->pArea->dbfarea.area.dbfi.fFilter ) hb_ntxTagSkipFilter( pTag, HB_TRUE ); } @@ -3336,7 +3336,7 @@ static void hb_ntxTagSkipPrev( LPTAGINFO pTag ) if( ! pTag->TagBOF && ! hb_ntxKeyInScope( pTag, pTag->CurKeyInfo ) ) pTag->TagBOF = HB_TRUE; - if( ! pTag->TagBOF && pTag->Owner->Owner->dbfarea.area.dbfi.fFilter ) + if( ! pTag->TagBOF && pTag->pIndex->pArea->dbfarea.area.dbfi.fFilter ) hb_ntxTagSkipFilter( pTag, HB_FALSE ); } @@ -3446,10 +3446,10 @@ static void hb_ntxTagGoToRelKeyPos( LPTAGINFO pTag, double dPos ) */ static HB_BOOL hb_ntxCurKeyRefresh( LPTAGINFO pTag ) { - NTXAREAP pArea = pTag->Owner->Owner; + NTXAREAP pArea = pTag->pIndex->pArea; if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( ! pArea->dbfarea.fPositioned ) { @@ -3484,7 +3484,7 @@ static HB_BOOL hb_ntxCurKeyRefresh( LPTAGINFO pTag ) * update it, create the new key and if differs seek again */ if( pTag->CurKeyInfo->Xtra != pArea->dbfarea.ulRecNo && fValidBuf ) { - SELF_GOTO( ( AREAP ) pArea, pArea->dbfarea.ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, pArea->dbfarea.ulRecNo ); memcpy( buf, pKey->key, pTag->KeyLength ); pKey = hb_ntxEvalKey( pKey, pTag ); if( memcmp( buf, pKey->key, pTag->KeyLength ) != 0 ) @@ -3529,7 +3529,7 @@ static HB_BOOL hb_ntxTagPagesFree( LPTAGINFO pTag, HB_ULONG ulPage ) pPage->uiKeys = 0; hb_ntxPageFree( pTag, pPage ); if( ! pPage->pPrev ) - fOK = hb_ntxPageSave( pTag->Owner, pPage ); + fOK = hb_ntxPageSave( pTag->pIndex, pPage ); } hb_ntxPageRelease( pTag, pPage ); @@ -3549,8 +3549,8 @@ static HB_ERRCODE hb_ntxTagSpaceFree( LPTAGINFO pTag ) return HB_FAILURE; } hb_ntxPageAddFree( pTag, pTag->HeadBlock ); - hb_ntxIndexTagDel( pTag->Owner, pTag->TagName ); - pTag->Owner->Changed = HB_TRUE; + hb_ntxIndexTagDel( pTag->pIndex, pTag->TagName ); + pTag->pIndex->Changed = HB_TRUE; } hb_ntxTagDelete( pTag ); return HB_SUCCESS; @@ -3581,7 +3581,7 @@ static void hb_ntxCreateFName( NTXAREAP pArea, const char * szBagName, HB_BOOL * DBORDERINFO pExtInfo; memset( &pExtInfo, 0, sizeof( pExtInfo ) ); pExt = pExtInfo.itmResult = hb_itemPutC( NULL, NULL ); - if( SELF_ORDINFO( ( AREAP ) pArea, DBOI_BAGEXT, &pExtInfo ) == HB_SUCCESS && + if( SELF_ORDINFO( &pArea->dbfarea.area, DBOI_BAGEXT, &pExtInfo ) == HB_SUCCESS && hb_itemGetCLen( pExt ) > 0 ) { pFileName->szExtension = hb_itemGetCPtr( pExt ); @@ -3606,7 +3606,7 @@ static void hb_ntxCreateFName( NTXAREAP pArea, const char * szBagName, HB_BOOL * DBORDERINFO pExtInfo; memset( &pExtInfo, 0, sizeof( pExtInfo ) ); pExt = pExtInfo.itmResult = hb_itemPutC( NULL, NULL ); - if( SELF_ORDINFO( ( AREAP ) pArea, DBOI_BAGEXT, &pExtInfo ) == HB_SUCCESS ) + if( SELF_ORDINFO( &pArea->dbfarea.area, DBOI_BAGEXT, &pExtInfo ) == HB_SUCCESS ) { *fProd = hb_stricmp( pFileName->szExtension, hb_itemGetCPtr( pExt ) ) == 0; @@ -3793,8 +3793,8 @@ static HB_ULONG hb_ntxOrdKeyCount( LPTAGINFO pTag ) { HB_ULONG ulKeyCount = 0; - if( ! pTag->Owner->fShared && pTag->keyCount && - ! pTag->Owner->Owner->dbfarea.area.dbfi.fFilter ) + if( ! pTag->pIndex->fShared && pTag->keyCount && + ! pTag->pIndex->pArea->dbfarea.area.dbfi.fFilter ) return pTag->keyCount; if( hb_ntxTagLockRead( pTag ) ) @@ -3802,7 +3802,7 @@ static HB_ULONG hb_ntxOrdKeyCount( LPTAGINFO pTag ) hb_ntxTagRefreshScope( pTag ); if( pTag->top.scopeKeyLen || pTag->bottom.scopeKeyLen || - pTag->Owner->Owner->dbfarea.area.dbfi.fFilter ) + pTag->pIndex->pArea->dbfarea.area.dbfi.fFilter ) { hb_ntxTagGoTop( pTag ); while( ! pTag->TagEOF ) @@ -3815,7 +3815,7 @@ static HB_ULONG hb_ntxOrdKeyCount( LPTAGINFO pTag ) { ulKeyCount = hb_ntxPageCountKeys( pTag, 0 ); } - if( ! pTag->Owner->Owner->dbfarea.area.dbfi.fFilter ) + if( ! pTag->pIndex->pArea->dbfarea.area.dbfi.fFilter ) pTag->keyCount = ulKeyCount; hb_ntxTagUnLockRead( pTag ); } @@ -3835,7 +3835,7 @@ static HB_ULONG hb_ntxOrdKeyNo( LPTAGINFO pTag ) if( hb_ntxCurKeyRefresh( pTag ) ) { if( pTag->top.scopeKeyLen || pTag->bottom.scopeKeyLen || - pTag->Owner->Owner->dbfarea.area.dbfi.fFilter ) + pTag->pIndex->pArea->dbfarea.area.dbfi.fFilter ) { if( hb_ntxKeyInScope( pTag, pTag->CurKeyInfo ) ) { @@ -3895,7 +3895,7 @@ static HB_ULONG hb_ntxOrdKeyNo( LPTAGINFO pTag ) */ static HB_BOOL hb_ntxOrdKeyGoto( LPTAGINFO pTag, HB_ULONG ulKeyNo ) { - NTXAREAP pArea = pTag->Owner->Owner; + NTXAREAP pArea = pTag->pIndex->pArea; if( ! ulKeyNo || ! hb_ntxTagLockRead( pTag ) ) return HB_FALSE; @@ -3909,14 +3909,14 @@ static HB_BOOL hb_ntxOrdKeyGoto( LPTAGINFO pTag, HB_ULONG ulKeyNo ) if( pTag->TagEOF ) { - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); } else { LPTAGINFO pSavedTag = pArea->lpCurTag; pArea->lpCurTag = pTag; - if( SELF_GOTO( ( AREAP ) pArea, pTag->CurKeyInfo->Xtra ) == HB_SUCCESS ) - SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + if( SELF_GOTO( &pArea->dbfarea.area, pTag->CurKeyInfo->Xtra ) == HB_SUCCESS ) + SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); pArea->lpCurTag = pSavedTag; } hb_ntxTagUnLockRead( pTag ); @@ -3929,14 +3929,14 @@ static HB_BOOL hb_ntxOrdKeyGoto( LPTAGINFO pTag, HB_ULONG ulKeyNo ) static double hb_ntxOrdGetRelKeyPos( LPTAGINFO pTag ) { double dPos = 0.0, dStart = 0.0, dStop = 1.0, dFact = 0.0000000000001; - HB_BOOL fOK = HB_TRUE, fFilter = pTag->Owner->Owner->dbfarea.area.dbfi.fFilter; + HB_BOOL fOK = HB_TRUE, fFilter = pTag->pIndex->pArea->dbfarea.area.dbfi.fFilter; if( ! hb_ntxTagLockRead( pTag ) ) return HB_FALSE; hb_ntxTagRefreshScope( pTag ); - pTag->Owner->Owner->dbfarea.area.dbfi.fFilter = HB_FALSE; + pTag->pIndex->pArea->dbfarea.area.dbfi.fFilter = HB_FALSE; if( pTag->fUsrDescend ? pTag->bottom.scopeKeyLen : pTag->top.scopeKeyLen ) { hb_ntxTagGoTop( pTag ); @@ -3953,7 +3953,7 @@ static double hb_ntxOrdGetRelKeyPos( LPTAGINFO pTag ) else dStop = hb_ntxTagCountRelKeyPos( pTag ); } - pTag->Owner->Owner->dbfarea.area.dbfi.fFilter = fFilter; + pTag->pIndex->pArea->dbfarea.area.dbfi.fFilter = fFilter; if( fOK ) { @@ -3986,7 +3986,7 @@ static void hb_ntxOrdSetRelKeyPos( LPTAGINFO pTag, double dPos ) { if( hb_ntxTagLockRead( pTag ) ) { - NTXAREAP pArea = pTag->Owner->Owner; + NTXAREAP pArea = pTag->pIndex->pArea; double dStart = 0.0, dStop = 1.0, dFact = 0.0000000000001; HB_BOOL fOK = HB_TRUE, fFilter = pArea->dbfarea.area.dbfi.fFilter; HB_BOOL fForward = HB_TRUE, fTop = HB_FALSE; @@ -4039,7 +4039,7 @@ static void hb_ntxOrdSetRelKeyPos( LPTAGINFO pTag, double dPos ) } if( ! fOK ) { - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); } else { @@ -4054,26 +4054,26 @@ static void hb_ntxOrdSetRelKeyPos( LPTAGINFO pTag, double dPos ) hb_ntxTagGoTop( pTag ); if( pTag->CurKeyInfo->Xtra != 0 ) { - if( SELF_GOTO( ( AREAP ) pArea, pTag->CurKeyInfo->Xtra ) == HB_SUCCESS ) + if( SELF_GOTO( &pArea->dbfarea.area, pTag->CurKeyInfo->Xtra ) == HB_SUCCESS ) { - SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); if( pArea->dbfarea.area.fEof && ! fTop ) fForward = HB_FALSE; } } else if( fTop ) - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); else fForward = HB_FALSE; } if( ! fForward ) { hb_ntxTagGoBottom( pTag ); - if( SELF_GOTO( ( AREAP ) pArea, pTag->CurKeyInfo->Xtra ) == HB_SUCCESS && + if( SELF_GOTO( &pArea->dbfarea.area, pTag->CurKeyInfo->Xtra ) == HB_SUCCESS && pTag->CurKeyInfo->Xtra != 0 ) { pArea->dbfarea.area.fBottom = HB_TRUE; - SELF_SKIPFILTER( ( AREAP ) pArea, -1 ); + SELF_SKIPFILTER( &pArea->dbfarea.area, -1 ); } } pArea->lpCurTag = pSavedTag; @@ -4087,11 +4087,11 @@ static void hb_ntxOrdSetRelKeyPos( LPTAGINFO pTag, double dPos ) */ static HB_BOOL hb_ntxOrdSkipUnique( LPTAGINFO pTag, HB_LONG lToSkip ) { - NTXAREAP pArea = pTag->Owner->Owner; + NTXAREAP pArea = pTag->pIndex->pArea; HB_BOOL fOut = HB_FALSE, fEof = HB_FALSE, fForward = ( lToSkip >= 0 ); if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pArea->dbfarea.area.fTop = pArea->dbfarea.area.fBottom = HB_FALSE; @@ -4139,10 +4139,10 @@ static HB_BOOL hb_ntxOrdSkipUnique( LPTAGINFO pTag, HB_LONG lToSkip ) } hb_ntxTagUnLockRead( pTag ); - if( SELF_GOTO( ( AREAP ) pArea, fEof ? 0 : pTag->CurKeyInfo->Xtra ) == HB_SUCCESS && + if( SELF_GOTO( &pArea->dbfarea.area, fEof ? 0 : pTag->CurKeyInfo->Xtra ) == HB_SUCCESS && ! fEof ) { - SELF_SKIPFILTER( ( AREAP ) pArea, ( fForward || fOut ) ? 1 : -1 ); + SELF_SKIPFILTER( &pArea->dbfarea.area, ( fForward || fOut ) ? 1 : -1 ); if( ! fForward && fOut ) pArea->dbfarea.area.fBof = HB_TRUE; } @@ -4164,20 +4164,20 @@ static HB_BOOL hb_ntxOrdSkipUnique( LPTAGINFO pTag, HB_LONG lToSkip ) */ static HB_BOOL hb_ntxOrdSkipEval( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pEval ) { - NTXAREAP pArea = pTag->Owner->Owner; + NTXAREAP pArea = pTag->pIndex->pArea; HB_BOOL fFound = HB_FALSE; HB_TRACE( HB_TR_DEBUG, ( "hb_ntxOrdSkipEval(%p, %d, %p)", pTag, fForward, pEval ) ); if( hb_itemType( pEval ) != HB_IT_BLOCK ) { - if( SELF_SKIP( ( AREAP ) pArea, fForward ? 1 : -1 ) != HB_SUCCESS ) + if( SELF_SKIP( &pArea->dbfarea.area, fForward ? 1 : -1 ) != HB_SUCCESS ) return HB_FALSE; return fForward ? ! pArea->dbfarea.area.fEof : ! pArea->dbfarea.area.fBof; } if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pArea->dbfarea.area.fTop = pArea->dbfarea.area.fBottom = HB_FALSE; @@ -4196,12 +4196,12 @@ static HB_BOOL hb_ntxOrdSkipEval( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pEv while( fForward ? ! pTag->TagEOF : ! pTag->TagBOF ) { - if( SELF_GOTO( ( AREAP ) pArea, pTag->CurKeyInfo->Xtra ) != HB_SUCCESS ) + if( SELF_GOTO( &pArea->dbfarea.area, pTag->CurKeyInfo->Xtra ) != HB_SUCCESS ) break; if( hb_ntxEvalSeekCond( pTag, pEval ) ) { HB_ULONG ulRecNo = pArea->dbfarea.ulRecNo; - if( SELF_SKIPFILTER( ( AREAP ) pArea, fForward ? 1 : -1 ) != HB_SUCCESS || + if( SELF_SKIPFILTER( &pArea->dbfarea.area, fForward ? 1 : -1 ) != HB_SUCCESS || pArea->dbfarea.ulRecNo == ulRecNo || hb_ntxEvalSeekCond( pTag, pEval ) ) { fFound = HB_TRUE; @@ -4216,10 +4216,10 @@ static HB_BOOL hb_ntxOrdSkipEval( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pEv if( ! fFound ) { if( fForward ) - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); else { - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); pArea->dbfarea.area.fBof = HB_TRUE; } } @@ -4242,7 +4242,7 @@ static HB_BOOL hb_ntxOrdSkipEval( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pEv */ static HB_BOOL hb_ntxOrdSkipWild( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pWildItm ) { - NTXAREAP pArea = pTag->Owner->Owner; + NTXAREAP pArea = pTag->pIndex->pArea; const char * szPattern; char * szFree = NULL; HB_BOOL fFound = HB_FALSE; @@ -4254,7 +4254,7 @@ static HB_BOOL hb_ntxOrdSkipWild( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pWi if( pTag->KeyType != 'C' || ! szPattern || ! *szPattern ) { - if( SELF_SKIP( ( AREAP ) pArea, fForward ? 1 : -1 ) != HB_SUCCESS ) + if( SELF_SKIP( &pArea->dbfarea.area, fForward ? 1 : -1 ) != HB_SUCCESS ) return HB_FALSE; return fForward ? ! pArea->dbfarea.area.fEof : ! pArea->dbfarea.area.fBof; } @@ -4271,7 +4271,7 @@ static HB_BOOL hb_ntxOrdSkipWild( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pWi } if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pArea->dbfarea.area.fTop = pArea->dbfarea.area.fBottom = HB_FALSE; @@ -4315,9 +4315,9 @@ static HB_BOOL hb_ntxOrdSkipWild( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pWi if( hb_strMatchWild( pTag->CurKeyInfo->key, szPattern ) ) { HB_ULONG ulRecNo = pTag->CurKeyInfo->Xtra; - if( SELF_GOTO( ( AREAP ) pArea, ulRecNo ) != HB_SUCCESS ) + if( SELF_GOTO( &pArea->dbfarea.area, ulRecNo ) != HB_SUCCESS ) break; - if( SELF_SKIPFILTER( ( AREAP ) pArea, fForward ? 1 : -1 ) != HB_SUCCESS || + if( SELF_SKIPFILTER( &pArea->dbfarea.area, fForward ? 1 : -1 ) != HB_SUCCESS || pArea->dbfarea.ulRecNo == ulRecNo || hb_strMatchWild( pTag->CurKeyInfo->key, szPattern ) ) { @@ -4338,10 +4338,10 @@ static HB_BOOL hb_ntxOrdSkipWild( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pWi if( ! fFound ) { if( fForward ) - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); else { - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); pArea->dbfarea.area.fBof = HB_TRUE; } } @@ -4367,11 +4367,11 @@ static HB_BOOL hb_ntxRegexMatch( LPTAGINFO pTag, PHB_REGEX pRegEx, const char * HB_SIZE nLen = pTag->KeyLength; char szBuff[ NTX_MAX_KEY + 1 ]; - if( pTag->Owner->Owner->dbfarea.area.cdPage != hb_vmCDP() ) + if( pTag->pIndex->pArea->dbfarea.area.cdPage != hb_vmCDP() ) { nLen = sizeof( szBuff ) - 1; hb_cdpnDup2( szKey, pTag->KeyLength, szBuff, &nLen, - pTag->Owner->Owner->dbfarea.area.cdPage, hb_vmCDP() ); + pTag->pIndex->pArea->dbfarea.area.cdPage, hb_vmCDP() ); szBuff[ nLen ] = '\0'; szKey = szBuff; } @@ -4384,7 +4384,7 @@ static HB_BOOL hb_ntxRegexMatch( LPTAGINFO pTag, PHB_REGEX pRegEx, const char * */ static HB_BOOL hb_ntxOrdSkipRegEx( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pRegExItm ) { - NTXAREAP pArea = pTag->Owner->Owner; + NTXAREAP pArea = pTag->pIndex->pArea; HB_BOOL fFound = HB_FALSE; PHB_REGEX pRegEx; @@ -4392,13 +4392,13 @@ static HB_BOOL hb_ntxOrdSkipRegEx( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pR if( pTag->KeyType != 'C' || ( pRegEx = hb_regexGet( pRegExItm, 0 ) ) == NULL ) { - if( SELF_SKIP( ( AREAP ) pArea, fForward ? 1 : -1 ) != HB_SUCCESS ) + if( SELF_SKIP( &pArea->dbfarea.area, fForward ? 1 : -1 ) != HB_SUCCESS ) return HB_FALSE; return fForward ? ! pArea->dbfarea.area.fEof : ! pArea->dbfarea.area.fBof; } if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pArea->dbfarea.area.fTop = pArea->dbfarea.area.fBottom = HB_FALSE; @@ -4417,13 +4417,13 @@ static HB_BOOL hb_ntxOrdSkipRegEx( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pR while( fForward ? ! pTag->TagEOF : ! pTag->TagBOF ) { - if( SELF_GOTO( ( AREAP ) pArea, pTag->CurKeyInfo->Xtra ) != HB_SUCCESS ) + if( SELF_GOTO( &pArea->dbfarea.area, pTag->CurKeyInfo->Xtra ) != HB_SUCCESS ) break; if( hb_ntxRegexMatch( pTag, pRegEx, ( const char * ) pTag->CurKeyInfo->key ) ) { HB_ULONG ulRecNo = pArea->dbfarea.ulRecNo; - if( SELF_SKIPFILTER( ( AREAP ) pArea, fForward ? 1 : -1 ) != HB_SUCCESS || + if( SELF_SKIPFILTER( &pArea->dbfarea.area, fForward ? 1 : -1 ) != HB_SUCCESS || pArea->dbfarea.ulRecNo == ulRecNo || hb_ntxRegexMatch( pTag, pRegEx, ( const char * ) pTag->CurKeyInfo->key ) ) { @@ -4439,10 +4439,10 @@ static HB_BOOL hb_ntxOrdSkipRegEx( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pR if( ! fFound ) { if( fForward ) - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); else { - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); pArea->dbfarea.area.fBof = HB_TRUE; } } @@ -4468,12 +4468,12 @@ static HB_BOOL hb_ntxOrdSkipRegEx( LPTAGINFO pTag, HB_BOOL fForward, PHB_ITEM pR */ static HB_BOOL hb_ntxOrdKeyAdd( LPTAGINFO pTag, PHB_ITEM pItem ) { - NTXAREAP pArea = pTag->Owner->Owner; + NTXAREAP pArea = pTag->pIndex->pArea; HB_BOOL fResult = HB_FALSE; LPKEYINFO pKey; if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( ! pArea->dbfarea.fPositioned ) return HB_FALSE; @@ -4495,7 +4495,7 @@ static HB_BOOL hb_ntxOrdKeyAdd( LPTAGINFO pTag, PHB_ITEM pItem ) if( hb_ntxTagKeyAdd( pTag, pKey ) ) { fResult = HB_TRUE; - if( ! pTag->Owner->fShared && pTag->keyCount && + if( ! pTag->pIndex->fShared && pTag->keyCount && hb_ntxKeyInScope( pTag, pKey ) ) pTag->keyCount++; } @@ -4511,12 +4511,12 @@ static HB_BOOL hb_ntxOrdKeyAdd( LPTAGINFO pTag, PHB_ITEM pItem ) */ static HB_BOOL hb_ntxOrdKeyDel( LPTAGINFO pTag, PHB_ITEM pItem ) { - NTXAREAP pArea = pTag->Owner->Owner; + NTXAREAP pArea = pTag->pIndex->pArea; HB_BOOL fResult = HB_FALSE; LPKEYINFO pKey = NULL; if( pArea->dbfarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( ! pArea->dbfarea.fPositioned ) return HB_FALSE; @@ -4541,7 +4541,7 @@ static HB_BOOL hb_ntxOrdKeyDel( LPTAGINFO pTag, PHB_ITEM pItem ) if( hb_ntxTagKeyDel( pTag, pKey ) ) { fResult = HB_TRUE; - if( ! pTag->Owner->fShared && pTag->keyCount && + if( ! pTag->pIndex->fShared && pTag->keyCount && hb_ntxKeyInScope( pTag, pKey ) ) pTag->keyCount--; } @@ -4558,13 +4558,13 @@ static HB_BOOL hb_ntxOrdKeyDel( LPTAGINFO pTag, PHB_ITEM pItem ) */ static HB_BOOL hb_ntxOrdFindRec( LPTAGINFO pTag, HB_ULONG ulRecNo, HB_BOOL fCont ) { - NTXAREAP pArea = pTag->Owner->Owner; + NTXAREAP pArea = pTag->pIndex->pArea; HB_BOOL fFound = HB_FALSE; if( pTag && ulRecNo ) { if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( hb_ntxTagLockRead( pTag ) ) { @@ -4595,7 +4595,7 @@ static HB_BOOL hb_ntxOrdFindRec( LPTAGINFO pTag, HB_ULONG ulRecNo, HB_BOOL fCont hb_ntxTagUnLockRead( pTag ); } } - SELF_GOTO( ( AREAP ) pArea, fFound ? ulRecNo : 0 ); + SELF_GOTO( &pArea->dbfarea.area, fFound ? ulRecNo : 0 ); return fFound; } @@ -4734,12 +4734,12 @@ static void hb_ntxSortBufferFlush( LPNTXSORTINFO pSort ) if( pSort->ulPagesIO ) { - LPNTXINDEX pIndex = pSort->pTag->Owner; + LPNTXINDEX pIndex = pSort->pTag->pIndex; nSize = pSort->ulPagesIO * NTXBLOCKSIZE; if( hb_fileWriteAt( pIndex->DiskFile, pSort->pBuffIO, nSize, hb_ntxFileOffset( pIndex, pSort->ulFirstIO ) ) != nSize ) { - hb_ntxErrorRT( pIndex->Owner, EG_WRITE, EDBF_WRITE, + hb_ntxErrorRT( pIndex->pArea, EG_WRITE, EDBF_WRITE, pIndex->IndexName, hb_fsError(), 0, NULL ); } pSort->ulPagesIO = 0; @@ -4751,7 +4751,7 @@ static void hb_ntxSortBufferFlush( LPNTXSORTINFO pSort ) static void hb_ntxSortStorePage( LPNTXSORTINFO pSort, LPPAGEINFO pPage ) { - LPNTXINDEX pIndex = pSort->pTag->Owner; + LPNTXINDEX pIndex = pSort->pTag->pIndex; if( ! pPage->Page ) { @@ -4822,7 +4822,7 @@ static void hb_ntxSortWritePage( LPNTXSORTINFO pSort ) char szName[ HB_PATH_MAX ]; pSort->pTempFile = hb_fileCreateTemp( NULL, NULL, FC_NORMAL, szName ); if( pSort->pTempFile == NULL ) - hb_ntxErrorRT( pSort->pTag->Owner->Owner, EG_CREATE, EDBF_CREATE_TEMP, + hb_ntxErrorRT( pSort->pTag->pIndex->pArea, EG_CREATE, EDBF_CREATE_TEMP, szName, hb_fsError(), 0, NULL ); else pSort->szTempFileName = hb_strdup( szName ); @@ -4834,7 +4834,7 @@ static void hb_ntxSortWritePage( LPNTXSORTINFO pSort ) pSort->pSwapPage[ pSort->ulCurPage ].nOffset = hb_fileSize( pSort->pTempFile ); if( hb_fileWriteAt( pSort->pTempFile, pSort->pStartKey, nSize, pSort->pSwapPage[ pSort->ulCurPage ].nOffset ) != nSize ) - hb_ntxErrorRT( pSort->pTag->Owner->Owner, EG_WRITE, EDBF_WRITE_TEMP, + hb_ntxErrorRT( pSort->pTag->pIndex->pArea, EG_WRITE, EDBF_WRITE_TEMP, pSort->szTempFileName, hb_fsError(), 0, NULL ); } else @@ -4857,7 +4857,7 @@ static void hb_ntxSortGetPageKey( LPNTXSORTINFO pSort, HB_ULONG ulPage, hb_fileReadAt( pSort->pTempFile, pSort->pSwapPage[ ulPage ].pKeyPool, nSize, pSort->pSwapPage[ ulPage ].nOffset ) != nSize ) { - hb_ntxErrorRT( pSort->pTag->Owner->Owner, EG_READ, EDBF_READ_TEMP, + hb_ntxErrorRT( pSort->pTag->pIndex->pArea, EG_READ, EDBF_READ_TEMP, pSort->szTempFileName, hb_fsError(), 0, NULL ); } pSort->pSwapPage[ ulPage ].nOffset += nSize; @@ -5305,7 +5305,7 @@ static void hb_ntxSortOut( LPNTXSORTINFO pSort ) */ static HB_ERRCODE hb_ntxTagCreate( LPTAGINFO pTag, HB_BOOL fReindex ) { - LPNTXAREA pArea = pTag->Owner->Owner; + LPNTXAREA pArea = pTag->pIndex->pArea; PHB_ITEM pForItem, pWhileItem = NULL, pEvalItem = NULL, pItem = NULL; HB_ULONG ulRecCount, ulRecNo = pArea->dbfarea.ulRecNo; LPNTXSORTINFO pSort; @@ -5325,7 +5325,7 @@ static HB_ERRCODE hb_ntxTagCreate( LPTAGINFO pTag, HB_BOOL fReindex ) } else { - errCode = SELF_RECCOUNT( ( AREAP ) pArea, &ulRecCount ); + errCode = SELF_RECCOUNT( &pArea->dbfarea.area, &ulRecCount ); if( errCode != HB_SUCCESS ) return errCode; } @@ -5414,13 +5414,13 @@ static HB_ERRCODE hb_ntxTagCreate( LPTAGINFO pTag, HB_BOOL fReindex ) if( ulStartRec == 0 ) { - errCode = SELF_GOTOP( ( AREAP ) pArea ); + errCode = SELF_GOTOP( &pArea->dbfarea.area ); } else { - errCode = SELF_GOTO( ( AREAP ) pArea, ulStartRec ); + errCode = SELF_GOTO( &pArea->dbfarea.area, ulStartRec ); if( fUseFilter && errCode == HB_SUCCESS ) - errCode = SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + errCode = SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); } ulRecNo = pArea->dbfarea.ulRecNo; @@ -5453,22 +5453,22 @@ static HB_ERRCODE hb_ntxTagCreate( LPTAGINFO pTag, HB_BOOL fReindex ) ( HB_FOFFSET ) ( ulRecNo - 1 ) * ( HB_FOFFSET ) pArea->dbfarea.uiRecordLen ) != nSize ) { - hb_ntxErrorRT( pTag->Owner->Owner, EG_READ, EDBF_READ, - pTag->Owner->IndexName, hb_fsError(), 0, NULL ); + hb_ntxErrorRT( pTag->pIndex->pArea, EG_READ, EDBF_READ, + pTag->pIndex->IndexName, hb_fsError(), 0, NULL ); break; } iRecBuff = 0; } pArea->dbfarea.pRecord = pSort->pBuffIO + iRecBuff * pArea->dbfarea.uiRecordLen; pArea->dbfarea.ulRecNo = ulRecNo; - if( SELF_GETREC( ( AREAP ) pArea, NULL ) == HB_FAILURE ) + if( SELF_GETREC( &pArea->dbfarea.area, NULL ) == HB_FAILURE ) break; pArea->dbfarea.fValidBuffer = pArea->dbfarea.fPositioned = HB_TRUE; pArea->dbfarea.fDeleted = pArea->dbfarea.pRecord[ 0 ] == '*'; /* Force relational movement in child WorkAreas */ if( pArea->dbfarea.area.lpdbRelations ) { - errCode = SELF_SYNCCHILDREN( ( AREAP ) pArea ); + errCode = SELF_SYNCCHILDREN( &pArea->dbfarea.area ); if( errCode != HB_SUCCESS ) break; } @@ -5482,7 +5482,7 @@ static HB_ERRCODE hb_ntxTagCreate( LPTAGINFO pTag, HB_BOOL fReindex ) ( pForItem == NULL || hb_ntxEvalCond( pArea, pForItem, HB_FALSE ) ) ) { if( pTag->nField ) - errCode = SELF_GETVALUE( ( AREAP ) pArea, pTag->nField, pItem ); + errCode = SELF_GETVALUE( &pArea->dbfarea.area, pTag->nField, pItem ); else pItem = hb_vmEvalBlockOrMacro( pTag->pKeyItem ); @@ -5521,7 +5521,7 @@ static HB_ERRCODE hb_ntxTagCreate( LPTAGINFO pTag, HB_BOOL fReindex ) default: hb_ntxErrorRT( pArea, EG_DATATYPE, EDBF_INVALIDKEY, - pTag->Owner->IndexName, 0, 0, NULL ); + pTag->pIndex->IndexName, 0, 0, NULL ); errCode = HB_FAILURE; pTag->Partial = HB_TRUE; pEvalItem = NULL; @@ -5554,9 +5554,9 @@ static HB_ERRCODE hb_ntxTagCreate( LPTAGINFO pTag, HB_BOOL fReindex ) ulRecNo++; else if( errCode == HB_SUCCESS ) { - errCode = SELF_SKIPRAW( ( AREAP ) pArea, 1 ); + errCode = SELF_SKIPRAW( &pArea->dbfarea.area, 1 ); if( fUseFilter && errCode == HB_SUCCESS ) - errCode = SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + errCode = SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); ulRecNo = pArea->dbfarea.ulRecNo; } } @@ -5566,7 +5566,7 @@ static HB_ERRCODE hb_ntxTagCreate( LPTAGINFO pTag, HB_BOOL fReindex ) pArea->dbfarea.pRecord = pSaveRecBuff; pArea->dbfarea.fValidBuffer = HB_FALSE; if( errCode == HB_SUCCESS ) - errCode = SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + errCode = SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); } if( errCode == HB_SUCCESS ) @@ -5627,14 +5627,14 @@ static HB_ERRCODE hb_ntxGoBottom( NTXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_ntxGoBottom(%p)", pArea ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( ! pArea->lpCurTag ) - return SUPER_GOBOTTOM( ( AREAP ) pArea ); + return SUPER_GOBOTTOM( &pArea->dbfarea.area ); if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( ! hb_ntxTagLockRead( pArea->lpCurTag ) ) return HB_FAILURE; @@ -5646,12 +5646,12 @@ static HB_ERRCODE hb_ntxGoBottom( NTXAREAP pArea ) pArea->dbfarea.area.fBottom = HB_TRUE; if( pArea->lpCurTag->TagEOF ) - retval = SELF_GOTO( ( AREAP ) pArea, 0 ); + retval = SELF_GOTO( &pArea->dbfarea.area, 0 ); else { - retval = SELF_GOTO( ( AREAP ) pArea, pArea->lpCurTag->CurKeyInfo->Xtra ); + retval = SELF_GOTO( &pArea->dbfarea.area, pArea->lpCurTag->CurKeyInfo->Xtra ); if( retval != HB_FAILURE && pArea->dbfarea.fPositioned ) - retval = SELF_SKIPFILTER( ( AREAP ) pArea, -1 ); + retval = SELF_SKIPFILTER( &pArea->dbfarea.area, -1 ); } hb_ntxTagUnLockRead( pArea->lpCurTag ); @@ -5667,14 +5667,14 @@ static HB_ERRCODE hb_ntxGoTop( NTXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_ntxGoTop(%p)", pArea ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( ! pArea->lpCurTag ) - return SUPER_GOTOP( ( AREAP ) pArea ); + return SUPER_GOTOP( &pArea->dbfarea.area ); if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); if( ! hb_ntxTagLockRead( pArea->lpCurTag ) ) return HB_FAILURE; @@ -5686,12 +5686,12 @@ static HB_ERRCODE hb_ntxGoTop( NTXAREAP pArea ) pArea->dbfarea.area.fBottom = HB_FALSE; if( pArea->lpCurTag->TagEOF ) - retval = SELF_GOTO( ( AREAP ) pArea, 0 ); + retval = SELF_GOTO( &pArea->dbfarea.area, 0 ); else { - retval = SELF_GOTO( ( AREAP ) pArea, pArea->lpCurTag->CurKeyInfo->Xtra ); + retval = SELF_GOTO( &pArea->dbfarea.area, pArea->lpCurTag->CurKeyInfo->Xtra ); if( retval != HB_FAILURE && pArea->dbfarea.fPositioned ) - retval = SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + retval = SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ); } hb_ntxTagUnLockRead( pArea->lpCurTag ); @@ -5702,7 +5702,7 @@ static HB_ERRCODE hb_ntxSeek( NTXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pItem, { HB_TRACE( HB_TR_DEBUG, ( "hb_ntxSeek(%p, %d, %p, %d)", pArea, fSoftSeek, pItem, fFindLast ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( ! pArea->lpCurTag ) @@ -5719,7 +5719,7 @@ static HB_ERRCODE hb_ntxSeek( NTXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pItem, HB_ULONG ulRec; if( pArea->dbfarea.lpdbPendingRel && pArea->dbfarea.lpdbPendingRel->isScoped ) - SELF_FORCEREL( ( AREAP ) pArea ); + SELF_FORCEREL( &pArea->dbfarea.area ); pArea->dbfarea.area.fTop = pArea->dbfarea.area.fBottom = HB_FALSE; pArea->dbfarea.area.fEof = HB_FALSE; @@ -5759,10 +5759,10 @@ static HB_ERRCODE hb_ntxSeek( NTXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pItem, hb_ntxTagUnLockRead( pArea->lpCurTag ); if( ! fEOF ) { - retval = SELF_GOTO( ( AREAP ) pArea, pArea->lpCurTag->CurKeyInfo->Xtra ); + retval = SELF_GOTO( &pArea->dbfarea.area, pArea->lpCurTag->CurKeyInfo->Xtra ); if( retval != HB_FAILURE && pArea->dbfarea.fPositioned ) { - retval = SELF_SKIPFILTER( ( AREAP ) pArea, fFindLast ? -1 : 1 ); + retval = SELF_SKIPFILTER( &pArea->dbfarea.area, fFindLast ? -1 : 1 ); if( retval != HB_FAILURE && ulRec && pArea->dbfarea.fPositioned ) { pArea->dbfarea.area.fFound = ( ulRec == pArea->dbfarea.ulRecNo || @@ -5777,7 +5777,7 @@ static HB_ERRCODE hb_ntxSeek( NTXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pItem, if( retval != HB_FAILURE && ( fEOF || ! hb_ntxKeyInScope( pArea->lpCurTag, pArea->lpCurTag->CurKeyInfo ) ) ) { - retval = SELF_GOTO( ( AREAP ) pArea, 0 ); + retval = SELF_GOTO( &pArea->dbfarea.area, 0 ); } if( pArea->dbfarea.fPositioned || pArea->dbfarea.ulRecNo != 1 ) pArea->dbfarea.area.fBof = HB_FALSE; @@ -5796,11 +5796,11 @@ static HB_ERRCODE hb_ntxSkipRaw( NTXAREAP pArea, HB_LONG lToSkip ) HB_TRACE( HB_TR_DEBUG, ( "hb_ntxSkipRaw(%p, %ld)", pArea, lToSkip ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; if( ! pArea->lpCurTag || lToSkip == 0 ) - return SUPER_SKIPRAW( ( AREAP ) pArea, lToSkip ); + return SUPER_SKIPRAW( &pArea->dbfarea.area, lToSkip ); if( ! hb_ntxTagLockRead( pArea->lpCurTag ) ) return HB_FAILURE; @@ -5826,7 +5826,7 @@ static HB_ERRCODE hb_ntxSkipRaw( NTXAREAP pArea, HB_LONG lToSkip ) { hb_ntxTagSkipNext( pArea->lpCurTag ); } - retval = SELF_GOTO( ( AREAP ) pArea, + retval = SELF_GOTO( &pArea->dbfarea.area, ( pArea->lpCurTag->TagEOF || fOut ) ? 0 : pArea->lpCurTag->CurKeyInfo->Xtra ); } @@ -5841,7 +5841,7 @@ static HB_ERRCODE hb_ntxSkipRaw( NTXAREAP pArea, HB_LONG lToSkip ) hb_ntxTagGoTop( pArea->lpCurTag ); fOut = HB_TRUE; } - retval = SELF_GOTO( ( AREAP ) pArea, pArea->lpCurTag->TagEOF ? 0 : + retval = SELF_GOTO( &pArea->dbfarea.area, pArea->lpCurTag->TagEOF ? 0 : pArea->lpCurTag->CurKeyInfo->Xtra ); pArea->dbfarea.area.fBof = fOut; } @@ -5876,10 +5876,10 @@ static HB_ERRCODE hb_ntxFlush( NTXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_ntxFlush(%p)", pArea ) ); - errCode = SELF_GOCOLD( ( AREAP ) pArea ); + errCode = SELF_GOCOLD( &pArea->dbfarea.area ); if( errCode == HB_SUCCESS ) { - errCode = SUPER_FLUSH( ( AREAP ) pArea ); + errCode = SUPER_FLUSH( &pArea->dbfarea.area ); if( hb_setGetHardCommit() ) { @@ -5913,7 +5913,7 @@ static HB_ERRCODE hb_ntxGoCold( NTXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_ntxGoCold(%p)", pArea ) ); - if( SUPER_GOCOLD( ( AREAP ) pArea ) == HB_SUCCESS ) + if( SUPER_GOCOLD( &pArea->dbfarea.area ) == HB_SUCCESS ) { if( fRecordChanged || pArea->fNtxAppend ) { @@ -5948,7 +5948,7 @@ static HB_ERRCODE hb_ntxGoCold( NTXAREAP pArea ) { pTag = pIndex->lpTags[ i ]; if( pIndex->fReadonly || pTag->Custom || - ( pTag->Owner->Compound && ! pTag->HeadBlock ) || + ( pTag->pIndex->Compound && ! pTag->HeadBlock ) || ( fAppend && pTag->ChgOnly ) ) continue; @@ -5985,7 +5985,7 @@ static HB_ERRCODE hb_ntxGoCold( NTXAREAP pArea ) break; } fLck = HB_TRUE; - if( ( pTag->Owner->Compound && ! pTag->HeadBlock ) || + if( ( pTag->pIndex->Compound && ! pTag->HeadBlock ) || ! pTag->RootBlock ) fAdd = fDel = HB_FALSE; } @@ -6002,9 +6002,9 @@ static HB_ERRCODE hb_ntxGoCold( NTXAREAP pArea ) if( pTag->ChgOnly ) fAdd = HB_FALSE; else if( ! pTag->Partial && ! pTag->UniqueKey ) - hb_ntxErrorRT( pTag->Owner->Owner, + hb_ntxErrorRT( pTag->pIndex->pArea, EG_CORRUPTION, EDBF_CORRUPT, - pTag->Owner->IndexName, 0, 0, NULL ); + pTag->pIndex->IndexName, 0, 0, NULL ); } } if( fAdd ) @@ -6045,7 +6045,7 @@ static HB_ERRCODE hb_ntxGoHot( NTXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_ntxGoHot(%p)", pArea ) ); - errCode = SUPER_GOHOT( ( AREAP ) pArea ); + errCode = SUPER_GOHOT( &pArea->dbfarea.area ); if( errCode == HB_SUCCESS ) { if( ! pArea->fNtxAppend ) @@ -6096,10 +6096,10 @@ static HB_ERRCODE hb_ntxClose( NTXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_ntxClose(%p)", pArea ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; - errCode = SUPER_CLOSE( ( AREAP ) pArea ); + errCode = SUPER_CLOSE( &pArea->dbfarea.area ); if( errCode == HB_SUCCESS ) { @@ -6109,7 +6109,7 @@ static HB_ERRCODE hb_ntxClose( NTXAREAP pArea ) pArea->pSort = NULL; } - SELF_ORDLSTCLEAR( ( AREAP ) pArea ); + SELF_ORDLSTCLEAR( &pArea->dbfarea.area ); /* close also production indexes if any */ while( pArea->lpIndexes ) @@ -6152,7 +6152,7 @@ static HB_ERRCODE hb_ntxOpen( NTXAREAP pArea, LPDBOPENINFO pOpenInfo ) HB_TRACE( HB_TR_DEBUG, ( "hb_ntxOpen(%p, %p)", pArea, pOpenInfo ) ); - errCode = SUPER_OPEN( ( AREAP ) pArea, pOpenInfo ); + errCode = SUPER_OPEN( &pArea->dbfarea.area, pOpenInfo ); if( errCode == HB_SUCCESS && DBFAREA_DATA( &pArea->dbfarea )->fStruct && ( DBFAREA_DATA( &pArea->dbfarea )->fStrictStruct ? @@ -6170,14 +6170,14 @@ static HB_ERRCODE hb_ntxOpen( NTXAREAP pArea, LPDBOPENINFO pOpenInfo ) pOrderInfo.atomBagName = hb_itemPutC( NULL, szFileName ); pOrderInfo.itmNewVal = NULL; pOrderInfo.itmOrder = NULL; - errCode = SELF_ORDLSTADD( ( AREAP ) pArea, &pOrderInfo ); + errCode = SELF_ORDLSTADD( &pArea->dbfarea.area, &pOrderInfo ); if( errCode == HB_SUCCESS ) { pOrderInfo.itmOrder = hb_itemPutNI( NULL, hb_setGetAutOrder() ); - errCode = SELF_ORDLSTFOCUS( ( AREAP ) pArea, &pOrderInfo ); + errCode = SELF_ORDLSTFOCUS( &pArea->dbfarea.area, &pOrderInfo ); hb_itemRelease( pOrderInfo.itmOrder ); if( errCode == HB_SUCCESS ) - errCode = SELF_GOTOP( ( AREAP ) pArea ); + errCode = SELF_GOTOP( &pArea->dbfarea.area ); } hb_itemRelease( pOrderInfo.atomBagName ); hb_itemRelease( pOrderInfo.itmResult ); @@ -6197,9 +6197,9 @@ static HB_ERRCODE hb_ntxPack( NTXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_ntxPack(%p)", pArea ) ); - errCode = SUPER_PACK( ( AREAP ) pArea ); + errCode = SUPER_PACK( &pArea->dbfarea.area ); if( errCode == HB_SUCCESS ) - return SELF_ORDLSTREBUILD( ( AREAP ) pArea ); + return SELF_ORDLSTREBUILD( &pArea->dbfarea.area ); return errCode; } @@ -6215,9 +6215,9 @@ static HB_ERRCODE hb_ntxZap( NTXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_ntxZap(%p)", pArea ) ); - errCode = SUPER_ZAP( ( AREAP ) pArea ); + errCode = SUPER_ZAP( &pArea->dbfarea.area ); if( errCode == HB_SUCCESS ) - return SELF_ORDLSTREBUILD( ( AREAP ) pArea ); + return SELF_ORDLSTREBUILD( &pArea->dbfarea.area ); return errCode; } @@ -6254,13 +6254,13 @@ static HB_ERRCODE hb_ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderI HB_TRACE( HB_TR_DEBUG, ( "hb_ntxOrderCreate(%p, %p)", pArea, pOrderInfo ) ); - errCode = SELF_GOCOLD( ( AREAP ) pArea ); + errCode = SELF_GOCOLD( &pArea->dbfarea.area ); if( errCode != HB_SUCCESS ) return errCode; if( pArea->dbfarea.lpdbPendingRel ) { - errCode = SELF_FORCEREL( ( AREAP ) pArea ); + errCode = SELF_FORCEREL( &pArea->dbfarea.area ); if( errCode != HB_SUCCESS ) return errCode; } @@ -6271,7 +6271,7 @@ static HB_ERRCODE hb_ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderI pKeyExp = hb_itemNew( pOrderInfo->itmCobExpr ); else /* Otherwise, try compiling the key expression string */ { - errCode = SELF_COMPILE( ( AREAP ) pArea, szKey ); + errCode = SELF_COMPILE( &pArea->dbfarea.area, szKey ); if( errCode != HB_SUCCESS ) return errCode; pKeyExp = pArea->dbfarea.area.valResult; @@ -6280,15 +6280,15 @@ static HB_ERRCODE hb_ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderI /* Get a blank record before testing expression */ ulRecNo = pArea->dbfarea.ulRecNo; - errCode = SELF_GOTO( ( AREAP ) pArea, 0 ); + errCode = SELF_GOTO( &pArea->dbfarea.area, 0 ); if( errCode != HB_SUCCESS ) return errCode; - errCode = SELF_EVALBLOCK( ( AREAP ) pArea, pKeyExp ); + errCode = SELF_EVALBLOCK( &pArea->dbfarea.area, pKeyExp ); if( errCode != HB_SUCCESS ) { hb_vmDestroyBlockOrMacro( pKeyExp ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); return errCode; } pResult = pArea->dbfarea.area.valResult; @@ -6326,7 +6326,7 @@ static HB_ERRCODE hb_ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderI if( bType == 'U' || iLen == 0 ) { hb_vmDestroyBlockOrMacro( pKeyExp ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); hb_ntxErrorRT( pArea, bType == 'U' ? EG_DATATYPE : EG_DATAWIDTH, EDBF_INVALIDKEY, NULL, 0, 0, NULL ); return HB_FAILURE; @@ -6346,11 +6346,11 @@ static HB_ERRCODE hb_ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderI else if( szFor ) { /* Otherwise, try compiling the conditional expression string */ - errCode = SELF_COMPILE( ( AREAP ) pArea, szFor ); + errCode = SELF_COMPILE( &pArea->dbfarea.area, szFor ); if( errCode != HB_SUCCESS ) { hb_vmDestroyBlockOrMacro( pKeyExp ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); return errCode; } pForExp = pArea->dbfarea.area.valResult; @@ -6366,12 +6366,12 @@ static HB_ERRCODE hb_ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderI { HB_BOOL fOK; - errCode = SELF_EVALBLOCK( ( AREAP ) pArea, pForExp ); + errCode = SELF_EVALBLOCK( &pArea->dbfarea.area, pForExp ); if( errCode != HB_SUCCESS ) { hb_vmDestroyBlockOrMacro( pKeyExp ); hb_vmDestroyBlockOrMacro( pForExp ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); return errCode; } fOK = hb_itemType( pArea->dbfarea.area.valResult ) == HB_IT_LOGICAL; @@ -6381,13 +6381,13 @@ static HB_ERRCODE hb_ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderI { hb_vmDestroyBlockOrMacro( pKeyExp ); hb_vmDestroyBlockOrMacro( pForExp ); - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); hb_ntxErrorRT( pArea, EG_DATATYPE, EDBF_INVALIDFOR, NULL, 0, 0, NULL ); return HB_FAILURE; } } - SELF_GOTO( ( AREAP ) pArea, ulRecNo ); + SELF_GOTO( &pArea->dbfarea.area, ulRecNo ); pData = DBFAREA_DATA( &pArea->dbfarea ); /* @@ -6538,7 +6538,7 @@ static HB_ERRCODE hb_ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderI } else { - pIndex->LargeFile = ( pIndex->Owner->dbfarea.bLockType == DB_DBFLOCK_HB64 ); + pIndex->LargeFile = ( pIndex->pArea->dbfarea.bLockType == DB_DBFLOCK_HB64 ); } } @@ -6644,7 +6644,7 @@ static HB_ERRCODE hb_ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderI { *pIndexPtr = pIndex->pNext; pIndex->pNext = NULL; - SELF_ORDLSTCLEAR( ( AREAP ) pArea ); + SELF_ORDLSTCLEAR( &pArea->dbfarea.area ); pIndexPtr = &pArea->lpIndexes; while( *pIndexPtr ) pIndexPtr = &( *pIndexPtr )->pNext; @@ -6655,11 +6655,11 @@ static HB_ERRCODE hb_ntxOrderCreate( NTXAREAP pArea, LPDBORDERCREATEINFO pOrderI { pArea->dbfarea.fHasTags = HB_TRUE; if( ! pArea->dbfarea.fReadonly && ( pArea->dbfarea.dbfHeader.bHasTags & 0x01 ) == 0 ) - SELF_WRITEDBHEADER( ( AREAP ) pArea ); + SELF_WRITEDBHEADER( &pArea->dbfarea.area ); } pArea->lpCurTag = pTag; - SELF_ORDSETCOND( ( AREAP ) pArea, NULL ); - return SELF_GOTOP( ( AREAP ) pArea ); + SELF_ORDSETCOND( &pArea->dbfarea.area, NULL ); + return SELF_GOTOP( &pArea->dbfarea.area ); } static HB_ERRCODE hb_ntxOrderDestroy( NTXAREAP pArea, LPDBORDERINFO pOrderInfo ) @@ -6668,13 +6668,13 @@ static HB_ERRCODE hb_ntxOrderDestroy( NTXAREAP pArea, LPDBORDERINFO pOrderInfo ) HB_TRACE( HB_TR_DEBUG, ( "hb_ntxOrderDestroy(%p, %p)", pArea, pOrderInfo ) ); - errCode = SELF_GOCOLD( ( AREAP ) pArea ); + errCode = SELF_GOCOLD( &pArea->dbfarea.area ); if( errCode != HB_SUCCESS ) return errCode; if( pArea->dbfarea.lpdbPendingRel ) { - errCode = SELF_FORCEREL( ( AREAP ) pArea ); + errCode = SELF_FORCEREL( &pArea->dbfarea.area ); if( errCode != HB_SUCCESS ) return errCode; } @@ -6685,7 +6685,7 @@ static HB_ERRCODE hb_ntxOrderDestroy( NTXAREAP pArea, LPDBORDERINFO pOrderInfo ) if( pTag ) { - LPNTXINDEX pIndex = pTag->Owner, * pIndexPtr; + LPNTXINDEX pIndex = pTag->pIndex, * pIndexPtr; if( pIndex->iTags == 1 ) { @@ -6702,7 +6702,7 @@ static HB_ERRCODE hb_ntxOrderDestroy( NTXAREAP pArea, LPDBORDERINFO pOrderInfo ) { pArea->dbfarea.fHasTags = HB_FALSE; if( ! pArea->dbfarea.fReadonly && ( pArea->dbfarea.dbfHeader.bHasTags & 0x01 ) != 0 ) - SELF_WRITEDBHEADER( ( AREAP ) pArea ); + SELF_WRITEDBHEADER( &pArea->dbfarea.area ); } } else if( pIndex->fReadonly ) @@ -6741,41 +6741,59 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI switch( uiIndex ) { case DBOI_STRICTREAD: - hb_itemClear( pInfo->itmResult ); + if( pInfo->itmResult ) + hb_itemClear( pInfo->itmResult ); + else + pInfo->itmResult = hb_itemNew( NULL ); return SELF_RDDINFO( SELF_RDDNODE( &pArea->dbfarea.area ), RDDI_STRICTREAD, 0, pInfo->itmResult ); case DBOI_OPTIMIZE: - hb_itemClear( pInfo->itmResult ); + if( pInfo->itmResult ) + hb_itemClear( pInfo->itmResult ); + else + pInfo->itmResult = hb_itemNew( NULL ); return SELF_RDDINFO( SELF_RDDNODE( &pArea->dbfarea.area ), RDDI_OPTIMIZE, 0, pInfo->itmResult ); case DBOI_AUTOOPEN: - hb_itemClear( pInfo->itmResult ); + if( pInfo->itmResult ) + hb_itemClear( pInfo->itmResult ); + else + pInfo->itmResult = hb_itemNew( NULL ); return SELF_RDDINFO( SELF_RDDNODE( &pArea->dbfarea.area ), RDDI_AUTOOPEN, 0, pInfo->itmResult ); case DBOI_AUTOORDER: - hb_itemClear( pInfo->itmResult ); + if( pInfo->itmResult ) + hb_itemClear( pInfo->itmResult ); + else + pInfo->itmResult = hb_itemNew( NULL ); return SELF_RDDINFO( SELF_RDDNODE( &pArea->dbfarea.area ), RDDI_AUTOORDER, 0, pInfo->itmResult ); case DBOI_AUTOSHARE: - hb_itemClear( pInfo->itmResult ); + if( pInfo->itmResult ) + hb_itemClear( pInfo->itmResult ); + else + pInfo->itmResult = hb_itemNew( NULL ); return SELF_RDDINFO( SELF_RDDNODE( &pArea->dbfarea.area ), RDDI_AUTOSHARE, 0, pInfo->itmResult ); case DBOI_BAGEXT: - hb_itemClear( pInfo->itmResult ); + if( pInfo->itmResult ) + hb_itemClear( pInfo->itmResult ); + else + pInfo->itmResult = hb_itemNew( NULL ); return SELF_RDDINFO( SELF_RDDNODE( &pArea->dbfarea.area ), RDDI_ORDBAGEXT, 0, pInfo->itmResult ); case DBOI_EVALSTEP: - hb_itemPutNL( pInfo->itmResult, + pInfo->itmResult = hb_itemPutNL( pInfo->itmResult, pArea->dbfarea.area.lpdbOrdCondInfo ? pArea->dbfarea.area.lpdbOrdCondInfo->lStep : 0 ); return HB_SUCCESS; case DBOI_KEYSINCLUDED: - hb_itemPutNL( pInfo->itmResult, + pInfo->itmResult = hb_itemPutNL( pInfo->itmResult, pArea->pSort ? pArea->pSort->ulTotKeys : 0 ); return HB_SUCCESS; case DBOI_I_TAGNAME: - hb_itemPutC( pInfo->itmResult, + pInfo->itmResult = hb_itemPutC( pInfo->itmResult, pArea->pSort ? pArea->pSort->pTag->TagName : NULL ); return HB_SUCCESS; case DBOI_I_BAGNAME: - hb_itemPutC( pInfo->itmResult, pArea->pSort ? - pArea->pSort->pTag->Owner->IndexName : NULL ); + pInfo->itmResult = hb_itemPutC( pInfo->itmResult, pArea->pSort ? + pArea->pSort->pTag->pIndex->IndexName : NULL ); return HB_SUCCESS; case DBOI_ISREINDEX: - hb_itemPutL( pInfo->itmResult, + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pArea->pSort ? pArea->pSort->fReindex : HB_FALSE ); return HB_SUCCESS; case DBOI_LOCKOFFSET: @@ -6785,9 +6803,9 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI hb_dbfLockIdxGetData( pArea->dbfarea.bLockType, &lockData ); if( uiIndex == DBOI_LOCKOFFSET ) - hb_itemPutNInt( pInfo->itmResult, lockData.offset ); + pInfo->itmResult = hb_itemPutNInt( pInfo->itmResult, lockData.offset ); else - hb_itemPutL( pInfo->itmResult, lockData.size > 0 ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, lockData.size > 0 ); return HB_SUCCESS; } case DBOI_ORDERCOUNT: @@ -6804,7 +6822,7 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI break; pIndex = pIndex->pNext; } - hb_itemPutNI( pInfo->itmResult, i ); + pInfo->itmResult = hb_itemPutNI( pInfo->itmResult, i ); return HB_SUCCESS; } case DBOI_BAGCOUNT: @@ -6816,7 +6834,7 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI ++i; pIndex = pIndex->pNext; } - hb_itemPutNI( pInfo->itmResult, i ); + pInfo->itmResult = hb_itemPutNI( pInfo->itmResult, i ); return HB_SUCCESS; } case DBOI_BAGNUMBER: @@ -6828,7 +6846,7 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI pIndexSeek = hb_ntxFindBag( pArea, hb_itemGetCPtr( pInfo->atomBagName ) ); else if( pArea->lpCurTag ) - pIndexSeek = pArea->lpCurTag->Owner; + pIndexSeek = pArea->lpCurTag->pIndex; if( pIndexSeek ) { @@ -6841,7 +6859,7 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI } while( pIndex ); } - hb_itemPutNI( pInfo->itmResult, pIndex ? i : 0 ); + pInfo->itmResult = hb_itemPutNI( pInfo->itmResult, pIndex ? i : 0 ); return HB_SUCCESS; } case DBOI_BAGORDER: @@ -6853,7 +6871,7 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI pIndexSeek = hb_ntxFindBag( pArea, hb_itemGetCPtr( pInfo->atomBagName ) ); else if( pArea->lpCurTag ) - pIndexSeek = pArea->lpCurTag->Owner; + pIndexSeek = pArea->lpCurTag->pIndex; if( pIndexSeek ) { @@ -6867,14 +6885,14 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI } while( pIndex ); } - hb_itemPutNI( pInfo->itmResult, pIndex ? i : 0 ); + pInfo->itmResult = hb_itemPutNI( pInfo->itmResult, pIndex ? i : 0 ); return HB_SUCCESS; } case DBOI_RESETPOS: return HB_SUCCESS; } - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; pTag = hb_ntxFindTag( pArea, pInfo->itmOrder, pInfo->atomBagName ); @@ -6884,7 +6902,7 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI switch( uiIndex ) { case DBOI_CONDITION: - hb_itemPutC( pInfo->itmResult, pTag->ForExpr ? pTag->ForExpr : NULL ); + pInfo->itmResult = hb_itemPutC( pInfo->itmResult, pTag->ForExpr ? pTag->ForExpr : NULL ); if( hb_itemType( pInfo->itmNewVal ) & HB_IT_STRING ) { const char * szForExpr = hb_itemGetCPtr( pInfo->itmNewVal ); @@ -6896,11 +6914,11 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI HB_BOOL fOK = *szForExpr == 0; if( ! fOK ) { - if( SELF_COMPILE( ( AREAP ) pArea, szForExpr ) == HB_SUCCESS ) + if( SELF_COMPILE( &pArea->dbfarea.area, szForExpr ) == HB_SUCCESS ) { pForItem = pArea->dbfarea.area.valResult; pArea->dbfarea.area.valResult = NULL; - if( SELF_EVALBLOCK( ( AREAP ) pArea, pForItem ) == HB_SUCCESS ) + if( SELF_EVALBLOCK( &pArea->dbfarea.area, pForItem ) == HB_SUCCESS ) { fOK = hb_itemType( pArea->dbfarea.area.valResult ) == HB_IT_LOGICAL; hb_itemRelease( pArea->dbfarea.area.valResult ); @@ -6927,7 +6945,7 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI } pTag->Partial = HB_TRUE; pTag->HdrChanged = HB_TRUE; - pTag->Owner->Update = HB_TRUE; + pTag->pIndex->Update = HB_TRUE; hb_ntxTagUnLockWrite( pTag ); } if( pForItem ) @@ -6936,101 +6954,103 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI } break; case DBOI_EXPRESSION: - hb_itemPutC( pInfo->itmResult, pTag->KeyExpr ); + pInfo->itmResult = hb_itemPutC( pInfo->itmResult, pTag->KeyExpr ); break; case DBOI_BAGNAME: { - PHB_FNAME pFileName = hb_fsFNameSplit( pTag->Owner->IndexName ); + PHB_FNAME pFileName = hb_fsFNameSplit( pTag->pIndex->IndexName ); pInfo->itmResult = hb_itemPutC( pInfo->itmResult, pFileName->szName ); hb_xfree( pFileName ); break; } case DBOI_NAME: - hb_itemPutC( pInfo->itmResult, pTag->TagName ); + pInfo->itmResult = hb_itemPutC( pInfo->itmResult, pTag->TagName ); break; case DBOI_NUMBER: - hb_itemPutNI( pInfo->itmResult, hb_ntxFindTagNum( pArea, pTag ) ); + pInfo->itmResult = hb_itemPutNI( pInfo->itmResult, hb_ntxFindTagNum( pArea, pTag ) ); break; case DBOI_FILEHANDLE: - hb_itemPutNInt( pInfo->itmResult, - ( HB_NHANDLE ) hb_fileHandle( pTag->Owner->DiskFile ) ); + pInfo->itmResult = hb_itemPutNInt( pInfo->itmResult, ( HB_NHANDLE ) + hb_fileHandle( pTag->pIndex->DiskFile ) ); break; case DBOI_FULLPATH: - hb_itemPutC( pInfo->itmResult, pTag->Owner->IndexName ); + pInfo->itmResult = hb_itemPutC( pInfo->itmResult, pTag->pIndex->IndexName ); break; case DBOI_KEYCOUNT: case DBOI_KEYCOUNTRAW: - hb_itemPutNL( pInfo->itmResult, hb_ntxOrdKeyCount( pTag ) ); + pInfo->itmResult = hb_itemPutNL( pInfo->itmResult, hb_ntxOrdKeyCount( pTag ) ); break; case DBOI_POSITION: case DBOI_KEYNORAW: /* case DBOI_RECNO: */ if( hb_itemType( pInfo->itmNewVal ) & HB_IT_NUMERIC ) - hb_itemPutL( pInfo->itmResult, + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, hb_ntxOrdKeyGoto( pTag, hb_itemGetNL( pInfo->itmNewVal ) ) ); else - hb_itemPutNL( pInfo->itmResult, hb_ntxOrdKeyNo( pTag ) ); + pInfo->itmResult = hb_itemPutNL( pInfo->itmResult, hb_ntxOrdKeyNo( pTag ) ); break; case DBOI_RELKEYPOS: if( hb_itemType( pInfo->itmNewVal ) & HB_IT_NUMERIC ) hb_ntxOrdSetRelKeyPos( pTag, hb_itemGetND( pInfo->itmNewVal ) ); else - hb_itemPutND( pInfo->itmResult, hb_ntxOrdGetRelKeyPos( pTag ) ); + pInfo->itmResult = hb_itemPutND( pInfo->itmResult, hb_ntxOrdGetRelKeyPos( pTag ) ); break; case DBOI_ISCOND: - hb_itemPutL( pInfo->itmResult, pTag->ForExpr != NULL ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->ForExpr != NULL ); break; case DBOI_ISDESC: - hb_itemPutL( pInfo->itmResult, pTag->fUsrDescend ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->fUsrDescend ); if( hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL ) pTag->fUsrDescend = hb_itemGetL( pInfo->itmNewVal ); break; case DBOI_UNIQUE: - hb_itemPutL( pInfo->itmResult, pTag->UniqueKey ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->UniqueKey ); break; case DBOI_CUSTOM: - if( hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL ) + if( ! pTag->Template && + hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL ) { - if( hb_ntxTagLockWrite( pTag ) ) + HB_BOOL fNewVal = hb_itemGetL( pInfo->itmNewVal ); + if( pTag->Custom ? ! fNewVal : fNewVal ) { - if( ! pTag->Template ) + if( hb_ntxTagLockWrite( pTag ) ) { - HB_BOOL fNewVal = hb_itemGetL( pInfo->itmNewVal ); - if( pTag->Custom ? ! fNewVal : fNewVal ) + if( ! pTag->Template && ( pTag->Custom ? ! fNewVal : fNewVal ) ) { pTag->Custom = fNewVal; pTag->Partial = HB_TRUE; pTag->ChgOnly = HB_FALSE; pTag->HdrChanged = HB_TRUE; } + hb_ntxTagUnLockWrite( pTag ); } - hb_ntxTagUnLockWrite( pTag ); } } - hb_itemPutL( pInfo->itmResult, pTag->Custom ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->Custom ); break; case DBOI_CHGONLY: - if( hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL ) + if( ! pTag->Custom && + hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL ) { - if( hb_ntxTagLockWrite( pTag ) ) + HB_BOOL fNewVal = hb_itemGetL( pInfo->itmNewVal ); + if( pTag->ChgOnly ? ! fNewVal : fNewVal ) { - if( ! pTag->Custom ) + if( hb_ntxTagLockWrite( pTag ) ) { - HB_BOOL fNewVal = hb_itemGetL( pInfo->itmNewVal ); - if( pTag->ChgOnly ? ! fNewVal : fNewVal ) + if( ! pTag->Custom && ( pTag->ChgOnly ? ! fNewVal : fNewVal ) ) { pTag->ChgOnly = fNewVal; pTag->Partial = HB_TRUE; pTag->HdrChanged = HB_TRUE; } + hb_ntxTagUnLockWrite( pTag ); } - hb_ntxTagUnLockWrite( pTag ); } } - hb_itemPutL( pInfo->itmResult, pTag->ChgOnly ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->ChgOnly ); break; case DBOI_TEMPLATE: - if( hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL && + if( pTag->Custom && ! pTag->Template && hb_itemGetL( pInfo->itmNewVal ) ) { if( hb_ntxTagLockWrite( pTag ) ) @@ -7043,10 +7063,11 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI hb_ntxTagUnLockWrite( pTag ); } } - hb_itemPutL( pInfo->itmResult, pTag->Template ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->Template ); break; case DBOI_MULTIKEY: - if( hb_itemGetL( pInfo->itmNewVal ) ) + if( pTag->Custom && ! pTag->MultiKey && + hb_itemGetL( pInfo->itmNewVal ) ) { if( hb_ntxTagLockWrite( pTag ) ) { @@ -7058,10 +7079,10 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI hb_ntxTagUnLockWrite( pTag ); } } - hb_itemPutL( pInfo->itmResult, pTag->MultiKey ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->MultiKey ); break; case DBOI_PARTIAL: - hb_itemPutL( pInfo->itmResult, pTag->Partial ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->Partial ); break; case DBOI_SCOPETOP: if( pInfo->itmResult ) @@ -7101,15 +7122,15 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI hb_itemClear( pInfo->itmResult ); break; case DBOI_KEYADD: - if( pTag->Owner->fReadonly ) + if( pTag->pIndex->fReadonly ) { hb_ntxErrorRT( pArea, EG_READONLY, EDBF_READONLY, - pTag->Owner->IndexName, 0, 0, NULL ); + pTag->pIndex->IndexName, 0, 0, NULL ); return HB_FAILURE; } if( pTag->Custom ) { - hb_itemPutL( pInfo->itmResult, + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, hb_ntxOrdKeyAdd( pTag, pInfo->itmNewVal ) ); } else @@ -7119,15 +7140,15 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI } break; case DBOI_KEYDELETE: - if( pTag->Owner->fReadonly ) + if( pTag->pIndex->fReadonly ) { hb_ntxErrorRT( pArea, EG_READONLY, EDBF_READONLY, - pTag->Owner->IndexName, 0, 0, NULL ); + pTag->pIndex->IndexName, 0, 0, NULL ); return HB_FAILURE; } if( pTag->Custom ) { - hb_itemPutL( pInfo->itmResult, + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, hb_ntxOrdKeyDel( pTag, pInfo->itmNewVal ) ); } else @@ -7141,131 +7162,123 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI char szType[ 2 ]; szType[ 0 ] = ( char ) pTag->KeyType; szType[ 1 ] = 0; - hb_itemPutC( pInfo->itmResult, szType ); + pInfo->itmResult = hb_itemPutC( pInfo->itmResult, szType ); } break; case DBOI_KEYSIZE: - hb_itemPutNI( pInfo->itmResult, pTag->KeyLength ); + pInfo->itmResult = hb_itemPutNI( pInfo->itmResult, pTag->KeyLength ); break; case DBOI_KEYDEC: - hb_itemPutNI( pInfo->itmResult, pTag->KeyDec ); + pInfo->itmResult = hb_itemPutNI( pInfo->itmResult, pTag->KeyDec ); break; case DBOI_KEYVAL: if( hb_ntxTagLockRead( pTag ) ) { if( hb_ntxCurKeyRefresh( pTag ) ) - hb_ntxKeyGetItem( pInfo->itmResult, pTag->CurKeyInfo, pTag, HB_TRUE ); - else + pInfo->itmResult = hb_ntxKeyGetItem( pInfo->itmResult, + pTag->CurKeyInfo, pTag, HB_TRUE ); + else if( pInfo->itmResult ) hb_itemClear( pInfo->itmResult ); hb_ntxTagUnLockRead( pTag ); } break; case DBOI_SKIPUNIQUE: - hb_itemPutL( pInfo->itmResult, hb_ntxOrdSkipUnique( pTag, - pInfo->itmNewVal && HB_IS_NUMERIC( pInfo->itmNewVal ) ? - hb_itemGetNL( pInfo->itmNewVal ) : 1 ) ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, + hb_ntxOrdSkipUnique( pTag, + pInfo->itmNewVal && HB_IS_NUMERIC( pInfo->itmNewVal ) ? + hb_itemGetNL( pInfo->itmNewVal ) : 1 ) ); break; case DBOI_SKIPEVAL: case DBOI_SKIPEVALBACK: - hb_itemPutL( pInfo->itmResult, hb_ntxOrdSkipEval( pTag, - uiIndex == DBOI_SKIPEVAL, pInfo->itmNewVal ) ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, + hb_ntxOrdSkipEval( pTag, uiIndex == DBOI_SKIPEVAL, pInfo->itmNewVal ) ); break; case DBOI_SKIPWILD: case DBOI_SKIPWILDBACK: - hb_itemPutL( pInfo->itmResult, hb_ntxOrdSkipWild( pTag, - uiIndex == DBOI_SKIPWILD, pInfo->itmNewVal ) ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, + hb_ntxOrdSkipWild( pTag, uiIndex == DBOI_SKIPWILD, pInfo->itmNewVal ) ); break; case DBOI_SKIPREGEX: case DBOI_SKIPREGEXBACK: - hb_itemPutL( pInfo->itmResult, hb_ntxOrdSkipRegEx( pTag, - uiIndex == DBOI_SKIPREGEX, pInfo->itmNewVal ) ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, + hb_ntxOrdSkipRegEx( pTag, uiIndex == DBOI_SKIPREGEX, pInfo->itmNewVal ) ); break; case DBOI_FINDREC: case DBOI_FINDRECCONT: - hb_itemPutL( pInfo->itmResult, hb_ntxOrdFindRec( pTag, - hb_itemGetNL( pInfo->itmNewVal ), - uiIndex == DBOI_FINDRECCONT ) ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, + hb_ntxOrdFindRec( pTag, hb_itemGetNL( pInfo->itmNewVal ), + uiIndex == DBOI_FINDRECCONT ) ); break; case DBOI_SCOPEEVAL: if( hb_itemType( pInfo->itmNewVal ) == HB_IT_ARRAY && hb_arrayLen( pInfo->itmNewVal ) == DBRMI_SIZE && hb_arrayGetPtr( pInfo->itmNewVal, DBRMI_FUNCTION ) != NULL ) { - hb_itemPutNL( pInfo->itmResult, hb_ntxOrdScopeEval( pTag, - ( HB_EVALSCOPE_FUNC ) + pInfo->itmResult = hb_itemPutNL( pInfo->itmResult, + hb_ntxOrdScopeEval( pTag, ( HB_EVALSCOPE_FUNC ) hb_arrayGetPtr( pInfo->itmNewVal, DBRMI_FUNCTION ), hb_arrayGetPtr( pInfo->itmNewVal, DBRMI_PARAM ), hb_arrayGetItemPtr( pInfo->itmNewVal, DBRMI_LOVAL ), hb_arrayGetItemPtr( pInfo->itmNewVal, DBRMI_HIVAL ) ) ); } else - { - hb_itemPutNI( pInfo->itmResult, 0 ); - } + pInfo->itmResult = hb_itemPutNI( pInfo->itmResult, 0 ); break; case DBOI_UPDATECOUNTER: /* refresh update counter */ - if( hb_ntxIndexLockRead( pTag->Owner ) ) - hb_ntxIndexUnLockRead( pTag->Owner ); - hb_itemPutNInt( pInfo->itmResult, pTag->Owner->Version ); + if( hb_ntxIndexLockRead( pTag->pIndex ) ) + hb_ntxIndexUnLockRead( pTag->pIndex ); + pInfo->itmResult = hb_itemPutNInt( pInfo->itmResult, pTag->pIndex->Version ); break; case DBOI_READLOCK: if( hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL ) - { - hb_itemPutL( pInfo->itmResult, + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, hb_itemGetL( pInfo->itmNewVal ) ? - hb_ntxIndexLockRead( pTag->Owner ) : - hb_ntxIndexUnLockRead( pTag->Owner ) ); - } + hb_ntxIndexLockRead( pTag->pIndex ) : + hb_ntxIndexUnLockRead( pTag->pIndex ) ); else - { - hb_itemPutL( pInfo->itmResult, pTag->Owner->lockRead > 0 ); - } + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->pIndex->lockRead > 0 ); break; case DBOI_WRITELOCK: if( hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL ) - { - hb_itemPutL( pInfo->itmResult, + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, hb_itemGetL( pInfo->itmNewVal ) ? - hb_ntxIndexLockWrite( pTag->Owner, HB_TRUE ) : - hb_ntxIndexUnLockWrite( pTag->Owner ) ); - } + hb_ntxIndexLockWrite( pTag->pIndex, HB_TRUE ) : + hb_ntxIndexUnLockWrite( pTag->pIndex ) ); else - { - hb_itemPutL( pInfo->itmResult, pTag->Owner->lockWrite > 0 ); - } + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->pIndex->lockWrite > 0 ); break; case DBOI_ISSORTRECNO: - hb_itemPutL( pInfo->itmResult, pTag->fSortRec ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->fSortRec ); break; case DBOI_ISMULTITAG: #if defined( HB_NTX_NOMULTITAG ) - hb_itemPutL( pInfo->itmResult, HB_FALSE ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, HB_FALSE ); #else - hb_itemPutL( pInfo->itmResult, pTag->Owner->Compound ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->pIndex->Compound ); #endif break; case DBOI_LARGEFILE: - hb_itemPutL( pInfo->itmResult, pTag->Owner->LargeFile ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->pIndex->LargeFile ); break; case DBOI_SHARED: - hb_itemPutL( pInfo->itmResult, pTag->Owner->fShared ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->pIndex->fShared ); if( hb_itemType( pInfo->itmNewVal ) == HB_IT_LOGICAL ) - pTag->Owner->fShared = hb_itemGetL( pInfo->itmNewVal ); + pTag->pIndex->fShared = hb_itemGetL( pInfo->itmNewVal ); break; case DBOI_ISREADONLY: - hb_itemPutL( pInfo->itmResult, pTag->Owner->fReadonly ); + pInfo->itmResult = hb_itemPutL( pInfo->itmResult, pTag->pIndex->fReadonly ); break; case DBOI_INDEXTYPE: #if defined( HB_NTX_NOMULTITAG ) - hb_itemPutNI( pInfo->itmResult, DBOI_TYPE_NONCOMPACT ); + pInfo->itmResult = hb_itemPutNI( pInfo->itmResult, DBOI_TYPE_NONCOMPACT ); #else - hb_itemPutNI( pInfo->itmResult, pTag->Owner->Compound ? - DBOI_TYPE_COMPOUND : DBOI_TYPE_NONCOMPACT ); + pInfo->itmResult = hb_itemPutNI( pInfo->itmResult, + pTag->pIndex->Compound ? DBOI_TYPE_COMPOUND : DBOI_TYPE_NONCOMPACT ); #endif break; case DBOI_INDEXPAGESIZE: - hb_itemPutNI( pInfo->itmResult, NTXBLOCKSIZE ); + pInfo->itmResult = hb_itemPutNI( pInfo->itmResult, NTXBLOCKSIZE ); break; } } @@ -7277,7 +7290,7 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI case DBOI_KEYCOUNTRAW: { HB_ULONG ulRecCount = 0; - SELF_RECCOUNT( ( AREAP ) pArea, &ulRecCount ); + SELF_RECCOUNT( &pArea->dbfarea.area, &ulRecCount ); hb_itemPutNInt( pInfo->itmResult, ulRecCount ); break; } @@ -7285,10 +7298,10 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI case DBOI_KEYNORAW: /* case DBOI_RECNO: */ if( pInfo->itmNewVal && hb_itemType( pInfo->itmNewVal ) & HB_IT_NUMERIC ) - hb_itemPutL( pInfo->itmResult, SELF_GOTO( ( AREAP ) pArea, + hb_itemPutL( pInfo->itmResult, SELF_GOTO( &pArea->dbfarea.area, hb_itemGetNL( pInfo->itmNewVal ) ) == HB_SUCCESS ); else - SELF_RECID( ( AREAP ) pArea, pInfo->itmResult ); + SELF_RECID( &pArea->dbfarea.area, pInfo->itmResult ); break; case DBOI_RELKEYPOS: if( hb_itemType( pInfo->itmNewVal ) & HB_IT_NUMERIC ) @@ -7298,23 +7311,23 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI pArea->lpCurTag = NULL; if( dPos >= 1.0 ) { - SELF_GOBOTTOM( ( AREAP ) pArea ); + SELF_GOBOTTOM( &pArea->dbfarea.area ); } else if( dPos <= 0.0 ) { - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); } else { HB_ULONG ulRecCount, ulRecNo; - SELF_RECCOUNT( ( AREAP ) pArea, &ulRecCount ); + SELF_RECCOUNT( &pArea->dbfarea.area, &ulRecCount ); ulRecNo = ( HB_ULONG ) dPos * ulRecCount + 1; if( ulRecNo >= ulRecCount ) ulRecNo = ulRecCount; - if( SELF_GOTO( ( AREAP ) pArea, ulRecNo ) == HB_SUCCESS && - SELF_SKIPFILTER( ( AREAP ) pArea, 1 ) == HB_SUCCESS && + if( SELF_GOTO( &pArea->dbfarea.area, ulRecNo ) == HB_SUCCESS && + SELF_SKIPFILTER( &pArea->dbfarea.area, 1 ) == HB_SUCCESS && pArea->dbfarea.area.fEof ) - SELF_GOTOP( ( AREAP ) pArea ); + SELF_GOTOP( &pArea->dbfarea.area ); } pArea->lpCurTag = pSavedTag; } @@ -7323,7 +7336,7 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI HB_ULONG ulRecNo = 0, ulRecCount = 0; double dPos = 0.0; /* resolve any pending relations */ - if( SELF_RECNO( ( AREAP ) pArea, &ulRecNo ) == HB_SUCCESS ) + if( SELF_RECNO( &pArea->dbfarea.area, &ulRecNo ) == HB_SUCCESS ) { if( ! pArea->dbfarea.fPositioned ) { @@ -7332,7 +7345,7 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI } else { - SELF_RECCOUNT( ( AREAP ) pArea, &ulRecCount ); + SELF_RECCOUNT( &pArea->dbfarea.area, &ulRecCount ); if( ulRecCount != 0 ) dPos = ( 0.5 + ulRecNo ) / ulRecCount; } @@ -7341,7 +7354,7 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI } break; case DBOI_SKIPUNIQUE: - hb_itemPutL( pInfo->itmResult, SELF_SKIP( ( AREAP ) pArea, + hb_itemPutL( pInfo->itmResult, SELF_SKIP( &pArea->dbfarea.area, pInfo->itmNewVal && HB_IS_NUMERIC( pInfo->itmNewVal ) ? hb_itemGetNL( pInfo->itmNewVal ) : 1 ) == HB_SUCCESS ); break; @@ -7353,7 +7366,7 @@ static HB_ERRCODE hb_ntxOrderInfo( NTXAREAP pArea, HB_USHORT uiIndex, LPDBORDERI case DBOI_SKIPREGEXBACK: case DBOI_FINDREC: case DBOI_FINDRECCONT: - SELF_GOTO( ( AREAP ) pArea, 0 ); + SELF_GOTO( &pArea->dbfarea.area, 0 ); hb_itemPutL( pInfo->itmResult, HB_FALSE ); break; case DBOI_ISCOND: @@ -7426,7 +7439,7 @@ static HB_ERRCODE hb_ntxOrderListAdd( NTXAREAP pArea, LPDBORDERINFO pOrderInfo ) HB_TRACE( HB_TR_DEBUG, ( "hb_ntxOrderListAdd(%p, %p)", pArea, pOrderInfo ) ); - errCode = SELF_GOCOLD( ( AREAP ) pArea ); + errCode = SELF_GOCOLD( &pArea->dbfarea.area ); if( errCode != HB_SUCCESS ) return errCode; @@ -7505,7 +7518,7 @@ static HB_ERRCODE hb_ntxOrderListAdd( NTXAREAP pArea, LPDBORDERINFO pOrderInfo ) if( ! pArea->lpCurTag && pIndex->iTags ) { pArea->lpCurTag = pIndex->lpTags[0]; - errCode = SELF_GOTOP( ( AREAP ) pArea ); + errCode = SELF_GOTOP( &pArea->dbfarea.area ); } return errCode; } @@ -7516,7 +7529,7 @@ static HB_ERRCODE hb_ntxOrderListClear( NTXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_ntxOrderListClear(%p)", pArea ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; pArea->lpCurTag = NULL; @@ -7548,7 +7561,7 @@ static HB_ERRCODE hb_ntxOrderListDelete( NTXAREAP pArea, LPDBORDERINFO pOrderInf HB_TRACE( HB_TR_DEBUG, ( "hb_ntxOrderListDelete(%p, %p)", pArea, pOrderInfo ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE ) + if( SELF_GOCOLD( &pArea->dbfarea.area ) == HB_FAILURE ) return HB_FAILURE; hb_ntxCreateFName( pArea, hb_itemGetCPtr( pOrderInfo->atomBagName ), &fProd, @@ -7611,7 +7624,7 @@ static HB_ERRCODE hb_ntxOrderListRebuild( NTXAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_ntxOrderListRebuild(%p)", pArea ) ); - errCode = SELF_GOCOLD( ( AREAP ) pArea ); + errCode = SELF_GOCOLD( &pArea->dbfarea.area ); if( errCode != HB_SUCCESS ) return errCode; @@ -7628,7 +7641,7 @@ static HB_ERRCODE hb_ntxOrderListRebuild( NTXAREAP pArea ) if( pArea->dbfarea.lpdbPendingRel ) { - errCode = SELF_FORCEREL( ( AREAP ) pArea ); + errCode = SELF_FORCEREL( &pArea->dbfarea.area ); if( errCode != HB_SUCCESS ) return errCode; } @@ -7643,7 +7656,7 @@ static HB_ERRCODE hb_ntxOrderListRebuild( NTXAREAP pArea ) if( errCode == HB_SUCCESS ) { pArea->lpCurTag = pCurrTag; - errCode = SELF_GOTOP( ( AREAP ) pArea ); + errCode = SELF_GOTOP( &pArea->dbfarea.area ); } return errCode; } @@ -7660,7 +7673,7 @@ static HB_ERRCODE hb_ntxCountScope( NTXAREAP pArea, void * pPtr, HB_LONG * plRec { return HB_SUCCESS; } - return SUPER_COUNTSCOPE( ( AREAP ) pArea, pPtr, plRecNo ); + return SUPER_COUNTSCOPE( &pArea->dbfarea.area, pPtr, plRecNo ); } #define hb_ntxFilterText NULL diff --git a/src/rdd/delim1.c b/src/rdd/delim1.c index 1d2fb94d02..489db72164 100644 --- a/src/rdd/delim1.c +++ b/src/rdd/delim1.c @@ -410,7 +410,7 @@ static HB_ERRCODE hb_delimGoTop( DELIMAREAP pArea ) { HB_TRACE( HB_TR_DEBUG, ( "hb_delimGoTop(%p)", pArea ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; pArea->area.fTop = HB_TRUE; @@ -421,7 +421,7 @@ static HB_ERRCODE hb_delimGoTop( DELIMAREAP pArea ) if( hb_delimReadRecord( pArea ) != HB_SUCCESS ) return HB_FAILURE; - return SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + return SELF_SKIPFILTER( &pArea->area, 1 ); } /* @@ -431,7 +431,7 @@ static HB_ERRCODE hb_delimSkipRaw( DELIMAREAP pArea, HB_LONG lToSkip ) { HB_TRACE( HB_TR_DEBUG, ( "hb_delimSkipRaw(%p,%ld)", pArea, lToSkip ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; if( lToSkip != 1 ) @@ -488,7 +488,7 @@ static HB_ERRCODE hb_delimRecId( DELIMAREAP pArea, PHB_ITEM pRecNo ) HB_TRACE( HB_TR_DEBUG, ( "hb_delimRecId(%p,%p)", pArea, pRecNo ) ); - errCode = SELF_RECNO( ( AREAP ) pArea, &ulRecNo ); + errCode = SELF_RECNO( &pArea->area, &ulRecNo ); #ifdef HB_CLP_STRICT /* this is for strict Clipper compatibility but IMHO Clipper should not @@ -516,10 +516,10 @@ static HB_ERRCODE hb_delimAppend( DELIMAREAP pArea, HB_BOOL fUnLockAll ) HB_SYMBOL_UNUSED( fUnLockAll ); - if( SELF_GOCOLD( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; - if( SELF_GOHOT( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_GOHOT( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; pArea->nRecordOffset = pArea->nFileSize; @@ -647,7 +647,7 @@ static HB_ERRCODE hb_delimGetValue( DELIMAREAP pArea, HB_USHORT uiIndex, PHB_ITE hb_errPutDescription( pError, hb_langDGetErrorDesc( EG_DATATYPE ) ); hb_errPutOperation( pError, hb_dynsymName( ( PHB_DYNS ) pField->sym ) ); hb_errPutSubCode( pError, EDBF_DATATYPE ); - SELF_ERROR( ( AREAP ) pArea, pError ); + SELF_ERROR( &pArea->area, pError ); hb_itemRelease( pError ); return HB_FAILURE; } @@ -768,7 +768,7 @@ static HB_ERRCODE hb_delimPutValue( DELIMAREAP pArea, HB_USHORT uiIndex, PHB_ITE hb_errPutOperation( pError, hb_dynsymName( ( PHB_DYNS ) pField->sym ) ); hb_errPutSubCode( pError, errCode ); hb_errPutFlags( pError, EF_CANDEFAULT ); - errCode = SELF_ERROR( ( AREAP ) pArea, pError ); + errCode = SELF_ERROR( &pArea->area, pError ); hb_itemRelease( pError ); return errCode == E_DEFAULT ? HB_SUCCESS : HB_FAILURE; } @@ -823,7 +823,7 @@ static HB_ERRCODE hb_delimTrans( DELIMAREAP pArea, LPDBTRANSINFO pTransInfo ) else { PHB_ITEM pPutRec = hb_itemPutL( NULL, HB_FALSE ); - if( SELF_INFO( ( AREAP ) pTransInfo->lpaDest, DBI_CANPUTREC, pPutRec ) != HB_SUCCESS ) + if( SELF_INFO( pTransInfo->lpaDest, DBI_CANPUTREC, pPutRec ) != HB_SUCCESS ) { hb_itemRelease( pPutRec ); return HB_FAILURE; @@ -835,7 +835,7 @@ static HB_ERRCODE hb_delimTrans( DELIMAREAP pArea, LPDBTRANSINFO pTransInfo ) hb_itemRelease( pPutRec ); } } - return SUPER_TRANS( ( AREAP ) pArea, pTransInfo ); + return SUPER_TRANS( &pArea->area, pTransInfo ); } /* @@ -859,7 +859,7 @@ static HB_ERRCODE hb_delimGoCold( DELIMAREAP pArea ) hb_errPutSubCode( pError, EDBF_WRITE ); hb_errPutOsCode( pError, hb_fsError() ); hb_errPutFileName( pError, pArea->szFileName ); - SELF_ERROR( ( AREAP ) pArea, pError ); + SELF_ERROR( &pArea->area, pError ); hb_itemRelease( pError ); return HB_FAILURE; } @@ -886,7 +886,7 @@ static HB_ERRCODE hb_delimGoHot( DELIMAREAP pArea ) hb_errPutGenCode( pError, EG_READONLY ); hb_errPutDescription( pError, hb_langDGetErrorDesc( EG_READONLY ) ); hb_errPutSubCode( pError, EDBF_READONLY ); - SELF_ERROR( ( AREAP ) pArea, pError ); + SELF_ERROR( &pArea->area, pError ); hb_itemRelease( pError ); return HB_FAILURE; } @@ -903,7 +903,7 @@ static HB_ERRCODE hb_delimFlush( DELIMAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_delimFlush(%p)", pArea ) ); - errCode = SELF_GOCOLD( ( AREAP ) pArea ); + errCode = SELF_GOCOLD( &pArea->area ); if( pArea->fFlush ) { @@ -1042,7 +1042,7 @@ static HB_ERRCODE hb_delimInfo( DELIMAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pI } default: - return SUPER_INFO( ( AREAP ) pArea, uiIndex, pItem ); + return SUPER_INFO( &pArea->area, uiIndex, pItem ); } return HB_SUCCESS; @@ -1165,7 +1165,7 @@ static HB_ERRCODE hb_delimAddField( DELIMAREAP pArea, LPDBFIELDINFO pFieldInfo ) pArea->uiRecordLen += pFieldInfo->uiLen; pArea->nBufferSize += pFieldInfo->uiLen + uiDelim + 1; - return SUPER_ADDFIELD( ( AREAP ) pArea, pFieldInfo ); + return SUPER_ADDFIELD( &pArea->area, pFieldInfo ); } /* @@ -1175,7 +1175,7 @@ static HB_ERRCODE hb_delimSetFieldExtent( DELIMAREAP pArea, HB_USHORT uiFieldExt { HB_TRACE( HB_TR_DEBUG, ( "hb_delimSetFieldExtent(%p,%hu)", pArea, uiFieldExtent ) ); - if( SUPER_SETFIELDEXTENT( ( AREAP ) pArea, uiFieldExtent ) == HB_FAILURE ) + if( SUPER_SETFIELDEXTENT( &pArea->area, uiFieldExtent ) == HB_FAILURE ) return HB_FAILURE; /* Alloc field offsets array */ @@ -1195,7 +1195,7 @@ static HB_ERRCODE hb_delimNewArea( DELIMAREAP pArea ) { HB_TRACE( HB_TR_DEBUG, ( "hb_delimNewArea(%p)", pArea ) ); - if( SUPER_NEW( ( AREAP ) pArea ) == HB_FAILURE ) + if( SUPER_NEW( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; pArea->pFile = NULL; @@ -1231,12 +1231,12 @@ static HB_ERRCODE hb_delimClose( DELIMAREAP pArea ) { HB_TRACE( HB_TR_DEBUG, ( "hb_delimClose(%p)", pArea ) ); - SUPER_CLOSE( ( AREAP ) pArea ); + SUPER_CLOSE( &pArea->area ); /* Update record and unlock records */ if( pArea->pFile ) { - SELF_FLUSH( ( AREAP ) pArea ); + SELF_FLUSH( &pArea->area ); hb_fileClose( pArea->pFile ); pArea->pFile = NULL; } @@ -1299,7 +1299,7 @@ static HB_ERRCODE hb_delimCreate( DELIMAREAP pArea, LPDBOPENINFO pCreateInfo ) if( hb_setGetDefExtension() && ! pFileName->szExtension ) { PHB_ITEM pItem = hb_itemPutC( NULL, NULL ); - SELF_INFO( ( AREAP ) pArea, DBI_TABLEEXT, pItem ); + SELF_INFO( &pArea->area, DBI_TABLEEXT, pItem ); pFileName->szExtension = hb_itemGetCPtr( pItem ); hb_fsFNameMerge( szFileName, pFileName ); hb_itemRelease( pItem ); @@ -1330,7 +1330,7 @@ static HB_ERRCODE hb_delimCreate( DELIMAREAP pArea, LPDBOPENINFO pCreateInfo ) hb_errPutFileName( pError, szFileName ); hb_errPutFlags( pError, EF_CANRETRY | EF_CANDEFAULT ); } - fRetry = ( SELF_ERROR( ( AREAP ) pArea, pError ) == E_RETRY ); + fRetry = ( SELF_ERROR( &pArea->area, pError ) == E_RETRY ); } else fRetry = HB_FALSE; @@ -1343,17 +1343,17 @@ static HB_ERRCODE hb_delimCreate( DELIMAREAP pArea, LPDBOPENINFO pCreateInfo ) if( ! pArea->pFile ) return HB_FAILURE; - errCode = SUPER_CREATE( ( AREAP ) pArea, pCreateInfo ); + errCode = SUPER_CREATE( &pArea->area, pCreateInfo ); if( errCode != HB_SUCCESS ) { - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); return errCode; } hb_delimInitArea( pArea, szFileName ); /* Position cursor at the first record */ - return SELF_GOTOP( ( AREAP ) pArea ); + return SELF_GOTOP( &pArea->area ); } /* @@ -1391,7 +1391,7 @@ static HB_ERRCODE hb_delimOpen( DELIMAREAP pArea, LPDBOPENINFO pOpenInfo ) if( hb_setGetDefExtension() && ! pFileName->szExtension ) { PHB_ITEM pFileExt = hb_itemPutC( NULL, NULL ); - SELF_INFO( ( AREAP ) pArea, DBI_TABLEEXT, pFileExt ); + SELF_INFO( &pArea->area, DBI_TABLEEXT, pFileExt ); pFileName->szExtension = hb_itemGetCPtr( pFileExt ); hb_fsFNameMerge( szFileName, pFileName ); hb_itemRelease( pFileExt ); @@ -1433,7 +1433,7 @@ static HB_ERRCODE hb_delimOpen( DELIMAREAP pArea, LPDBOPENINFO pOpenInfo ) hb_errPutFileName( pError, szFileName ); hb_errPutFlags( pError, EF_CANRETRY | EF_CANDEFAULT ); } - fRetry = ( SELF_ERROR( ( AREAP ) pArea, pError ) == E_RETRY ); + fRetry = ( SELF_ERROR( &pArea->area, pError ) == E_RETRY ); } else fRetry = HB_FALSE; @@ -1446,17 +1446,17 @@ static HB_ERRCODE hb_delimOpen( DELIMAREAP pArea, LPDBOPENINFO pOpenInfo ) if( ! pArea->pFile ) return HB_FAILURE; - errCode = SUPER_OPEN( ( AREAP ) pArea, pOpenInfo ); + errCode = SUPER_OPEN( &pArea->area, pOpenInfo ); if( errCode != HB_SUCCESS ) { - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); return HB_FAILURE; } hb_delimInitArea( pArea, szFileName ); /* Position cursor at the first record */ - return SELF_GOTOP( ( AREAP ) pArea ); + return SELF_GOTOP( &pArea->area ); } /* diff --git a/src/rdd/sdf1.c b/src/rdd/sdf1.c index aa68d1ad92..96ba62093e 100644 --- a/src/rdd/sdf1.c +++ b/src/rdd/sdf1.c @@ -225,7 +225,7 @@ static HB_ERRCODE hb_sdfGoTop( SDFAREAP pArea ) { HB_TRACE( HB_TR_DEBUG, ( "hb_sdfGoTop(%p)", pArea ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; pArea->area.fTop = HB_TRUE; @@ -236,7 +236,7 @@ static HB_ERRCODE hb_sdfGoTop( SDFAREAP pArea ) if( hb_sdfReadRecord( pArea ) != HB_SUCCESS ) return HB_FAILURE; - return SELF_SKIPFILTER( ( AREAP ) pArea, 1 ); + return SELF_SKIPFILTER( &pArea->area, 1 ); } /* @@ -246,7 +246,7 @@ static HB_ERRCODE hb_sdfSkipRaw( SDFAREAP pArea, HB_LONG lToSkip ) { HB_TRACE( HB_TR_DEBUG, ( "hb_sdfSkipRaw(%p,%ld)", pArea, lToSkip ) ); - if( SELF_GOCOLD( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; if( lToSkip != 1 ) @@ -301,7 +301,7 @@ static HB_ERRCODE hb_sdfRecId( SDFAREAP pArea, PHB_ITEM pRecNo ) HB_TRACE( HB_TR_DEBUG, ( "hb_sdfRecId(%p,%p)", pArea, pRecNo ) ); - errCode = SELF_RECNO( ( AREAP ) pArea, &ulRecNo ); + errCode = SELF_RECNO( &pArea->area, &ulRecNo ); #ifdef HB_CLP_STRICT /* this is for strict Clipper compatibility but IMHO Clipper should not @@ -329,10 +329,10 @@ static HB_ERRCODE hb_sdfAppend( SDFAREAP pArea, HB_BOOL fUnLockAll ) HB_SYMBOL_UNUSED( fUnLockAll ); - if( SELF_GOCOLD( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; - if( SELF_GOHOT( ( AREAP ) pArea ) != HB_SUCCESS ) + if( SELF_GOHOT( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; pArea->nRecordOffset = pArea->nFileSize; @@ -466,7 +466,7 @@ static HB_ERRCODE hb_sdfGetValue( SDFAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pI hb_errPutDescription( pError, hb_langDGetErrorDesc( EG_DATATYPE ) ); hb_errPutOperation( pError, hb_dynsymName( ( PHB_DYNS ) pField->sym ) ); hb_errPutSubCode( pError, EDBF_DATATYPE ); - SELF_ERROR( ( AREAP ) pArea, pError ); + SELF_ERROR( &pArea->area, pError ); hb_itemRelease( pError ); return HB_FAILURE; } @@ -587,7 +587,7 @@ static HB_ERRCODE hb_sdfPutValue( SDFAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pI hb_errPutOperation( pError, hb_dynsymName( ( PHB_DYNS ) pField->sym ) ); hb_errPutSubCode( pError, errCode ); hb_errPutFlags( pError, EF_CANDEFAULT ); - errCode = SELF_ERROR( ( AREAP ) pArea, pError ); + errCode = SELF_ERROR( &pArea->area, pError ); hb_itemRelease( pError ); return errCode == E_DEFAULT ? HB_SUCCESS : HB_FAILURE; } @@ -642,7 +642,7 @@ static HB_ERRCODE hb_sdfTrans( SDFAREAP pArea, LPDBTRANSINFO pTransInfo ) else { PHB_ITEM pPutRec = hb_itemPutL( NULL, HB_FALSE ); - if( SELF_INFO( ( AREAP ) pTransInfo->lpaDest, DBI_CANPUTREC, pPutRec ) != HB_SUCCESS ) + if( SELF_INFO( pTransInfo->lpaDest, DBI_CANPUTREC, pPutRec ) != HB_SUCCESS ) { hb_itemRelease( pPutRec ); return HB_FAILURE; @@ -654,7 +654,7 @@ static HB_ERRCODE hb_sdfTrans( SDFAREAP pArea, LPDBTRANSINFO pTransInfo ) hb_itemRelease( pPutRec ); } } - return SUPER_TRANS( ( AREAP ) pArea, pTransInfo ); + return SUPER_TRANS( &pArea->area, pTransInfo ); } /* @@ -678,7 +678,7 @@ static HB_ERRCODE hb_sdfGoCold( SDFAREAP pArea ) hb_errPutSubCode( pError, EDBF_WRITE ); hb_errPutOsCode( pError, hb_fsError() ); hb_errPutFileName( pError, pArea->szFileName ); - SELF_ERROR( ( AREAP ) pArea, pError ); + SELF_ERROR( &pArea->area, pError ); hb_itemRelease( pError ); return HB_FAILURE; } @@ -705,7 +705,7 @@ static HB_ERRCODE hb_sdfGoHot( SDFAREAP pArea ) hb_errPutGenCode( pError, EG_READONLY ); hb_errPutDescription( pError, hb_langDGetErrorDesc( EG_READONLY ) ); hb_errPutSubCode( pError, EDBF_READONLY ); - SELF_ERROR( ( AREAP ) pArea, pError ); + SELF_ERROR( &pArea->area, pError ); hb_itemRelease( pError ); return HB_FAILURE; } @@ -722,7 +722,7 @@ static HB_ERRCODE hb_sdfFlush( SDFAREAP pArea ) HB_TRACE( HB_TR_DEBUG, ( "hb_sdfFlush(%p)", pArea ) ); - errCode = SELF_GOCOLD( ( AREAP ) pArea ); + errCode = SELF_GOCOLD( &pArea->area ); if( pArea->fFlush ) { @@ -792,7 +792,7 @@ static HB_ERRCODE hb_sdfInfo( SDFAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem } default: - return SUPER_INFO( ( AREAP ) pArea, uiIndex, pItem ); + return SUPER_INFO( &pArea->area, uiIndex, pItem ); } return HB_SUCCESS; @@ -906,7 +906,7 @@ static HB_ERRCODE hb_sdfAddField( SDFAREAP pArea, LPDBFIELDINFO pFieldInfo ) pArea->pFieldOffset[ pArea->area.uiFieldCount ] = pArea->uiRecordLen; pArea->uiRecordLen += pFieldInfo->uiLen; - return SUPER_ADDFIELD( ( AREAP ) pArea, pFieldInfo ); + return SUPER_ADDFIELD( &pArea->area, pFieldInfo ); } /* @@ -916,7 +916,7 @@ static HB_ERRCODE hb_sdfSetFieldExtent( SDFAREAP pArea, HB_USHORT uiFieldExtent { HB_TRACE( HB_TR_DEBUG, ( "hb_sdfSetFieldExtent(%p,%hu)", pArea, uiFieldExtent ) ); - if( SUPER_SETFIELDEXTENT( ( AREAP ) pArea, uiFieldExtent ) == HB_FAILURE ) + if( SUPER_SETFIELDEXTENT( &pArea->area, uiFieldExtent ) == HB_FAILURE ) return HB_FAILURE; /* Alloc field offsets array */ @@ -936,7 +936,7 @@ static HB_ERRCODE hb_sdfNewArea( SDFAREAP pArea ) { HB_TRACE( HB_TR_DEBUG, ( "hb_sdfNewArea(%p)", pArea ) ); - if( SUPER_NEW( ( AREAP ) pArea ) == HB_FAILURE ) + if( SUPER_NEW( &pArea->area ) == HB_FAILURE ) return HB_FAILURE; pArea->pFile = NULL; @@ -965,12 +965,12 @@ static HB_ERRCODE hb_sdfClose( SDFAREAP pArea ) { HB_TRACE( HB_TR_DEBUG, ( "hb_sdfClose(%p)", pArea ) ); - SUPER_CLOSE( ( AREAP ) pArea ); + SUPER_CLOSE( &pArea->area ); /* Update record and unlock records */ if( pArea->pFile ) { - SELF_FLUSH( ( AREAP ) pArea ); + SELF_FLUSH( &pArea->area ); hb_fileClose( pArea->pFile ); pArea->pFile = NULL; } @@ -1028,7 +1028,7 @@ static HB_ERRCODE hb_sdfCreate( SDFAREAP pArea, LPDBOPENINFO pCreateInfo ) if( hb_setGetDefExtension() && ! pFileName->szExtension ) { PHB_ITEM pItem = hb_itemPutC( NULL, NULL ); - SELF_INFO( ( AREAP ) pArea, DBI_TABLEEXT, pItem ); + SELF_INFO( &pArea->area, DBI_TABLEEXT, pItem ); pFileName->szExtension = hb_itemGetCPtr( pItem ); hb_fsFNameMerge( szFileName, pFileName ); hb_itemRelease( pItem ); @@ -1059,7 +1059,7 @@ static HB_ERRCODE hb_sdfCreate( SDFAREAP pArea, LPDBOPENINFO pCreateInfo ) hb_errPutFileName( pError, szFileName ); hb_errPutFlags( pError, EF_CANRETRY | EF_CANDEFAULT ); } - fRetry = ( SELF_ERROR( ( AREAP ) pArea, pError ) == E_RETRY ); + fRetry = ( SELF_ERROR( &pArea->area, pError ) == E_RETRY ); } else fRetry = HB_FALSE; @@ -1072,17 +1072,17 @@ static HB_ERRCODE hb_sdfCreate( SDFAREAP pArea, LPDBOPENINFO pCreateInfo ) if( ! pArea->pFile ) return HB_FAILURE; - errCode = SUPER_CREATE( ( AREAP ) pArea, pCreateInfo ); + errCode = SUPER_CREATE( &pArea->area, pCreateInfo ); if( errCode != HB_SUCCESS ) { - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); return errCode; } hb_sdfInitArea( pArea, szFileName ); /* Position cursor at the first record */ - return SELF_GOTOP( ( AREAP ) pArea ); + return SELF_GOTOP( &pArea->area ); } /* @@ -1120,7 +1120,7 @@ static HB_ERRCODE hb_sdfOpen( SDFAREAP pArea, LPDBOPENINFO pOpenInfo ) if( hb_setGetDefExtension() && ! pFileName->szExtension ) { PHB_ITEM pFileExt = hb_itemPutC( NULL, NULL ); - SELF_INFO( ( AREAP ) pArea, DBI_TABLEEXT, pFileExt ); + SELF_INFO( &pArea->area, DBI_TABLEEXT, pFileExt ); pFileName->szExtension = hb_itemGetCPtr( pFileExt ); hb_fsFNameMerge( szFileName, pFileName ); hb_itemRelease( pFileExt ); @@ -1162,7 +1162,7 @@ static HB_ERRCODE hb_sdfOpen( SDFAREAP pArea, LPDBOPENINFO pOpenInfo ) hb_errPutFileName( pError, szFileName ); hb_errPutFlags( pError, EF_CANRETRY | EF_CANDEFAULT ); } - fRetry = ( SELF_ERROR( ( AREAP ) pArea, pError ) == E_RETRY ); + fRetry = ( SELF_ERROR( &pArea->area, pError ) == E_RETRY ); } else fRetry = HB_FALSE; @@ -1175,17 +1175,17 @@ static HB_ERRCODE hb_sdfOpen( SDFAREAP pArea, LPDBOPENINFO pOpenInfo ) if( ! pArea->pFile ) return HB_FAILURE; - errCode = SUPER_OPEN( ( AREAP ) pArea, pOpenInfo ); + errCode = SUPER_OPEN( &pArea->area, pOpenInfo ); if( errCode != HB_SUCCESS ) { - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( &pArea->area ); return HB_FAILURE; } hb_sdfInitArea( pArea, szFileName ); /* Position cursor at the first record */ - return SELF_GOTOP( ( AREAP ) pArea ); + return SELF_GOTOP( &pArea->area ); } /* diff --git a/src/rdd/workarea.c b/src/rdd/workarea.c index 5b6bf454ab..3035357ba5 100644 --- a/src/rdd/workarea.c +++ b/src/rdd/workarea.c @@ -867,7 +867,7 @@ static HB_ERRCODE hb_waOpen( AREAP pArea, LPDBOPENINFO pInfo ) ( int ) pInfo->uiArea ); if( ! pArea->atomAlias ) { - SELF_CLOSE( ( AREAP ) pArea ); + SELF_CLOSE( pArea ); return HB_FAILURE; } } @@ -1194,23 +1194,23 @@ static HB_ERRCODE hb_waTransRec( AREAP pArea, LPDBTRANSINFO pTransInfo ) HB_TRACE( HB_TR_DEBUG, ( "hb_waTransRec(%p, %p)", pArea, pTransInfo ) ); /* Record deleted? */ - errCode = SELF_DELETED( ( AREAP ) pArea, &bDeleted ); + errCode = SELF_DELETED( pArea, &bDeleted ); if( errCode != HB_SUCCESS ) return errCode; if( pTransInfo->uiFlags & DBTF_MATCH && pTransInfo->uiFlags & DBTF_PUTREC ) { - errCode = SELF_GETREC( ( AREAP ) pArea, &pRecord ); + errCode = SELF_GETREC( pArea, &pRecord ); if( errCode != HB_SUCCESS ) return errCode; /* Append a new record */ - errCode = SELF_APPEND( ( AREAP ) pTransInfo->lpaDest, HB_TRUE ); + errCode = SELF_APPEND( pTransInfo->lpaDest, HB_TRUE ); if( errCode != HB_SUCCESS ) return errCode; /* Copy record */ - errCode = SELF_PUTREC( ( AREAP ) pTransInfo->lpaDest, pRecord ); + errCode = SELF_PUTREC( pTransInfo->lpaDest, pRecord ); } else { @@ -1219,7 +1219,7 @@ static HB_ERRCODE hb_waTransRec( AREAP pArea, LPDBTRANSINFO pTransInfo ) HB_USHORT uiCount; /* Append a new record */ - errCode = SELF_APPEND( ( AREAP ) pTransInfo->lpaDest, HB_TRUE ); + errCode = SELF_APPEND( pTransInfo->lpaDest, HB_TRUE ); if( errCode != HB_SUCCESS ) return errCode; @@ -1227,11 +1227,10 @@ static HB_ERRCODE hb_waTransRec( AREAP pArea, LPDBTRANSINFO pTransInfo ) pTransItem = pTransInfo->lpTransItems; for( uiCount = pTransInfo->uiItemCount; uiCount; --uiCount ) { - errCode = SELF_GETVALUE( ( AREAP ) pArea, - pTransItem->uiSource, pItem ); + errCode = SELF_GETVALUE( pArea, pTransItem->uiSource, pItem ); if( errCode != HB_SUCCESS ) break; - errCode = SELF_PUTVALUE( ( AREAP ) pTransInfo->lpaDest, + errCode = SELF_PUTVALUE( pTransInfo->lpaDest, pTransItem->uiDest, pItem ); if( errCode != HB_SUCCESS ) break; @@ -1243,13 +1242,13 @@ static HB_ERRCODE hb_waTransRec( AREAP pArea, LPDBTRANSINFO pTransInfo ) /* Delete the new record if copy fail */ if( errCode != HB_SUCCESS ) { - SELF_DELETE( ( AREAP ) pTransInfo->lpaDest ); + SELF_DELETE( pTransInfo->lpaDest ); return errCode; } /* Delete the new record */ if( bDeleted ) - return SELF_DELETE( ( AREAP ) pTransInfo->lpaDest ); + return SELF_DELETE( pTransInfo->lpaDest ); return HB_SUCCESS; } @@ -1504,7 +1503,7 @@ static HB_ERRCODE hb_waSetRel( AREAP pArea, LPDBRELINFO lpdbRelInf ) lpdbRelations->abKey = lpdbRelInf->abKey; lpdbRelations->lpdbriNext = lpdbRelInf->lpdbriNext; - return SELF_CHILDSTART( ( AREAP ) lpdbRelInf->lpaChild, lpdbRelations ); + return SELF_CHILDSTART( lpdbRelInf->lpaChild, lpdbRelations ); } /*