[movitz-cvs] CVS update: movitz/losp/muerte/symbols.lisp

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Mon Jun 14 19:40:42 UTC 2004


Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv5940

Modified Files:
	symbols.lisp 
Log Message:
Changed copy-symbol to just copy the raw words. This is required for
shallow-copying, especially during GC.

Date: Mon Jun 14 12:40:42 2004
Author: ffjeld

Index: movitz/losp/muerte/symbols.lisp
diff -u movitz/losp/muerte/symbols.lisp:1.13 movitz/losp/muerte/symbols.lisp:1.14
--- movitz/losp/muerte/symbols.lisp:1.13	Wed Jun  9 10:21:01 2004
+++ movitz/losp/muerte/symbols.lisp	Mon Jun 14 12:40:42 2004
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Tue Sep  4 23:55:41 2001
 ;;;;                
-;;;; $Id: symbols.lisp,v 1.13 2004/06/09 17:21:01 ffjeld Exp $
+;;;; $Id: symbols.lisp,v 1.14 2004/06/14 19:40:42 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -141,10 +141,10 @@
 	      (load-global-constant movitz::unbound-function))))))
 
 (defun %create-symbol (name &optional (package nil)
-				     (plist nil)
-				     (value (load-global-constant unbound-value))
-				     (function (load-global-constant movitz::unbound-function))
-				     (flags 0))
+				      (plist nil)
+				      (value (load-global-constant unbound-value))
+				      (function (load-global-constant movitz::unbound-function))
+				      (flags 0))
   (eval-when (:compile-toplevel)
     (assert (= 1 (- (movitz:tag :symbol) (movitz:tag :other)))))
   (let ((symbol (%word-offset (malloc-clumps 3) 1)))
@@ -170,12 +170,11 @@
   (if (or (eq nil symbol)
 	  (not copy-properties))
       (%create-symbol (symbol-name symbol))
-    (%create-symbol (symbol-name symbol)
-		    nil
-		    (symbol-plist symbol)
-		    (%unbounded-symbol-value symbol)
-		    (%unbounded-symbol-function symbol)
-		    (symbol-flags symbol))))
+    (let ((x (%word-offset (malloc-clumps 3) 1)))
+      (dotimes (i 6)
+	(setf (memref x #.movitz:+other-type-offset+ i :lisp)
+	  (memref symbol #.movitz:+other-type-offset+ i :lisp)))
+      x)))
 
 (defun symbol-flags (symbol)
   (etypecase symbol





More information about the Movitz-cvs mailing list