This is an automated email from the git hooks/post-receive script. odyx pushed a commit to branch debian/master in repository colobot.
commit 0d74b4f36b8e9fbd6236c56976d82abf56545fea Author: melex750 <melex...@users.noreply.github.com> Date: Fri Jun 24 16:56:17 2016 -0400 Fix initializing an array using variables Resolves a conflict between CBotListArray and CBotExprVar --- src/CBot/CBotInstr/CBotListArray.cpp | 19 +++++++++---------- src/CBot/CBotInstr/CBotListArray.h | 2 +- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/CBot/CBotInstr/CBotListArray.cpp b/src/CBot/CBotInstr/CBotListArray.cpp index 559bb9d..89cbb79 100644 --- a/src/CBot/CBotInstr/CBotListArray.cpp +++ b/src/CBot/CBotInstr/CBotListArray.cpp @@ -98,7 +98,7 @@ CBotInstr* CBotListArray::Compile(CBotToken* &p, CBotCStack* pStack, CBotTypResu } } - inst->m_expr->AddNext3(i); + inst->m_expr->AddNext3b(i); if ( p->GetType() == ID_COMMA ) continue; if ( p->GetType() == ID_CLBLK ) break; @@ -114,10 +114,10 @@ CBotInstr* CBotListArray::Compile(CBotToken* &p, CBotCStack* pStack, CBotTypResu { goto error; } - CBotVar* pv = pStk->GetVar(); // result of the expression - if (pv == nullptr || (!TypesCompatibles( type, pv->GetTypResult()) && - !(type.Eq(CBotTypPointer) && pv->GetTypResult().Eq(CBotTypNullPointer)) )) + CBotTypResult valType = pStk->GetTypResult(); + + if (!TypeCompatible(valType, type, ID_ASS) ) { pStk->SetError(CBotErrBadType1, p->GetStart()); goto error; @@ -133,15 +133,14 @@ CBotInstr* CBotListArray::Compile(CBotToken* &p, CBotCStack* pStack, CBotTypResu goto error; } - CBotVar* pv = pStk->GetVar(); // result of the expression + CBotTypResult valType = pStk->GetTypResult(); - if (pv == nullptr || (!TypesCompatibles( type, pv->GetTypResult()) && - !(type.Eq(CBotTypPointer) && pv->GetTypResult().Eq(CBotTypNullPointer)) )) + if (!TypeCompatible(valType, type, ID_ASS) ) { pStk->SetError(CBotErrBadType1, p->GetStart()); goto error; } - inst->m_expr->AddNext3(i); + inst->m_expr->AddNext3b(i); if (p->GetType() == ID_COMMA) continue; if (p->GetType() == ID_CLBLK) break; @@ -175,7 +174,7 @@ bool CBotListArray::Execute(CBotStack* &pj, CBotVar* pVar) int n = 0; - for (; p != nullptr ; n++, p = p->GetNext3()) + for (; p != nullptr ; n++, p = p->GetNext3b()) { if (pile1->GetState() > n) continue; @@ -207,7 +206,7 @@ void CBotListArray::RestoreState(CBotStack* &pj, bool bMain) int state = pile->GetState(); - while(state-- > 0) p = p->GetNext3() ; + while(state-- > 0) p = p->GetNext3b() ; p->RestoreState(pile, bMain); // size calculation //interrupted! } diff --git a/src/CBot/CBotInstr/CBotListArray.h b/src/CBot/CBotInstr/CBotListArray.h index c5f800b..18d6b56 100644 --- a/src/CBot/CBotInstr/CBotListArray.h +++ b/src/CBot/CBotInstr/CBotListArray.h @@ -62,7 +62,7 @@ protected: virtual std::map<std::string, CBotInstr*> GetDebugLinks() override; private: - //! An expression for an element others are linked with CBotInstr :: m_next3; + //! An expression for an element others are linked with CBotInstr :: m_next3b; CBotInstr* m_expr; }; -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/colobot.git _______________________________________________ Pkg-games-commits mailing list Pkg-games-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits