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

piotrz 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 437803c  RequireSelection: Fix maximum call stack size exceeded
437803c is described below

commit 437803cc190b2e5bdd6a37078432fb12a0a3f5e1
Author: Piotr Zarzycki <[email protected]>
AuthorDate: Wed Oct 2 16:04:41 2019 +0200

    RequireSelection: Fix maximum call stack size exceeded
    
    - Stop forcing selection if dataProvider is empty. ArraySelectionModel mark 
selectedIndex = -1 when dataProvider is empty and dispatch event 
"selectionChanged" which end up of calling forceSelection method and attempt of 
selectIndex = 0. - It's starting process again cause dataProvider is empty
---
 .../jewel/beads/controls/dropdownlist/RequireSelection.as     | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/dropdownlist/RequireSelection.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/dropdownlist/RequireSelection.as
index 89e8edc..6094e7e 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/dropdownlist/RequireSelection.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/dropdownlist/RequireSelection.as
@@ -120,13 +120,20 @@ package 
org.apache.royale.jewel.beads.controls.dropdownlist
                        }
                }
 
-               private function selectionChangeHandler(event:Event):void {
+               private function selectionChangeHandler(event:Event):void
+               {
                        forceSelection();
                }
 
-               private function forceSelection():void {
+               private function forceSelection():void
+               {
                        if(_requireSelection && ddl.selectedIndex == -1)
                        {
+                               if (!ddl.dataProvider || 
ddl.dataProvider.length == 0)
+                               {
+                                       return;
+                               }
+
                                ddl.selectedIndex = 0;
                        }       
                }

Reply via email to