- fixed: Stack based local VM object pointers should not be subjected to a read barrier.
This isn't done for register based variables so for consistency it should not be done for stack based variables, too. This difference in handling made it impossible to check the target of a hitscan attack if it was destroyed by getting damaged.
This commit is contained in:
parent
d3ed83942f
commit
43d759782d
3 changed files with 17 additions and 1 deletions
|
|
@ -6553,7 +6553,9 @@ ExpEmit FxStackVariable::Emit(VMFunctionBuilder *build)
|
|||
if (membervar->BitValue == -1)
|
||||
{
|
||||
if (offsetreg == -1) offsetreg = build->GetConstantInt(0);
|
||||
build->Emit(membervar->Type->GetLoadOp(), loc.RegNum, build->FramePointer.RegNum, offsetreg);
|
||||
auto op = membervar->Type->GetLoadOp();
|
||||
if (op == OP_LO) op = OP_LOS;
|
||||
build->Emit(op, loc.RegNum, build->FramePointer.RegNum, offsetreg);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue