2006-04-07 15:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/bin/hb-func.sh
    * support for detecting startup function in C++ mode

  * harbour/include/hbapi.h
    * some few #defines to translate some xHarbour functions names to Harbour

  * harbour/include/hbxvm.h
  * harbour/source/compiler/gencc.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/itemapi.c
  * harbour/source/common/hbdate.c
    + added optimizations for add and div by integer value
    * changed code generated for double values to avoid limitation in some
      C compilers like MSC and possible differ conversion inside C RTL then
      the one which uses Harbour RTL
    * some minor optimizations, cleanups and code formating

  * harbour/source/compiler/hbfix.c
    * optimize usage of HB_P_NOT PCODE - remove repeated NOT operations
      or revert conditional jumps if they are just after NOT.

  * harbour/source/rdd/dbf1.c
    * added support for NULL value set in memo fields by ACCESS

  * harbour/source/rdd/dbfcdx/dbfcdx1.c
    * fixed ordKeyPos() - for records out of scope

  * harbour/source/rtl/padc.c
  * harbour/source/rtl/padl.c
  * harbour/source/rtl/padr.c
  * harbour/source/rtl/substr.c
    * some minor optimizations to avoid new string item creation when
      it's not necessary

  * harbour/source/vm/classes.c
  * harbour/source/vm/extend.c
    * minor code formatting and optimizations
This commit is contained in:
Przemyslaw Czerpak
2006-04-08 00:51:27 +00:00
parent 23bb599ea9
commit 2b6f6caa62
3 changed files with 30 additions and 1 deletions

View File

@@ -8,6 +8,14 @@
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
dos not exist in index
* xharbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/vm/classes.c
* use hb_itemClone() - it will save us modifications in the
* xharbour/source/rdd/dbfntx/dbfntx1.c
parameters like arrays (f.e. hashes)
* some source code formatting
2006-04-09 14:55 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
* contrib/rdd_ads/ads1.c
* Added possibility to save memo fields > 64K

View File

@@ -7567,6 +7567,7 @@ static ERRCODE hb_cdxOrderDestroy( CDXAREAP pArea, LPDBORDERINFO pOrderInfo )
{
LPCDXINDEX pIndex, pIndexTmp;
LPCDXTAG pTag;
USHORT uiTag;
HB_TRACE(HB_TR_DEBUG, ("hb_cdxOrderDestroy(%p, %p)", pArea, pOrderInfo));
@@ -7578,7 +7579,7 @@ static ERRCODE hb_cdxOrderDestroy( CDXAREAP pArea, LPDBORDERINFO pOrderInfo )
if ( pOrderInfo->itmOrder )
{
pTag = hb_cdxFindTag( pArea, pOrderInfo->itmOrder, pOrderInfo->atomBagName, NULL );
pTag = hb_cdxFindTag( pArea, pOrderInfo->itmOrder, pOrderInfo->atomBagName, &uiTag );
if ( pTag )
{
pIndex = pTag->pIndex;
@@ -7619,6 +7620,10 @@ static ERRCODE hb_cdxOrderDestroy( CDXAREAP pArea, LPDBORDERINFO pOrderInfo )
pIndex->fDelete = TRUE;
hb_cdxIndexFree( pIndex );
}
if( uiTag < pArea->uiTag )
pArea->uiTag--;
else if( uiTag == pArea->uiTag )
pArea->uiTag = 0;
}
else
{

View File

@@ -3809,14 +3809,30 @@ static ULONG hb_ntxOrdKeyNo( LPTAGINFO pTag )
*/
static BOOL hb_ntxOrdKeyGoto( LPTAGINFO pTag, ULONG ulKeyNo )
{
NTXAREAP pArea = pTag->Owner->Owner;
if( ! ulKeyNo || ! hb_ntxTagLockRead( pTag ) )
return FALSE;
hb_ntxTagRefreshScope( pTag );
hb_ntxTagGoTop( pTag );
while( !pTag->TagEOF && --ulKeyNo )
{
hb_ntxTagSkipNext( pTag );
}
if( pTag->TagEOF )
{
SELF_GOTO( ( AREAP ) pArea, 0 );
}
else
{
LPTAGINFO pSavedTag = pArea->lpCurTag;
pArea->lpCurTag = pTag;
SELF_GOTO( ( AREAP ) pArea, pTag->CurKeyInfo->Xtra );
SELF_SKIPFILTER( ( AREAP ) pArea, 1 );
pArea->lpCurTag = pSavedTag;
}
hb_ntxTagUnLockRead( pTag );
return TRUE;
}