forget the old struct class when redefining a struct class so the old accessors get purged
parent
102df64ec7
commit
521b3ab12c
|
@ -3,9 +3,9 @@ USING: accessors alien alien.c-types alien.structs
|
||||||
alien.structs.fields arrays byte-arrays classes classes.parser
|
alien.structs.fields arrays byte-arrays classes classes.parser
|
||||||
classes.tuple classes.tuple.parser classes.tuple.private
|
classes.tuple classes.tuple.parser classes.tuple.private
|
||||||
combinators combinators.short-circuit combinators.smart
|
combinators combinators.short-circuit combinators.smart
|
||||||
functors.backend fry generalizations generic.parser kernel
|
definitions functors.backend fry generalizations generic.parser
|
||||||
kernel.private lexer libc locals macros make math math.order parser
|
kernel kernel.private lexer libc locals macros make math math.order
|
||||||
quotations sequences slots slots.private struct-arrays vectors
|
parser quotations sequences slots slots.private struct-arrays vectors
|
||||||
words compiler.tree.propagation.transforms specialized-arrays.direct.uchar ;
|
words compiler.tree.propagation.transforms specialized-arrays.direct.uchar ;
|
||||||
FROM: slots => reader-word writer-word ;
|
FROM: slots => reader-word writer-word ;
|
||||||
IN: classes.struct
|
IN: classes.struct
|
||||||
|
@ -236,10 +236,13 @@ M: struct-class heap-size
|
||||||
: check-struct-slots ( slots -- )
|
: check-struct-slots ( slots -- )
|
||||||
[ c-type>> c-type drop ] each ;
|
[ c-type>> c-type drop ] each ;
|
||||||
|
|
||||||
|
: redefine-struct-tuple-class ( class -- )
|
||||||
|
[ dup class? [ forget-class ] [ drop ] if ] [ struct f define-tuple-class ] bi ;
|
||||||
|
|
||||||
: (define-struct-class) ( class slots offsets-quot -- )
|
: (define-struct-class) ( class slots offsets-quot -- )
|
||||||
[
|
[
|
||||||
[ struct-must-have-slots ]
|
[ struct-must-have-slots ]
|
||||||
[ drop struct f define-tuple-class ] if-empty
|
[ drop redefine-struct-tuple-class ] if-empty
|
||||||
]
|
]
|
||||||
swap '[
|
swap '[
|
||||||
make-slots dup
|
make-slots dup
|
||||||
|
|
Loading…
Reference in New Issue