*** empty log message ***
This commit is contained in:
@@ -8,10 +8,16 @@
|
||||
2002-12-01 23:12 UTC+0100 Foo Bar <foo.bar@foobar.org>
|
||||
*/
|
||||
|
||||
2003-10-21 10:23 UTC-0800 Luis Krause Mantilla <lkrausem@shaw.ca>
|
||||
* source/vm/codebloc.c
|
||||
! Fixed detached local bug (borrowed from xharbour)
|
||||
* source/rdd/dbcmd.c
|
||||
! Fixed bug in __dbLocate with When clause (borrowed from xharbour)
|
||||
|
||||
2003-10-20 13:45 UTC+0100 Ryszard Glab <rglab@przesiew.imid.med.pl>
|
||||
* .cvsignore
|
||||
* Restored previous version
|
||||
|
||||
|
||||
* include/hbexpra.c
|
||||
* include/hbexprb.c
|
||||
* include/hbexprc.c
|
||||
@@ -21,19 +27,19 @@
|
||||
* source/compiler/exproptc.c
|
||||
* source/compiler/harbour.sly
|
||||
* fixed declaration mismatch in Simplex version
|
||||
* fixed generation of string's pcode
|
||||
* fixed generation of string's pcode
|
||||
(introduced with my previous changes)
|
||||
|
||||
|
||||
* source/pp/ppcore.c
|
||||
* fixed support for stringify match markers <""> and <()> in Flex
|
||||
version (for example &var.1 have to be expanded into "&var.1"
|
||||
instead of var.1 since this is not a valid Clipper expression)
|
||||
NOTICE! In Simplex version this is not fixed because it is
|
||||
used as a hack to correctly support macro variables in GET
|
||||
used as a hack to correctly support macro variables in GET
|
||||
command.
|
||||
|
||||
|
||||
* tests/testget.prg
|
||||
* MEMVAR declaration was added
|
||||
* MEMVAR declaration was added
|
||||
|
||||
2003-10-20 11:37 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
|
||||
* include/hbapi.h
|
||||
|
||||
@@ -1521,6 +1521,39 @@ HB_FUNC( __DBLOCATE )
|
||||
else
|
||||
( ( AREAP ) s_pCurrArea->pArea )->fFound = ( bWhile && hb_itemGetL( pNewFor ) );
|
||||
}
|
||||
else if( pWhile )
|
||||
{
|
||||
if( hb_itemType( pWhile ) == HB_IT_BLOCK )
|
||||
bWhile = hb_itemGetL( hb_vmEvalBlock( pWhile ) );
|
||||
else
|
||||
bWhile = TRUE;
|
||||
if( hb_itemType( pNewFor ) == HB_IT_BLOCK )
|
||||
bFor = hb_itemGetL( hb_vmEvalBlock( pNewFor ) );
|
||||
else
|
||||
bFor = hb_itemGetL( pNewFor );
|
||||
if( pNext )
|
||||
lNext = hb_parnl( 3 );
|
||||
else
|
||||
lNext = 0xffffffffu; /* maxed out */
|
||||
while( !( ( AREAP ) s_pCurrArea->pArea )->fEof && lNext-- != 0 && bWhile && !bFor )
|
||||
{
|
||||
SELF_SKIP( ( AREAP ) s_pCurrArea->pArea, 1 );
|
||||
if( ( ( AREAP ) s_pCurrArea->pArea )->fEof )
|
||||
bFor = FALSE;
|
||||
else
|
||||
{
|
||||
if( hb_itemType( pWhile ) == HB_IT_BLOCK )
|
||||
bWhile = hb_itemGetL( hb_vmEvalBlock( pWhile ) );
|
||||
else
|
||||
bWhile = TRUE;
|
||||
if( hb_itemType( pNewFor ) == HB_IT_BLOCK )
|
||||
bFor = hb_itemGetL( hb_vmEvalBlock( pNewFor ) );
|
||||
else
|
||||
bFor = hb_itemGetL( pNewFor );
|
||||
}
|
||||
}
|
||||
( ( AREAP ) s_pCurrArea->pArea )->fFound = bFor;
|
||||
}
|
||||
else if( pNext )
|
||||
{
|
||||
lNext = hb_parnl( 3 );
|
||||
@@ -1582,7 +1615,7 @@ HB_FUNC( __DBLOCATE )
|
||||
bFor = hb_itemGetL( pNewFor );
|
||||
}
|
||||
}
|
||||
( ( AREAP ) s_pCurrArea->pArea )->fFound = bFor && bWhile;
|
||||
( ( AREAP ) s_pCurrArea->pArea )->fFound = bFor;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -110,6 +110,11 @@ HB_CODEBLOCK_PTR hb_codeblockNew( BYTE * pBuffer,
|
||||
*/
|
||||
pLocal = hb_stackItemFromBase( *pLocalPosTable++ );
|
||||
|
||||
if( HB_IS_BYREF( pLocal ) )
|
||||
{
|
||||
pLocal = hb_itemUnRef( pLocal );
|
||||
}
|
||||
|
||||
if( ! HB_IS_MEMVAR( pLocal ) )
|
||||
{
|
||||
/* Change the value only if this variable is not referenced
|
||||
|
||||
Reference in New Issue
Block a user