"pointer-c-type" word-prop hack is now unnecessary since all pointer types behave uniformly now
parent
db8b6baa2f
commit
1916b9269e
|
@ -223,22 +223,15 @@ MIXIN: value-type
|
||||||
\ swap , [ heap-size , [ * >fixnum ] % ] [ % ] bi*
|
\ swap , [ heap-size , [ * >fixnum ] % ] [ % ] bi*
|
||||||
] [ ] make ;
|
] [ ] make ;
|
||||||
|
|
||||||
GENERIC: typedef ( old new -- )
|
|
||||||
|
|
||||||
PREDICATE: typedef-word < c-type-word
|
PREDICATE: typedef-word < c-type-word
|
||||||
"c-type" word-prop c-type-name? ;
|
"c-type" word-prop c-type-name? ;
|
||||||
|
|
||||||
M: word typedef ( old new -- )
|
: typedef ( old new -- )
|
||||||
{
|
{
|
||||||
[ nip define-symbol ]
|
[ nip define-symbol ]
|
||||||
[ swap "c-type" set-word-prop ]
|
[ swap "c-type" set-word-prop ]
|
||||||
} 2cleave ;
|
} 2cleave ;
|
||||||
|
|
||||||
M: pointer typedef ( old new -- )
|
|
||||||
to>> dup c-type-word?
|
|
||||||
[ swap "pointer-c-type" set-word-prop ]
|
|
||||||
[ 2drop ] if ;
|
|
||||||
|
|
||||||
TUPLE: long-long-type < c-type ;
|
TUPLE: long-long-type < c-type ;
|
||||||
|
|
||||||
: <long-long-type> ( -- c-type )
|
: <long-long-type> ( -- c-type )
|
||||||
|
@ -298,12 +291,6 @@ CONSTANT: primitive-types
|
||||||
pointer? [ drop void* ] when
|
pointer? [ drop void* ] when
|
||||||
] if ;
|
] if ;
|
||||||
|
|
||||||
: special-pointer-type ( type -- special-type )
|
|
||||||
dup c-type-word? [
|
|
||||||
dup "pointer-c-type" word-prop
|
|
||||||
[ ] [ "c-type" word-prop special-pointer-type ] ?if
|
|
||||||
] [ drop f ] if ;
|
|
||||||
|
|
||||||
: primitive-pointer-type? ( type -- ? )
|
: primitive-pointer-type? ( type -- ? )
|
||||||
dup c-type-word? [
|
dup c-type-word? [
|
||||||
resolve-pointer-typedef [ void? ] [ primitive-types member? ] bi or
|
resolve-pointer-typedef [ void? ] [ primitive-types member? ] bi or
|
||||||
|
@ -313,10 +300,7 @@ PRIVATE>
|
||||||
|
|
||||||
M: pointer c-type
|
M: pointer c-type
|
||||||
[ \ void* c-type ] dip
|
[ \ void* c-type ] dip
|
||||||
to>> dup special-pointer-type
|
to>> dup primitive-pointer-type? [ drop ] [ (pointer-c-type) ] if ;
|
||||||
[ nip ] [
|
|
||||||
dup primitive-pointer-type? [ drop ] [ (pointer-c-type) ] if
|
|
||||||
] ?if ;
|
|
||||||
|
|
||||||
: 8-byte-alignment ( c-type -- c-type )
|
: 8-byte-alignment ( c-type -- c-type )
|
||||||
{
|
{
|
||||||
|
|
|
@ -41,7 +41,6 @@ IN: alien.parser
|
||||||
[ dup [ forget-class ] [ { "struct-size" } reset-props ] bi ] when
|
[ dup [ forget-class ] [ { "struct-size" } reset-props ] bi ] when
|
||||||
{
|
{
|
||||||
"c-type"
|
"c-type"
|
||||||
"pointer-c-type"
|
|
||||||
"callback-effect"
|
"callback-effect"
|
||||||
"callback-library"
|
"callback-library"
|
||||||
} reset-props ;
|
} reset-props ;
|
||||||
|
|
Loading…
Reference in New Issue