summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog20
-rw-r--r--src/guile/skribilo/engine.scm11
2 files changed, 31 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index e5cdb57..857cfb9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,26 @@
 # arch-tag: automatic-ChangeLog--lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2
 #
 
+2006-03-07 21:28:47 GMT	Ludovic Courtes <ludovic.courtes@laas.fr>	patch-41
+
+    Summary:
+      Fixed `copy-engine' with respect to the writers optimization.
+    Revision:
+      skribilo--devel--1.2--patch-41
+
+    Patches applied:
+    
+     * lcourtes@laas.fr--2004-libre/skribilo--devel--1.2  (patch 66)
+    
+       - Fixed `copy-engine' with respect to the writers optimization.
+
+    modified files:
+     ChangeLog src/guile/skribilo/engine.scm
+
+    new patches:
+     lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-66
+
+
 2006-03-07 21:28:02 GMT	Ludovic Courtes <ludovic.courtes@laas.fr>	patch-40
 
     Summary:
diff --git a/src/guile/skribilo/engine.scm b/src/guile/skribilo/engine.scm
index fbaf4d2..de455cd 100644
--- a/src/guile/skribilo/engine.scm
+++ b/src/guile/skribilo/engine.scm
@@ -207,6 +207,17 @@
     (slot-set! new 'symbol-table (or symbol-table (slot-ref e 'symbol-table)))
     (slot-set! new 'customs	 (or custom (slot-ref e 'customs)))
 
+    ;; XXX: We don't use `list-copy' here because writer lists are only
+    ;; consed, never mutated.
+
+    ;(slot-set! new 'free-writers (list-copy (slot-ref e 'free-writers)))
+
+    (let ((new-writers (make-hash-table)))
+      (hash-for-each (lambda (m w*)
+		       (hashq-set! new-writers m w*))
+		     (slot-ref e 'writers))
+      (slot-set! new 'writers new-writers))
+
     (set! *engines* (cons new *engines*))
     new))