Skip to content
Permalink
Browse files

Fixed nested dynamic array indexing causing a compilation error.

  • Loading branch information...
Doom2fan authored and coelckers committed Mar 13, 2019
1 parent 43ca814 commit 7165b40657526fc618161d7857a814e265f5df7b
Showing with 13 additions and 2 deletions.
  1. +13 −2 src/scripting/backend/codegen.cpp
@@ -7425,10 +7425,21 @@ ExpEmit FxArrayElement::Emit(VMFunctionBuilder *build)
build->Emit(OP_LP, start.RegNum, arrayvar.RegNum, build->GetConstantInt(0));

auto f = Create<PField>(NAME_None, TypeUInt32, ismeta? VARF_Meta : 0, SizeAddr);
static_cast<FxMemberBase *>(Array)->membervar = f;
static_cast<FxMemberBase *>(Array)->AddressRequested = false;
auto arraymemberbase = static_cast<FxMemberBase *>(Array);

auto origmembervar = arraymemberbase->membervar;
auto origaddrreq = arraymemberbase->AddressRequested;
auto origvaluetype = Array->ValueType;

arraymemberbase->membervar = f;
arraymemberbase->AddressRequested = false;
Array->ValueType = TypeUInt32;

bound = Array->Emit(build);

arraymemberbase->membervar = origmembervar;
arraymemberbase->AddressRequested = origaddrreq;
Array->ValueType = origvaluetype;
}
else start = arrayvar;

0 comments on commit 7165b40

Please sign in to comment.
You can’t perform that action at this time.