Compatibility: the `init' function no longer calls `imprint' for you.
[sod] / src / builtin.lisp
index e4b42de..1073cae 100644 (file)
@@ -114,8 +114,7 @@ static void *~:*~A__imprint(void *p)
   (format nil "~A__init" class)
 
   ;; FIXME this needs a metaobject protocol
-  (let ((ilayout (sod-class-ilayout class))
-       (used nil))
+  (let ((ilayout (sod-class-ilayout class)))
     (format stream "~&~:
 /* Provide initial values for an instance's slots. */
 static void *~A__init(void *p)~%{~%" class)
@@ -135,11 +134,6 @@ static void *~A__init(void *p)~%{~%" class)
                 (let ((dslot (effective-slot-direct-slot slot))
                       (init (effective-slot-initializer slot)))
                   (when init
-                    (unless used
-                      (format stream
-                              "  struct ~A *sod__obj = ~A__imprint(p);~2%"
-                              (ilayout-struct-tag class) class)
-                      (setf used t))
                     (format stream "  {~%    ")
                     (pprint-c-type (sod-slot-type dslot) stream
                                    *sod-tmp-val*)
@@ -149,8 +143,6 @@ static void *~A__init(void *p)~%{~%" class)
                             (sod-initializer-value init)
                             isl (sod-slot-name dslot)
                             *sod-tmp-val*))))))))))
-    (unless used
-      (format stream "  ~A__imprint(p);~%" class))
     (format stream "~&~:
   return (p);
 }~2%")))