[Laszlo-dev] [Laszlo-checkins] r5910 - in openlaszlo/branches/wafflecone/WEB-INF/lps/lfc: core events services

Max Carlson max at openlaszlo.org
Thu Aug 2 23:54:47 PDT 2007


It's an undocumented API that's only used by the LFC.  We don't want 
folks overriding constructWithArgs() or using it.  Given the comment 
above the declaration in LzNode (@todo 2006-05-24 ptw Adam says this is 
a hack that we should get rid of.) I'm okay with this change.

If you still think otherwise I'll put it back in :)

P T Withington wrote:
> Well I still feel you cannot just eliminate an interface without first 
> deprecating it.  Is there any reason not to use the solution I proposed?
> 
> On Aug 2, 2007, at 9:45 PM, Max Carlson <max at openlaszlo.org> wrote:
> 
>> I grepped the entire source tree (with diamond) and didn't find any 
>> calls to super.constructWithArgs().  The only declaration is in 
>> WEB-INF/lps/lfc/data/LzReplicationManager.lzs:
>>
>> /**
>>  * @access private
>>  */
>> function constructWithArgs ( args ){
>>    this.__LZHandleMultiNodes( this.initialnodes );
>>    delete this.initialnodes;
>>    if ( this.visible == false ){
>>        this.setVisible( false );
>>    }
>> }
>>
>> P T Withington wrote:
>>> I'm concerned about the change to constructWithArgs.  Since this is a 
>>> defined method, there could be overrides out there that will attempt 
>>> to call super from their method -- that will bomb now.  If you want 
>>> to avoid this call, then you could say:
>>>  if (this.constructWithArgs !== LzNode.prototype.constructWithArgs) {
>>>    this.constructWithArgs(parent, args);
>>>  }
>>> and not remove the default method.
>>> On 2007-08-02, at 13:18 EDT, max at openlaszlo.org wrote:
>>>> Author: max
>>>> Date: 2007-08-02 10:18:46 -0700 (Thu, 02 Aug 2007)
>>>> New Revision: 5910
>>>>
>>>> Modified:
>>>>   openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/core/LzNode.lzs
>>>>   
>>>> openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/events/LaszloEvents.lzs
>>>>   openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/services/LzCSSStyle.js
>>>> Log:
>>>> 20070801-maxcarlson-V by maxcarlson at plastik on 2007-08-01 20:51:00 PDT
>>>>    in /Users/maxcarlson/openlaszlo/wafflecone
>>>>    for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
>>>>
>>>> Summary: More optimization of LFC
>>>>
>>>> New Features:
>>>>
>>>> Bugs Fixed: LPP-4414 - Improve startup performance (partial)
>>>>
>>>> Technical Reviewer: promanik
>>>> QA Reviewer: ben
>>>> Doc Reviewer: (pending)
>>>>
>>>> Documentation:
>>>>
>>>> Release Notes:
>>>>
>>>> Details: LzCSSStyle.js - Cache getPropertyValueFor() calls.  Only 
>>>> call _selectorApplies() for compound css statements.
>>>>
>>>> LzNode.lzs - Only call constructWithArgs() if it exists.
>>>>
>>>> LaszloEvents.lzs - Check for null reference.
>>>>
>>>>
>>>> Tests: ...silver/main.lzx?lzr=dhtml&lzt=html shows ~24029 fewer 
>>>> total calls (252524 total before, 228495 now).  
>>>> http://localhost:8080/wafflecone/test/style/constraints/main.lzx?lzr=swf8 passes 
>>>> as before, shows 405ms for lookup test.
>>>>
>>>>
>>>>
>>>> Modified: 
>>>> openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/core/LzNode.lzs
>>>> ===================================================================
>>>> --- 
>>>> openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/core/LzNode.lzs    
>>>> 2007-08-02 16:46:55 UTC (rev 5909)
>>>> +++ 
>>>> openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/core/LzNode.lzs    
>>>> 2007-08-02 17:18:46 UTC (rev 5910)
>>>> @@ -180,7 +180,11 @@
>>>>             this.__LZstyleConstraints = this.__LZapplyStyleMap( 
>>>> styleMap, attrs );
>>>>         }
>>>>
>>>> -        this.constructWithArgs( maskedargs );
>>>> +        /**
>>>> +          * @todo 2006-05-24 ptw Adam says this is a hack that we 
>>>> should get
>>>> +          * rid of.
>>>> +          */
>>>> +        if (this.constructWithArgs) this.constructWithArgs( 
>>>> maskedargs );
>>>>
>>>>         delete this.__LZdeferDelegates;
>>>>         if (qpos != LzDelegate.__LZdelegatesQueue.length) {
>>>> @@ -641,13 +645,6 @@
>>>> }
>>>>
>>>> /**
>>>> -  * @access private
>>>> -  * @todo 2006-05-24 ptw Adam says this is a hack that we should get
>>>> -  * rid of.
>>>> -  */
>>>> -function constructWithArgs ( parent , args ){}
>>>> -
>>>> -/**
>>>>   * Called at the same time that the node sends its oninit event -- 
>>>> usually
>>>>   * when the node's siblings are instantiated, and always after the 
>>>> node's
>>>>   * children are instantiated.
>>>> @@ -1967,10 +1964,4 @@
>>>>   this.makeChild( dpobj , true);
>>>> }
>>>>
>>>> -
>>>> -/**
>>>> -  * @access private
>>>> -  */
>>>> -function constructWithArgs ( parent , args ){}
>>>> -
>>>> } // End of LzNode
>>>>
>>>> Modified: 
>>>> openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/events/LaszloEvents.lzs
>>>> ===================================================================
>>>> --- 
>>>> openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/events/LaszloEvents.lzs    
>>>> 2007-08-02 16:46:55 UTC (rev 5909)
>>>> +++ 
>>>> openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/events/LaszloEvents.lzs    
>>>> 2007-08-02 17:18:46 UTC (rev 5910)
>>>> @@ -215,7 +215,7 @@
>>>>       }
>>>>       */
>>>>       // d.execute( sd ); inlined
>>>> -      d.c[d.f]( sd );
>>>> +      if (d.c[d.f]) d.c[d.f]( sd );
>>>>       i+=2;
>>>>     }
>>>>     evq.length = pos;
>>>>
>>>> Modified: 
>>>> openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/services/LzCSSStyle.js
>>>> ===================================================================
>>>> --- 
>>>> openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/services/LzCSSStyle.js    
>>>> 2007-08-02 16:46:55 UTC (rev 5909)
>>>> +++ 
>>>> openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/services/LzCSSStyle.js    
>>>> 2007-08-02 17:18:46 UTC (rev 5910)
>>>> @@ -70,6 +70,7 @@
>>>>     return 1 ;
>>>> }
>>>>
>>>> +LzCSSStyleRule.prototype.__pvcache = {};
>>>>
>>>> var LzCSSStyle = {};
>>>>
>>>> @@ -90,6 +91,8 @@
>>>>     //var t = getTimer();
>>>>     if (!node) return;
>>>>     var uid = node.getUID();
>>>> +    var val = LzCSSStyleRule.prototype.__pvcache[uid + pname];
>>>> +    if (val) return val;
>>>>     var rules = this.__LZRuleCache[ uid ];
>>>>     if ( !rules ) {
>>>>         rules = new Array();
>>>> @@ -102,7 +105,7 @@
>>>>                  (rp.type == 3 && (((rp.classname in lz) && (node 
>>>> instanceof lz[ rp.classname ])) || ( (rp.classname in global) && 
>>>> (node instanceof global[ rp.classname ])))) ||
>>>>                  (rp.type == 5 && node[ rp.attrname ] == 
>>>> rp.attrvalue) ||
>>>>                  (rp.type == 6 && node[ rp.attrname ] == 
>>>> rp.attrvalue && (((rp.classname in lz) && (node instanceof lz[ 
>>>> rp.classname ])) || ( (rp.classname in global) && (node instanceof 
>>>> global[ rp.classname ])))) ||
>>>> -                 this._selectorApplies( r, rp, node ) ){
>>>> +                 (rp.type == 4 && this._selectorApplies( r, rp, 
>>>> node ))){
>>>>                 rules.push(r);
>>>>             }
>>>>         }
>>>> @@ -124,7 +127,7 @@
>>>>                  (rp.type == 3 && (((rp.classname in lz) && (node 
>>>> instanceof lz[ rp.classname ])) || ( (rp.classname in global) && 
>>>> (node instanceof global[ rp.classname ])))) ||
>>>>                  (rp.type == 5 && node[ rp.attrname ] == 
>>>> rp.attrvalue) ||
>>>>                  (rp.type == 6 && node[ rp.attrname ] == 
>>>> rp.attrvalue && (((rp.classname in lz) && (node instanceof lz[ 
>>>> rp.classname ])) || ( (rp.classname in global) && (node instanceof 
>>>> global[ rp.classname ])))) ||
>>>> -                 this._selectorApplies( r, rp, node ) ){
>>>> +                 (rp.type == 4 && this._selectorApplies( r, rp, 
>>>> node ))){
>>>>                     rules.push(r);
>>>>                 }
>>>>             }
>>>> @@ -148,7 +151,11 @@
>>>>     var i = 0;
>>>>     while ( i < l ) {
>>>>         var props = rules[i++].properties;
>>>> -        if (pname in props) { return props[pname]; }
>>>> +        if (pname in props) {
>>>> +            var v = props[pname];
>>>> +            LzCSSStyleRule.prototype.__pvcache[uid + pname] = v
>>>> +            return v;
>>>> +        }
>>>>     }
>>>>
>>>>     ////this.time1 += getTimer() - t;
>>>> @@ -316,7 +323,7 @@
>>>>                                 (inrp.type == 3 && (((inrp.classname 
>>>> in lz) && (icurnode instanceof lz[ inrp.classname ])) || ( 
>>>> (inrp.classname in global) && (icurnode instanceof global[ 
>>>> inrp.classname ])))) ||
>>>>                                 (inrp.type == 5 && icurnode[ 
>>>> inrp.attrname ] == inrp.attrvalue) ||
>>>>                                 (inrp.type == 6 && icurnode[ 
>>>> inrp.attrname ] == inrp.attrvalue && (((inrp.classname in lz) && 
>>>> (icurnode instanceof lz[ inrp.classname ])) || ( (inrp.classname in 
>>>> global) && (icurnode instanceof global[ inrp.classname ])))) ||
>>>> -                                this._selectorApplies( rule, inrp, 
>>>> icurnode )){
>>>> +                                (inrp.type == 4 && 
>>>> this._selectorApplies( rule, inrp, icurnode ))){
>>>>                                 if ( sindex-- == 0 ){
>>>>                                     iresult = true;
>>>>                                     break;
>>>>
>>>>
>>>> _______________________________________________
>>>> Laszlo-checkins mailing list
>>>> Laszlo-checkins at openlaszlo.org
>>>> http://www.openlaszlo.org/mailman/listinfo/laszlo-checkins
>>
>> -- 
>> Regards,
>> Max Carlson
>> OpenLaszlo.org

-- 
Regards,
Max Carlson
OpenLaszlo.org


More information about the Laszlo-dev mailing list