Fixed bug in Macro Compiler where Field Assignment is compiled mistakenly as a Memvar Assignment.
This commit is contained in:
@@ -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 );
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user