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 2018/07/23 17:43:55 UTC

[royale-compiler] 02/02: fix the thread-safety

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

commit 3b152192dcd83172f696d31d75c595b05bb0682f
Author: Alex Harui <ah...@apache.org>
AuthorDate: Mon Jul 23 10:43:43 2018 -0700

    fix the thread-safety
---
 .../compiler/internal/definitions/ClassDefinitionBase.java     | 10 ++++++----
 1 file changed, 6 insertions(+), 4 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 e61a283..fd595e7 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
@@ -435,7 +435,7 @@ public abstract class ClassDefinitionBase extends TypeDefinitionBase implements
 	        	{
 		        	if (baseDefinitions == null)
 		        	{
-		        		baseDefinitions = new ArrayList<IDefinition>();
+		        		ArrayList<IDefinition> bases = new ArrayList<IDefinition>();
 		        		
 			            // We're trying to determine whether this class
 			            // is derived from a specified class ('type').
@@ -444,8 +444,9 @@ public abstract class ClassDefinitionBase extends TypeDefinitionBase implements
 			            while (iter.hasNext())
 			            {
 			                IClassDefinition cls = iter.next();
-			                baseDefinitions.add(cls);
+			                bases.add(cls);
 			            }
+			            baseDefinitions = bases;
 		        	}
 	        	}
             	if ((CompilerDiagnosticsConstants.diagnostics & CompilerDiagnosticsConstants.CLASS_DEFINITION_BASE) == CompilerDiagnosticsConstants.CLASS_DEFINITION_BASE)
@@ -463,7 +464,7 @@ public abstract class ClassDefinitionBase extends TypeDefinitionBase implements
 	        	{
 	            	if (implDefinitions == null)
 	            	{
-		        		implDefinitions = new ArrayList<IDefinition>();
+		        		ArrayList<IDefinition> impls = new ArrayList<IDefinition>();
 		        		
 			            // We're trying to determine whether this class
 			            // implements a specified interface ('type').
@@ -473,8 +474,9 @@ public abstract class ClassDefinitionBase extends TypeDefinitionBase implements
 			            while (iter.hasNext())
 			            {
 			                IInterfaceDefinition intf = iter.next();
-			                implDefinitions.add(intf);
+			                impls.add(intf);
 			            }
+			            implDefinitions = impls;
 	            	}
 	        	}
             	if ((CompilerDiagnosticsConstants.diagnostics & CompilerDiagnosticsConstants.CLASS_DEFINITION_BASE) == CompilerDiagnosticsConstants.CLASS_DEFINITION_BASE)