2006-04-09 19:16 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/source/rdd/dbfcdx/dbfcdx1.c
    ! fixed scope checking when skip is done from the record which
      dos not exist in index

  * harbour/source/vm/classes.c
    * use hb_itemClone() - it will save us modifications in the
      future if we will add new items which will be passed as
      parameters like arrays (f.e. hashes)
    * some source code formatting
This commit is contained in:
Przemyslaw Czerpak
2006-04-09 17:20:33 +00:00
parent 68f940c3e0
commit 6b48bcaafc
3 changed files with 53 additions and 61 deletions

View File

@@ -8,15 +8,26 @@
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
Authors of RDDs which do not allow to create tables without fields
should add to their low level RDD code necessary RT error.
2006-04-14 20:51 UTC+0100 Jacek Kubica (kubica/at/wssk.wroc.pl)
* source/rtl/filesys.c
! fixed problem in CURDIR() wchich return truncate value
if directory name is 3 chars long (fix given by Przemyslaw Czerpak)
2006-04-10 00:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rdd/dbfntx/dbfntx1.c
! fixed skip back after updating last record
2006-04-09 19:16 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rdd/dbfcdx/dbfcdx1.c
! fixed scope checking when skip is done from the record which
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
future if we will add new items which will be passed as
parameters like arrays (f.e. hashes)
* some source code formatting
@@ -874,8 +885,8 @@
and use them in some GTs.
* harbour/source/rtl/gx.c
* xharbour/contrib/rdd_ads/ads1.c
* xharbour/contrib/rdd_ads/adsfunc.c
* use screen dimensions as default values for SETMODE() not maxrow()/
maxcol()
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/source/rtl/gtxwc/gtxwc.h

View File

