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-compiler.git


The following commit(s) were added to refs/heads/develop by this push:
     new 3b4d660  fix caching for instanceOf
3b4d660 is described below

commit 3b4d6608e99e8684869d66f925883c16752f337e
Author: Alex Harui <[email protected]>
AuthorDate: Fri Mar 30 08:32:39 2018 -0700

    fix caching for instanceOf
---
 .../compiler/internal/definitions/ClassDefinitionBase.java  | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git 
a/compiler/src/main/java/org/apache/royale/compiler/internal/definitions/ClassDefinitionBase.java
 
b/compiler/src/main/java/org/apache/royale/compiler/internal/definitions/ClassDefinitionBase.java
index de8cfe1..80530bd 100644
--- 
a/compiler/src/main/java/org/apache/royale/compiler/internal/definitions/ClassDefinitionBase.java
+++ 
b/compiler/src/main/java/org/apache/royale/compiler/internal/definitions/ClassDefinitionBase.java
@@ -415,6 +415,7 @@ public abstract class ClassDefinitionBase extends 
TypeDefinitionBase implements
     }
 
     private ArrayList<IDefinition> baseDefinitions = null;
+    private ArrayList<IDefinition> implDefinitions = null;
     
     @Override
     public boolean isInstanceOf(final ITypeDefinition type, ICompilerProject 
project)
@@ -439,12 +440,13 @@ public abstract class ClassDefinitionBase extends 
TypeDefinitionBase implements
                        baseDefinitions.add(cls);
                    }
                }
+            return baseDefinitions.contains(type);
         }
         else if (type instanceof IInterfaceDefinition)
         {
-               if (baseDefinitions == null)
+               if (implDefinitions == null)
                {
-                       baseDefinitions = new ArrayList<IDefinition>();
+                       implDefinitions = new ArrayList<IDefinition>();
                        
                    // We're trying to determine whether this class
                    // implements a specified interface ('type').
@@ -454,12 +456,13 @@ public abstract class ClassDefinitionBase extends 
TypeDefinitionBase implements
                    while (iter.hasNext())
                    {
                        IInterfaceDefinition intf = iter.next();
-                       baseDefinitions.add(intf);
+                       implDefinitions.add(intf);
                    }
-               }
+               }
+            return implDefinitions.contains(type);
         }
 
-       return baseDefinitions.contains(type);
+       return false;
     }
 
     @Override

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to