You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by jo...@apache.org on 2017/06/07 16:36:21 UTC
git commit: [flex-falcon] [refs/heads/release0.8.0] - FLEX-35323
compiler: fixed issue in BindingDestinationMaker where setting a dynmaic
property with binding would result in a NullPointerException.
Repository: flex-falcon
Updated Branches:
refs/heads/release0.8.0 74d148746 -> 57a56977f
FLEX-35323 compiler: fixed issue in BindingDestinationMaker where setting a dynmaic property with binding would result in a NullPointerException.
Dynamic properties are public, and the InstructionList is only created for non-public properties. We can simply check that the definition is null or not to fix this issue.
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/57a56977
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/57a56977
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/57a56977
Branch: refs/heads/release0.8.0
Commit: 57a56977f5f75fb8c41144cf035d78eadd9a75d0
Parents: 74d1487
Author: Josh Tynjala <jo...@apache.org>
Authored: Wed Jun 7 09:36:13 2017 -0700
Committer: Josh Tynjala <jo...@apache.org>
Committed: Wed Jun 7 09:36:13 2017 -0700
----------------------------------------------------------------------
.../databinding/BindingDestinationMaker.java | 21 ++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/57a56977/compiler/src/main/java/org/apache/flex/compiler/internal/codegen/databinding/BindingDestinationMaker.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/internal/codegen/databinding/BindingDestinationMaker.java b/compiler/src/main/java/org/apache/flex/compiler/internal/codegen/databinding/BindingDestinationMaker.java
index 0e78d5d..89ad6a2 100644
--- a/compiler/src/main/java/org/apache/flex/compiler/internal/codegen/databinding/BindingDestinationMaker.java
+++ b/compiler/src/main/java/org/apache/flex/compiler/internal/codegen/databinding/BindingDestinationMaker.java
@@ -128,15 +128,20 @@ public class BindingDestinationMaker
{
IMXMLPropertySpecifierNode psn = (IMXMLPropertySpecifierNode)parent;
IDefinition d = psn.getDefinition();
- Binding b = host.getInstanceScope().getBinding(d);
- INamespaceReference ns = psn.getDefinition().getNamespaceReference();
- if (ns != NamespaceDefinition.getPublicNamespaceDefinition())
+ //it's possible for the definition to be null if we're dealing with
+ //a dynamic property on a class like Object -JT
+ if (d != null)
{
- InstructionList insns = new InstructionList();
- insns.addInstruction(OP_getlocal0);
- insns.addInstruction(OP_getlocal1);
- insns.addInstruction(OP_setproperty, b.getName());
- ret = new InstructionListNode(insns); // Wrap the IL in a node and return it
+ Binding b = host.getInstanceScope().getBinding(d);
+ INamespaceReference ns = d.getNamespaceReference();
+ if (ns != NamespaceDefinition.getPublicNamespaceDefinition())
+ {
+ InstructionList insns = new InstructionList();
+ insns.addInstruction(OP_getlocal0);
+ insns.addInstruction(OP_getlocal1);
+ insns.addInstruction(OP_setproperty, b.getName());
+ ret = new InstructionListNode(insns); // Wrap the IL in a node and return it
+ }
}
}
return ret;