@@ -5134,9 +5134,11 @@ static ERRCODE hb_cdxDBOISkipUnique( CDXAREAP pArea, LPCDXTAG pTag, BOOL fForwar
hb_cdxTagRefreshScope( pTag );
if ( ! hb_cdxCurKeyRefresh( pArea, pTag ) )
{
if ( pTag->TagEOF )
if ( pTag->TagEOF || ( fForward ? !hb_cdxBottomScope( pTag ) :
!hb_cdxTopScope( pTag ) ) )
fOut = TRUE;
else if ( ( fForward ? pTag->UsrAscend : !pTag->UsrAscend ) &&
else if ( ( fForward ? pTag->UsrAscend && hb_cdxTopScope( pTag ) :
!pTag->UsrAscend && hb_cdxBottomScope( pTag ) ) &&
pTag->CurKey->rec != 0 )
{
pKey = hb_cdxKeyEval( pKey, pTag );
@@ -5241,7 +5243,8 @@ static BOOL hb_cdxDBOISkipEval( CDXAREAP pArea, LPCDXTAG pTag, BOOL fForward,
if ( ! hb_cdxCurKeyRefresh( pArea, pTag ) )
{
if ( !pTag->TagEOF && pTag->CurKey->rec != 0 &&
( fForward ? pTag->UsrAscend : !pTag->UsrAscend ) )
( fForward ? pTag->UsrAscend : !pTag->UsrAscend ) &&
hb_cdxTopScope( pTag ) && hb_cdxBottomScope( pTag ) )
fFirst = FALSE;
}
if ( fForward )
@@ -5349,7 +5352,8 @@ static BOOL hb_cdxDBOISkipWild( CDXAREAP pArea, LPCDXTAG pTag, BOOL fForward,
if ( ! hb_cdxCurKeyRefresh( pArea, pTag ) )
{
if ( !pTag->TagEOF && pTag->CurKey->rec != 0 &&
( fForward ? pTag->UsrAscend : !pTag->UsrAscend ) )
( fForward ? pTag->UsrAscend : !pTag->UsrAscend ) &&
hb_cdxTopScope( pTag ) && hb_cdxBottomScope( pTag ) )
fFirst = FALSE;
}
@@ -5506,7 +5510,8 @@ static BOOL hb_cdxDBOISkipRegEx( CDXAREAP pArea, LPCDXTAG pTag, BOOL fForward,
if ( ! hb_cdxCurKeyRefresh( pArea, pTag ) )
{
if ( !pTag->TagEOF && pTag->CurKey->rec != 0 &&
( fForward ? pTag->UsrAscend : !pTag->UsrAscend ) )
( fForward ? pTag->UsrAscend : !pTag->UsrAscend ) &&
hb_cdxTopScope( pTag ) && hb_cdxBottomScope( pTag ) )
fFirst = FALSE;
}
if ( fForward )
@@ -6541,22 +6546,22 @@ static ERRCODE hb_cdxSkipRaw( CDXAREAP pArea, LONG lToSkip )
{
if ( fForward )
{
if ( pTag->TagEOF )
if ( pTag->TagEOF || !hb_cdxBottomScope( pTag ) )
fOut = TRUE;
else if ( pTag->UsrAscend )
else if ( pTag->UsrAscend && hb_cdxTopScope( pTag ) )
lToSkip--;
}
else if ( pArea->fPositioned )
{
if ( pTag->TagEOF )
if ( pTag->TagEOF || !hb_cdxTopScope( pTag ) )
fOut = TRUE;
else if ( !pTag->UsrAscend )
else if ( !pTag->UsrAscend && hb_cdxBottomScope( pTag ) )
lToSkip++;
}
}
if ( fForward )
{
if ( pArea->fPositioned && !fOut )
if ( !fOut )
{
while ( lToSkip-- > 0 )
{
@@ -6568,7 +6573,7 @@ static ERRCODE hb_cdxSkipRaw( CDXAREAP pArea, LONG lToSkip )
}
}
}
retval = SELF_GOTO( ( AREAP ) pArea, ( !pArea->fPositioned || pTag->TagEOF || fOut )
retval = SELF_GOTO( ( AREAP ) pArea, ( pTag->TagEOF || fOut )
? 0 : pTag->CurKey->rec );
}
else /* if ( lToSkip < 0 ) */

View File

@@ -823,7 +823,7 @@ char * hb_objGetRealClsName( PHB_ITEM pObject, char * szName )
*/
PHB_FUNC hb_objGetMethod( PHB_ITEM pObject, PHB_SYMB pMessage )
{
return hb_objGetMthd( (PHB_ITEM) pObject, (PHB_SYMB) pMessage, TRUE ) ;
return hb_objGetMthd( (PHB_ITEM) pObject, (PHB_SYMB) pMessage, TRUE ) ;
}
PHB_FUNC hb_objGetMthd( PHB_ITEM pObject, PHB_SYMB pMessage, BOOL lAllowErrFunc )
@@ -836,13 +836,13 @@ PHB_FUNC hb_objGetMthd( PHB_ITEM pObject, PHB_SYMB pMessage, BOOL lAllowErrFunc
HB_TRACE(HB_TR_DEBUG, ("hb_objGetMthd(%p, %p)", pObject, pMessage));
if( pObject->type == HB_IT_ARRAY )
{
{
uiClass = pObject->item.asArray.value->uiClass;
}
}
else
{
{
uiClass = 0;
}
}
if( uiClass && uiClass <= s_uiClasses )
{
@@ -861,9 +861,9 @@ PHB_FUNC hb_objGetMthd( PHB_ITEM pObject, PHB_SYMB pMessage, BOOL lAllowErrFunc
s_pMethod = pMethod ;
if( hb_bProfiler )
{
{
pMethod->ulCalls++; /* Profiler */
}
}
return pFunction;
}
@@ -1152,13 +1152,7 @@ HB_FUNC( __CLSADDMSG )
if( pInit && ! HB_IS_NIL( pInit ) ) /* Initializer found */
{
if( HB_IS_ARRAY( pInit ) )
pNewMeth->pInitValue = hb_arrayClone( pInit );
else
{
pNewMeth->pInitValue = hb_itemNew( NULL );
hb_itemCopy( pNewMeth->pInitValue, pInit );
}
pNewMeth->pInitValue = hb_itemClone( pInit );
}
}
break;
@@ -1179,13 +1173,7 @@ HB_FUNC( __CLSADDMSG )
if( pInit && ! HB_IS_NIL( pInit ) ) /* Initializer found */
{
if( HB_IS_ARRAY( pInit ) )
pNewMeth->pInitValue = hb_arrayClone( pInit );
else
{
pNewMeth->pInitValue = hb_itemNew( NULL );
hb_itemCopy( pNewMeth->pInitValue, pInit );
}
pNewMeth->pInitValue = hb_itemClone( pInit );
}
}
@@ -1436,17 +1424,8 @@ HB_FUNC( __CLSNEW )
if( pSprCls->pMethods[ ui ].pInitValue )
{
PHB_ITEM pInitValue;
if( HB_IS_ARRAY( pSprCls->pMethods[ ui ].pInitValue ) )
pNewCls->pMethods[ uiAt + uiBucket ].pInitValue = hb_arrayClone( pSprCls->pMethods[ ui ].pInitValue );
else
{
pInitValue = hb_itemNew( NULL );
hb_itemCopy( pInitValue, pSprCls->pMethods[ ui ].pInitValue );
pNewCls->pMethods[ uiAt + uiBucket ].pInitValue = pInitValue;
}
pNewCls->pMethods[ uiAt + uiBucket ].pInitValue =
hb_itemClone( pSprCls->pMethods[ ui ].pInitValue );
}
break;
}
@@ -1768,7 +1747,7 @@ HB_FUNC( __OBJCLONE )
PHB_ITEM pDstObject ;
if( pSrcObject )
{
{
pDstObject= hb_arrayClone( pSrcObject ) ;
/* pDstObject->item.asArray.value->puiClsTree = NULL; */
@@ -1776,7 +1755,7 @@ HB_FUNC( __OBJCLONE )
/* pDstObject->item.asArray.value->puiClsTree[0]=0; */
hb_itemRelease( hb_itemReturn( pDstObject ) );
}
}
else
{
hb_errRT_BASE( EG_ARG, 3001, NULL, "__OBJCLONE", 0 );
@@ -1893,9 +1872,9 @@ HB_FUNC( __CLSINSTSUPER )
}
}
else
{
{
hb_errRT_BASE( EG_ARG, 3003, "Cannot find super class", "__CLSINSTSUPER", 0 );
}
}
}
if( ! bFound )
@@ -2190,16 +2169,13 @@ static HARBOUR hb___msgClsSel( void )
? pSelf->item.asArray.value->uiClass : 0 );
/* Get class word */
PHB_ITEM pReturn = hb_itemNew( NULL );
USHORT nParam = HB_MSGLISTALL;
USHORT uiPCount = hb_pcount();
USHORT nParam=HB_MSGLISTALL;
USHORT uiPCount=hb_pcount();
if( uiPCount>=1 )
{
nParam = (USHORT) hb_parni( 1 );
}
if( uiPCount >= 1 )
{
nParam = ( USHORT ) hb_parni( 1 );
}
if( ( ! uiClass ) && HB_IS_BYREF( pSelf ) )
{ /* Variables by reference */
@@ -2339,7 +2315,7 @@ static HARBOUR hb___msgSuper( void )
pCopy->item.asArray.value->uiClass = s_pMethod->uiSprClass; /* superclass handel casting */
pCopy->item.asArray.value->puiClsTree = NULL ;
hb_itemRelease(hb_itemReturn( pCopy ));
hb_itemRelease( hb_itemReturn( pCopy ) );
}
/*