]> gitweb.factorcode.org Git - factor.git/commitdiff
alien.parser: favor parsing "foo*" as pointer-to-foo now
authorJoe Groff <arcata@gmail.com>
Mon, 22 Feb 2010 05:06:00 +0000 (21:06 -0800)
committerJoe Groff <arcata@gmail.com>
Mon, 22 Feb 2010 05:06:00 +0000 (21:06 -0800)
basis/alien/c-types/c-types.factor
basis/alien/parser/parser.factor

index b038244cdd26f5135fee2d4ed8a51e72bd916a2c..9db6ac7f4a18a9a58b9fe6ceeba7be7f8d130ac0 100644 (file)
@@ -304,7 +304,9 @@ CONSTANT: primitive-types
 
 : resolve-pointer-typedef ( type -- base-type )
     dup "c-type" word-prop dup word?
-    [ nip resolve-pointer-typedef ] [ drop ] if ;
+    [ nip resolve-pointer-typedef ] [
+        pointer? [ drop void* ] when
+    ] if ;
 
 : special-pointer-type ( type -- special-type )
     dup c-type-word? [
index 50d1bfd320ca9e4bcf3f12fb8776db3cb6e42586..dee5c6e1dd9144d8c72fa51591deeada9e38e869 100644 (file)
@@ -18,8 +18,8 @@ IN: alien.parser
     {
         { [ dup "void" =         ] [ drop void ] }
         { [ CHAR: ] over member? ] [ parse-array-type parse-c-type-name prefix ] }
-        { [ dup search           ] [ parse-c-type-name ] }
         { [ "*" ?tail            ] [ (parse-c-type) <pointer> ] }
+        { [ dup search           ] [ parse-c-type-name ] }
         [ dup search [ ] [ no-word ] ?if ]
     } cond ;