- fixed: String comparisons with constants did not work.

This commit is contained in:
Christoph Oelckers 2016-11-09 20:28:46 +01:00
parent fb2a843c03
commit 5151547df0
2 changed files with 7 additions and 0 deletions

View file

@ -3251,10 +3251,15 @@ ExpEmit FxCompareEq::Emit(VMFunctionBuilder *build)
int a = Operator == TK_Eq ? CMP_EQ :
Operator == TK_Neq ? CMP_EQ | CMP_CHECK : CMP_EQ | CMP_APPROX;
if (op1.Konst) a|= CMP_BK;
if (op2.Konst) a |= CMP_CK;
build->Emit(OP_LI, to.RegNum, 0, 0);
build->Emit(OP_CMPS, a, op1.RegNum, op2.RegNum);
build->Emit(OP_JMP, 1);
build->Emit(OP_LI, to.RegNum, 1);
op1.Free(build);
op2.Free(build);
return to;
}
else

View file

@ -497,6 +497,8 @@ void ZCCCompiler::CreateClassTypes()
DPrintf(DMSG_SPAMMY, "Registered %s as native with parent %s\n", me->TypeName.GetChars(), parent->TypeName.GetChars());
}
c->cls->Type = me;
auto ac = dyn_cast<PClassActor>(me);
if (ac != nullptr) ac->SourceLumpName = *c->cls->SourceName;
}
else
{