You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2020/02/29 01:38:24 UTC

[royale-asjs] branch develop updated: handle more complex nested states. We probably will not handle in SimpleStatesImpl, a NestedStatesImpl would be more PAYG. With royale-compiler 51f04bc6739aed22a0f40c3a736e45114341bc03, fixes #737

This is an automated email from the ASF dual-hosted git repository.

aharui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new abb16ce  handle more complex nested states.  We probably will not handle in SimpleStatesImpl, a NestedStatesImpl would be more PAYG.  With royale-compiler 51f04bc6739aed22a0f40c3a736e45114341bc03, fixes #737
abb16ce is described below

commit abb16cee4b5a141b42d0ecd82676a800517b534a
Author: Alex Harui <ah...@apache.org>
AuthorDate: Fri Feb 28 17:37:09 2020 -0800

    handle more complex nested states.  We probably will not handle in SimpleStatesImpl, a NestedStatesImpl would be more PAYG.  With royale-compiler 51f04bc6739aed22a0f40c3a736e45114341bc03, fixes #737
---
 .../org/apache/royale/core/StatesWithTransitionsImpl.as      | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/frameworks/projects/Effects/src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as b/frameworks/projects/Effects/src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as
index 519f486..041ff67 100644
--- a/frameworks/projects/Effects/src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as
+++ b/frameworks/projects/Effects/src/main/royale/org/apache/royale/core/StatesWithTransitionsImpl.as
@@ -313,11 +313,21 @@ package org.apache.royale.core
                     var childrenAdded:Boolean = false;
                     for each (var item:IChild in ai.items)
                     {
-                        if (!isItemInState(item, oldState))
+						// if item.parent == null then the item wasn't parented in the 
+						// old state possibly because its parent was excluded in the old statte
+						// see GH issue #737
+                        if (!isItemInState(item, oldState) || item.parent == null)
                         {
                             var parent:IParent = ai.document as IParent;
                             if (ai.destination != null)
+							{
                                 parent = parent[ai.destination] as IParent;
+								// SimpleStatesImpl assumes the parent exists (no complex nested states)
+								// but we will check here
+								if (parent == null) continue;
+								// if no parent, might might be excluded in current state.
+								// we might later find that the parent hasn't been added yet, not sure.
+							}
                             if (ai.relativeTo != null)
                             {
                                 var child:IChild = ai.document[ai.relativeTo] as IChild;