(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)
(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*)
(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%")))