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

harbs 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 b6ae67d  model is lazy-loaded only if/when it is needed
b6ae67d is described below

commit b6ae67d2715a156add98ae22dd0d3ee236db35fc
Author: Harbs <[email protected]>
AuthorDate: Sun Jan 2 11:40:23 2022 +0200

    model is lazy-loaded only if/when it is needed
---
 .../main/royale/org/apache/royale/core/UIBase.as   |  1 -
 .../org/apache/royale/core/HTMLElementWrapper.as   | 35 +++++-----------------
 2 files changed, 7 insertions(+), 29 deletions(-)

diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
index 83d1465..6420b82 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
@@ -1391,7 +1391,6 @@ package org.apache.royale.core
          */
         protected function loadBeads():void
         {
-                       _model = loadBeadFromValuesManager(IBeadModel, 
"iBeadModel", this) as IBeadModel;
             _view = loadBeadFromValuesManager(IBeadView, "iBeadView", this) as 
IBeadView;
                        loadBeadFromValuesManager(IBeadController, 
"iBeadController", this);
             sendEvent(this,"viewChanged");
diff --git 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
index 7689256..6387550 100644
--- 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
+++ 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/HTMLElementWrapper.as
@@ -39,6 +39,8 @@ package org.apache.royale.core
         import goog.DEBUG;
         import org.apache.royale.events.utils.EventUtils;
         import org.apache.royale.utils.sendStrandEvent;
+        import org.apache.royale.utils.loadBeadFromValuesManager;
+        import org.apache.royale.debugging.assert;
     }
 
     COMPILE::SWF
@@ -165,13 +167,8 @@ package org.apache.royale.core
         public function get model():Object
         {
             if (_model == null) 
-            {
-                // addbead will set _model
-                var m:Class = org.apache.royale.core.ValuesManager.valuesImpl.
-                        getValue(this, 'iBeadModel') as Class;
-                var b:IBeadModel = new m() as IBeadModel;
-                addBead(b);
-            }
+                _model = loadBeadFromValuesManager(IBeadModel, "iBeadModel", 
this) as IBeadModel;
+            
             return _model;
         }
         
@@ -184,30 +181,12 @@ package org.apache.royale.core
         {
             if (_model != value)
             {
-                if (value is IBead)
-                    addBead(value as IBead);
-                else
-                    _model = IBeadModel(value);
-
+                assert(value is IBeadModel,"Only an IBeadModel can be assigned 
as a model");
+                _model = value as IBeadModel;
+                addBead(_model);
                 sendStrandEvent(this,"modelChanged");
             }
         }
         
-               //--------------------------------------
-               //   Function
-               //--------------------------------------
-
-        /**
-         * @param bead The new bead.
-         * @royaleignorecoercion org.apache.royale.core.IBeadModel 
-         */
-               override public function addBead(bead:IBead):void
-               {
-               if (bead is IBeadModel)
-                       {
-                               _model = bead as IBeadModel;
-                       }
-               super.addBead(bead);
-               }
        }
 }

Reply via email to