Revision: 3043
          http://vexi.svn.sourceforge.net/vexi/?rev=3043&view=rev
Author:   clrg
Date:     2008-08-06 22:58:54 +0000 (Wed, 06 Aug 2008)

Log Message:
-----------
More efficient text reads
- use array joins instead of compiling strings
- of course, strings are immutable thus memory intensive

Modified Paths:
--------------
    trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/block.t
    trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/edit.t

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/block.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/block.t        
2008-08-06 22:46:58 UTC (rev 3042)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/block.t        
2008-08-06 22:58:54 UTC (rev 3043)
@@ -244,10 +244,11 @@
     
     /** return the textual content of a block */    
     static.textRead = function() {
-        var str = "";
+        var ret = [];
+        var k = 0;
         for (var i=0; trapee.numchildren>i; i++)
-            str = str + trapee[i].text;
-        return str;
+            ret[k++] = trapee[i].text;
+        return ret.join("");
     }
     
     /**

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/edit.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/edit.t 2008-08-06 
22:46:58 UTC (rev 3042)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/edit.t 2008-08-06 
22:58:54 UTC (rev 3043)
@@ -1517,22 +1517,23 @@
         
         /** read trap to return the textual content of this edit box */
         thisbox.text ++= function() {
-            var ret = "";
+            var ret = [];
+            var k = 0;
             
             // special case for first line
             for (var j=0; thisbox[0][j] != null; j++)
-                ret += thisbox[0][j].text;
+                ret[++k] = thisbox[0][j].text;
             
             // build up with newlines for multiline
             if (multiline) {
                 for (var i=1; thisbox[i] != null; i++) {
-                    ret += "\n";
+                    ret[++k] = "\n";
                     for (var j=0; thisbox[i][j] != null; j++)
-                        ret += thisbox[i][j].text;
+                        ret[++k] = thisbox[i][j].text;
                 }
             }
             // return result
-            return ret;
+            return ret.join("");
         }
         
         /** set the textual content of this edit box */


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Vexi-svn mailing list
Vexi-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to