Add address metadata key to defcfn as well
This commit is contained in:
parent
5ab2bae1fa
commit
daa1949f32
2 changed files with 6 additions and 3 deletions
|
|
@ -3,7 +3,7 @@ All notable changes to this project will be documented in this file. This change
|
|||
|
||||
## [Unreleased]
|
||||
### Added
|
||||
- An `::ffi/address` key to deserialized function pointers' metadata
|
||||
- An `::ffi/address` key to wrapper functions' metadata
|
||||
|
||||
## [0.1.184] - 2021-09-30
|
||||
### Fixed
|
||||
|
|
|
|||
|
|
@ -545,6 +545,7 @@
|
|||
(let [args (s/conform ::defcfn-args args)
|
||||
args-types (gensym "args-types")
|
||||
ret-type (gensym "ret-type")
|
||||
address (gensym "symbol")
|
||||
invoke (gensym "invoke")
|
||||
native-sym (gensym "native")
|
||||
[arity fn-tail] (-> args :wrapper :fn-tail)
|
||||
|
|
@ -558,7 +559,8 @@
|
|||
nil))]
|
||||
`(let [~args-types ~(:native-arglist args)
|
||||
~ret-type ~(:return-type args)
|
||||
~invoke (make-downcall ~(name (:symbol args)) ~args-types ~ret-type)
|
||||
~address (find-symbol ~(name (:symbol args)))
|
||||
~invoke (make-downcall ~address ~args-types ~ret-type)
|
||||
~(or (-> args :wrapper :native-fn) native-sym)
|
||||
~(if (and (every? #(= % (mem/primitive-type %))
|
||||
(:native-arglist args))
|
||||
|
|
@ -581,7 +583,8 @@
|
|||
(list
|
||||
(mapv (comp symbol name)
|
||||
(:native-arglist args)))))))
|
||||
(:attr-map args)))
|
||||
(assoc (:attr-map args)
|
||||
::address address)))
|
||||
~@(when-let [doc (:doc args)]
|
||||
(list doc))
|
||||
fun#))))
|
||||
|
|
|
|||
Loading…
Reference in a new issue