Fixed bug in Macro Compiler where Field Assignment is compiled mistakenly as a Memvar Assignment.

This commit is contained in:
Antonio Linares
2002-03-18 13:33:45 +00:00
parent ba3908cbaf
commit 20d82b2ee1

View File

@@ -1191,7 +1191,13 @@ void hb_compGenPopVar( char * szVarName, HB_MACRO_DECL )
}
else
{
hb_compMemvarGenPCode( HB_P_MPOPMEMVAR, szVarName, HB_MACRO_PARAM );
HB_DYNS_PTR pSym = hb_dynsymFind( szVarName );
if( pSym && ! pSym->hMemvar )
hb_compMemvarGenPCode( HB_P_MPOPFIELD, szVarName, HB_MACRO_PARAM );
else
hb_compMemvarGenPCode( HB_P_MPOPMEMVAR, szVarName, HB_MACRO_PARAM );
hb_compMemvarCheck( szVarName, HB_MACRO_PARAM );
}
}
@@ -1274,7 +1280,18 @@ void hb_compGenPushVar( char * szVarName, HB_MACRO_DECL )
}
else
{
hb_compMemvarGenPCode( HB_P_MPUSHVARIABLE, szVarName, HB_MACRO_PARAM );
HB_DYNS_PTR pSym = hb_dynsymFind( szVarName );
if( pSym && pSym->hMemvar )
hb_compMemvarGenPCode( HB_P_MPUSHMEMVAR, szVarName, HB_MACRO_PARAM );
else if( pSym )
hb_compMemvarGenPCode( HB_P_MPUSHFIELD, szVarName, HB_MACRO_PARAM );
else
// Will result in: HB_MACRO_UNKN_SYM + ~HB_MACRO_CONT
hb_compMemvarGenPCode( HB_P_MPUSHVARIABLE, szVarName, HB_MACRO_PARAM );
hb_compMemvarCheck( szVarName, HB_MACRO_PARAM );
}
}