~mdw
/
sod
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
src/builtin.lisp, src/codegen-proto.lisp: Improve slot initialization.
[sod]
/
src
/
builtin.lisp
diff --git
a/src/builtin.lisp
b/src/builtin.lisp
index
5aad5f5
..
7bb38e5
100644
(file)
--- a/
src/builtin.lisp
+++ b/
src/builtin.lisp
@@
-140,19
+140,22
@@
static void *~A__init(void *p)~%{~%" class)
" struct ~A *sod__obj = ~A__imprint(p);~2%"
(ilayout-struct-tag class) class)
(setf used t))
" struct ~A *sod__obj = ~A__imprint(p);~2%"
(ilayout-struct-tag class) class)
(setf used t))
- (format stream " ~A.~A =" isl
- (sod-slot-name dslot))
+ (format stream " {~% ~A ~A ="
+ (sod-slot-type dslot)
+ *sod-tmp-val*)
(ecase (sod-initializer-value-kind init)
(:simple (write (sod-initializer-value-form init)
:stream stream
:pretty nil :escape nil)
(format stream ";~%"))
(ecase (sod-initializer-value-kind init)
(:simple (write (sod-initializer-value-form init)
:stream stream
:pretty nil :escape nil)
(format stream ";~%"))
- (:compound (format stream " (~A) {"
- (sod-slot-type dslot))
+ (:compound (format stream " {")
(write (sod-initializer-value-form init)
:stream stream
:pretty nil :escape nil)
(write (sod-initializer-value-form init)
:stream stream
:pretty nil :escape nil)
- (format stream "};~%"))))))))))))
+ (format stream " };~%")))
+ (format stream " ~A.~A = ~A;~% }~%"
+ isl (sod-slot-name dslot)
+ *sod-tmp-val*))))))))))
(unless used
(format stream " ~A__imprint(p);~%" class))
(format stream "~&~:
(unless used
(format stream " ~A__imprint(p);~%" class))
(format stream "~&~: