Fixed various virtualscope oddities; set scope for DECORATE classes to play.

This commit is contained in:
ZZYZX 2017-03-12 04:44:22 +02:00 committed by Christoph Oelckers
parent 23130678a1
commit bd889cc8f1
4 changed files with 14 additions and 11 deletions

View file

@ -8815,11 +8815,8 @@ ExpEmit FxVMFunctionCall::Emit(VMFunctionBuilder *build)
if (outerside == FScopeBarrier::Side_Virtual)
outerside = FScopeBarrier::SideFromObjectFlags(CallingFunction->OwningClass->ObjectFlags);
if (selfside != outerside && (selfside == FScopeBarrier::Side_Play || selfside == FScopeBarrier::Side_UI)) // if the self pointer and the calling functions have the same scope the check here is not needed.
{
// Check the self object against the calling function's flags at run time
build->Emit(OP_SCOPE, selfemit.RegNum, outerside + 1, build->GetConstantAddress(vmfunc, ATAG_OBJECT));
}
// Check the self object against the calling function's flags at run time
build->Emit(OP_SCOPE, selfemit.RegNum, outerside + 1, build->GetConstantAddress(vmfunc, ATAG_OBJECT));
}
if (selfemit.Fixed && selfemit.Target)