From 72227fec01273c6049177870681dcd96fc38aca4 Mon Sep 17 00:00:00 2001 From: "Mark T. Tomczak" Date: Tue, 24 Jul 2018 21:54:37 -0400 Subject: [PATCH] update() hold reference to member Hold reference to member in members array while acting on it. This avoids a buggy corner-case where member.update() could change the number of members in this Group, resulting in the "members[i].exists" check referencing a different member (and possibly crashing on members[i] being undefined). --- src/core/Group.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/core/Group.ts b/src/core/Group.ts index d220e3db..63d15171 100644 --- a/src/core/Group.ts +++ b/src/core/Group.ts @@ -1064,12 +1064,13 @@ module Kiwi { if (this.members.length > 0) { for (var i = 0; i < this.members.length; i++) { - if (this.members[i].active === true) { - this.members[i].update(); + let member = this.members[i]; + if (member.active === true) { + member.update(); } - if(this.members[i].exists === false) { - this.members[i].destroy( true ); + if(member.exists === false) { + member.destroy( true ); } }