Author: jmorliaguet
Date: Sun Jun 11 18:48:55 2006
New Revision: 3398

Modified:
   cpsskins/branches/paris-sprint-2006/lib/ctal/src/ctal.js
   cpsskins/branches/paris-sprint-2006/lib/ctal/src/tests/ctal_test.html

Log:

- optimization: we pass a copy of the data structure to the parser so that
  it cannot mutate the original one.



Modified: cpsskins/branches/paris-sprint-2006/lib/ctal/src/ctal.js
==============================================================================
--- cpsskins/branches/paris-sprint-2006/lib/ctal/src/ctal.js    (original)
+++ cpsskins/branches/paris-sprint-2006/lib/ctal/src/ctal.js    Sun Jun 11 
18:48:55 2006
@@ -168,7 +168,6 @@
 
   // do a deep copy of the data structure traversed by the repeat loop
   // to avoid corrupting it.
-  var saved_data = ctal.deepcopy(data);
   for (var i=0; i<datas.length; i++) {
     data[iterator] = datas[i];
 
@@ -176,13 +175,17 @@
     ctal.node_insertbefore(parent, newnode, marker);
     // recurse
     ctal.process_ctal(newnode, data);
-    data = ctal.deepcopy(saved_data);
   }
   parent.removeChild(tmpl);
 }
 
 /* general processor */
 
+ctal.parse = function(tmpl, data) {
+  var cloned_data = ctal.deepcopy(data);
+  ctal.process_ctal(tmpl, cloned_data);
+}
+
 ctal.process_ctal = function(tmpl, data) {
   var recurse = true;
   var parsers, ctal_attr, ctal_attr_name, attr;

Modified: cpsskins/branches/paris-sprint-2006/lib/ctal/src/tests/ctal_test.html
==============================================================================
--- cpsskins/branches/paris-sprint-2006/lib/ctal/src/tests/ctal_test.html       
(original)
+++ cpsskins/branches/paris-sprint-2006/lib/ctal/src/tests/ctal_test.html       
Sun Jun 11 18:48:55 2006
@@ -335,7 +335,7 @@
   }
 
   try {
-    ctal.process_ctal(document, data);
+    ctal.parse(document, data);
   } catch (e) {}
 
   var inspect = Test.Unit.inspect;
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to