]> gitweb.factorcode.org Git - factor.git/commitdiff
libclang: write-c-defs from libclang-state directly (no global)
authorDoug Coleman <doug.coleman@gmail.com>
Thu, 11 Jan 2024 19:13:13 +0000 (13:13 -0600)
committerDoug Coleman <doug.coleman@gmail.com>
Thu, 11 Jan 2024 19:13:13 +0000 (13:13 -0600)
extra/libclang/libclang.factor

index 23308a94052f1bb2116b8952c66c9a02a6e24fb5..05a6a26a56d78143d856ebc54ac9bd94410c7807 100644 (file)
@@ -585,24 +585,21 @@ DEFER: cursor-visitor
         2nip cursor-visitor f clang_visitChildren drop
     ] with-clang-cursor ;
 
-: write-c-defs ( -- )
-    clang-state> c-defs-by-order>>
-    sort-keys values
-    [ def>out-forms ] each
-    clang-state>
+: write-c-defs ( clang-state -- )
     [
-        [ members [ length ] inv-sort-by ] assoc-map
-    ] change-out-forms-by-name
-    out-forms>>
-    sort-keys values [ print ] each ;
+        c-defs-by-order>>
+        sort-keys values
+        [ def>out-forms ] each
+    ] [
+        [
+            [ members [ length ] inv-sort-by ] assoc-map
+        ] change-out-forms-by-name
+        out-forms>>
+        sort-keys values [ print ] each
+    ] bi ;
 
 : parse-include ( path -- libclang-state )
     <libclang-state> clang-state [
         normalize-path
-        ! reset-c-defs
-        {
-            ! [ parse-c-defines ]
-            [ parse-c-exports ]
-        } cleave
-        write-c-defs
-    ] with-output-global-variable ; inline
+        parse-c-exports
+    ] with-output-global-variable dup write-c-defs ; inline