*** empty log message ***

This commit is contained in:
Antonio Linares
1999-08-06 17:53:29 +00:00
parent 154d64506e
commit 5b36bb57d0
2 changed files with 53 additions and 10 deletions

View File

@@ -1863,17 +1863,29 @@ void AddVar( char * szVarName )
{
case VS_LOCAL:
case VS_PARAMETER:
if( ! pFunc->pLocals )
pFunc->pLocals = pVar;
else
{
pLastVar = pFunc->pLocals;
while( pLastVar->pNext )
pLastVar = pLastVar->pNext;
pLastVar->pNext = pVar;
{ WORD wLocal = 1;
if( ! pFunc->pLocals )
pFunc->pLocals = pVar;
else
{
pLastVar = pFunc->pLocals;
while( pLastVar->pNext )
{
pLastVar = pLastVar->pNext;
wLocal++;
}
pLastVar->pNext = pVar;
}
if( iVarScope == VS_PARAMETER )
++functions.pLast->wParamCount;
if( _bDebugInfo )
{
GenPCode3( HB_P_LOCALNAME, LOBYTE( wLocal ), HIBYTE( wLocal ) );
GenPCodeN( szVarName, strlen( szVarName ) );
GenPCode1( 0 );
}
}
if( iVarScope == VS_PARAMETER )
++functions.pLast->wParamCount;
break;
case VS_STATIC:
@@ -2469,6 +2481,25 @@ void GenCCode( char *szFileName, char *szName ) /* generates the C languag
lPCodePos += 3;
break;
case HB_P_LOCALNAME:
fprintf( yyc, " HB_P_LOCALNAME, %i, %i,\t/* %s */\n",
pFunc->pCode[ lPCodePos + 1 ],
pFunc->pCode[ lPCodePos + 2 ],
( char * ) pFunc->pCode + lPCodePos + 3 );
lPCodePos += 3;
while( pFunc->pCode[ lPCodePos ] )
{
chr = pFunc->pCode[ lPCodePos++ ];
if( chr == '\'' || chr == '\\')
fprintf( yyc, " \'\\%c\',", chr );
else
fprintf( yyc, " \'%c\',", chr );
}
fprintf( yyc, " 0,\n" );
lPCodePos++;
break;
break;
case HB_P_MESSAGE:
{
WORD wFixPos;

View File

@@ -91,6 +91,7 @@ void Inc( void ); /* increment the latest numeric value on the st
void Instring( void ); /* check whether string 1 is contained in string 2 */
void Less( void ); /* checks if the latest - 1 value is less than the latest, removes both and leaves result */
void LessEqual( void ); /* checks if the latest - 1 value is less than or equal the latest, removes both and leaves result */
void LocalName( WORD wLocal, char * szLocalName ); /* locals and parameters index and name information for the debugger */
void Message( PHB_SYMB pSymMsg ); /* sends a message to an object */
void Minus( void ); /* substracts the latest two values on the stack, removes them and leaves the result */
void ModuleName( char * szModuleName ); /* PRG and function name information for the debugger */
@@ -425,6 +426,13 @@ void VirtualMachine( BYTE * pCode, PHB_SYMB pSymbols )
w += 3;
break;
case HB_P_LOCALNAME:
LocalName( pCode[ w + 1 ] + ( pCode[ w + 2 ] * 256 ),
( char * ) pCode + w + 3 );
w += 3;
while( pCode[ w++ ] );
break;
case HB_P_MESSAGE:
wParams = pCode[ w + 1 ] + ( pCode[ w + 2 ] * 256 );
Message( pSymbols + wParams );
@@ -1240,6 +1248,10 @@ void LessEqual( void )
}
}
void LocalName( WORD wLocal, char * szLocalName ) /* locals and parameters index and name information for the debugger */
{
}
void Message( PHB_SYMB pSymMsg ) /* sends a message to an object */
{
hb_itemCopy( stack.pPos, stack.pPos - 1 ); /* moves the object forward */