]> gitweb.factorcode.org Git - factor.git/commitdiff
"pointer-c-type" word-prop hack is now unnecessary since all pointer types behave...
authorJoe Groff <arcata@gmail.com>
Tue, 23 Feb 2010 20:07:55 +0000 (12:07 -0800)
committerJoe Groff <arcata@gmail.com>
Tue, 23 Feb 2010 20:07:55 +0000 (12:07 -0800)
basis/alien/c-types/c-types.factor
basis/alien/parser/parser.factor

index 73da41cc69240bbde67db9868390b2a15a0a69d0..ef47f4b69ce92ef3cbf6239d2237fbddfc8cf578 100644 (file)
@@ -223,22 +223,15 @@ MIXIN: value-type
         \ swap , [ heap-size , [ * >fixnum ] % ] [ % ] bi*
     ] [ ] make ;
 
-GENERIC: typedef ( old new -- )
-
 PREDICATE: typedef-word < c-type-word
     "c-type" word-prop c-type-name? ;
 
-M: word typedef ( old new -- )
+: typedef ( old new -- )
     {
         [ nip define-symbol ]
         [ swap "c-type" set-word-prop ]
     } 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 ;
 
 : <long-long-type> ( -- c-type )
@@ -298,12 +291,6 @@ CONSTANT: primitive-types
         pointer? [ drop void* ] when
     ] 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 -- ? )
     dup c-type-word? [
         resolve-pointer-typedef [ void? ] [ primitive-types member? ] bi or
@@ -313,10 +300,7 @@ PRIVATE>
 
 M: pointer c-type
     [ \ void* c-type ] dip
-    to>> dup special-pointer-type
-    [ nip ] [
-        dup primitive-pointer-type? [ drop ] [ (pointer-c-type) ] if
-    ] ?if ;
+    to>> dup primitive-pointer-type? [ drop ] [ (pointer-c-type) ] if ;
 
 : 8-byte-alignment ( c-type -- c-type )
     {
index f5fdced048c43e1cd9c257bcc72ab273037bdf1f..cf8c8785898a2696155f019f2f6ee447fccafdc2 100644 (file)
@@ -41,7 +41,6 @@ IN: alien.parser
     [ dup [ forget-class ] [ { "struct-size" } reset-props ] bi ] when
     {
         "c-type"
-        "pointer-c-type"
         "callback-effect"
         "callback-library"
     } reset-props ;