]> Repositorios git - scryer-prolog.git/commitdiff
don't place allocate, read_ptr and deallocate between use_foreign_module and its...
authorSkgland <[email protected]>
Sat, 9 Aug 2025 15:50:30 +0000 (17:50 +0200)
committerBennet Bleßmann <[email protected]>
Sun, 24 Aug 2025 17:56:23 +0000 (19:56 +0200)
src/lib/ffi.pl

index 22ff55959ed74188d466022e37d2cc6c89ae4613..1a1bad84d47a88b2feeb992c57849c717b8a3319 100644 (file)
@@ -73,23 +73,6 @@ use_foreign_module(LibName, Predicates) :-
     '$load_foreign_lib'(LibName, Predicates),
     maplist(assert_predicate, Predicates).
 
-allocate(Allocator, Type, Args, Ptr) :-
-    must_be(var, Ptr),
-    must_be(atom, Type),
-    must_be(atom, Allocator),
-    '$ffi_allocate'(Allocator, Type, Args, Ptr).
-
-read_ptr(Type, Ptr, Value) :-
-    must_be(var, Value),
-    must_be(atom, Type),
-    must_be(integer, Ptr),
-    '$ffi_read_ptr'(Type, Ptr, Value).
-
-deallocate(Allocator, Type, Ptr) :-
-    must_be(atom, Allocator),
-    must_be(integer, Ptr),
-    '$ffi_deallocate'(Allocator, Type, Ptr).
-
 assert_predicate(PredicateDefinition) :-
     PredicateDefinition =.. [Name, Inputs, void],
     length(Inputs, NumInputs),
@@ -125,3 +108,22 @@ assert_predicate(PredicateDefinition) :-
     ),
     Predicate = (Head:-Body),
     assertz(ffi:Predicate).
+
+
+allocate(Allocator, Type, Args, Ptr) :-
+    must_be(var, Ptr),
+    must_be(atom, Type),
+    must_be(atom, Allocator),
+    '$ffi_allocate'(Allocator, Type, Args, Ptr).
+
+read_ptr(Type, Ptr, Value) :-
+    must_be(var, Value),
+    must_be(atom, Type),
+    must_be(integer, Ptr),
+    '$ffi_read_ptr'(Type, Ptr, Value).
+
+deallocate(Allocator, Type, Ptr) :-
+    must_be(atom, Allocator),
+    must_be(integer, Ptr),
+    '$ffi_deallocate'(Allocator, Type, Ptr).
+