diff --git a/ChangeLog.txt b/ChangeLog.txt index f31b6dc0c5..d584153b9c 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,25 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2015-04-01 14:59 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * src/debug/dbgentry.c + ! fixed typo in my previous commit for AltD() function detection + Thanks to FranĨek Prijatelj for reporting the problem and Abe + for self contain example + + * src/rdd/dbfcdx/dbfcdx1.c + * reverted byte order in Harbour CDX signature - by mistake I used + little endian. When existsing index is open then reverted signatures + are accepted for backward compatiblity though they will be removed + in the future. + + * src/rdd/workarea.c + * move results of EVALBLOCK() RDD method from Harbour stack return item + to workarea valResult item instead of copping it. + ; Warning: This modification may exploit problems in code which + wrongly looks for result of EVALBLOCK() RDD method in + HVM stack return item instead of workarea valResult item. + 2015-03-27 16:21 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * src/debug/dbgentry.c % small optimizations diff --git a/src/debug/dbgentry.c b/src/debug/dbgentry.c index 3625a907b8..cc36d143f1 100644 --- a/src/debug/dbgentry.c +++ b/src/debug/dbgentry.c @@ -1555,7 +1555,7 @@ static HB_BOOL hb_dbgIsAltD( void ) HB_ISIZ nOffset = hb_stackBaseProcOffset( 1 ); return nOffset > 0 && - strcmp( hb_itemGetSymbol( hb_stackItem( nOffset ) )->szName, "ALTD" ); + ! strcmp( hb_itemGetSymbol( hb_stackItem( nOffset ) )->szName, "ALTD" ); } diff --git a/src/rdd/dbfcdx/dbfcdx1.c b/src/rdd/dbfcdx/dbfcdx1.c index 863a730191..e7426bd9a8 100644 --- a/src/rdd/dbfcdx/dbfcdx1.c +++ b/src/rdd/dbfcdx/dbfcdx1.c @@ -3459,7 +3459,7 @@ static void hb_cdxTagHeaderStore( LPCDXTAG pTag ) tagHeader.indexOpt = pTag->OptFlags; if( pTag->TagBlock == 0 ) { - HB_PUT_LE_UINT32( tagHeader.signature, CDX_HARBOUR_SIGNATURE ); + HB_PUT_BE_UINT32( tagHeader.signature, CDX_HARBOUR_SIGNATURE ); tagHeader.indexSig = pTag->pIndex->fLargeFile ? 0x21 : 0x01; } else @@ -3551,8 +3551,10 @@ static void hb_cdxTagLoad( LPCDXTAG pTag ) { HB_BOOL fLargeFile = HB_FALSE; HB_USHORT uiPageLen = CDX_PAGELEN, uiHeaderLen = CDX_HEADERLEN; + HB_U32 u32Sig = HB_GET_BE_UINT32( tagHeader.signature ); - if( HB_GET_LE_UINT32( tagHeader.signature ) == CDX_HARBOUR_SIGNATURE ) + if( u32Sig == CDX_HARBOUR_SIGNATURE || + u32Sig == HB_SWAP_UINT32( CDX_HARBOUR_SIGNATURE ) ) { fLargeFile = tagHeader.indexSig == 0x21; uiHeaderLen = HB_GET_LE_UINT16( tagHeader.headerLen ); diff --git a/src/rdd/workarea.c b/src/rdd/workarea.c index e3000bee68..c6953afc9a 100644 --- a/src/rdd/workarea.c +++ b/src/rdd/workarea.c @@ -1830,7 +1830,7 @@ static HB_ERRCODE hb_waEvalBlock( AREAP pArea, PHB_ITEM pBlock ) if( ! pArea->valResult ) pArea->valResult = hb_itemNew( NULL ); - hb_itemCopy( pArea->valResult, pItem ); + hb_itemMove( pArea->valResult, pItem ); hb_rddSelectWorkAreaNumber( iCurrArea );