Add a function's address to the metadata of deserialized functions
This commit is contained in:
parent
b543b013df
commit
5ab2bae1fa
2 changed files with 11 additions and 7 deletions
|
|
@ -2,6 +2,8 @@
|
||||||
All notable changes to this project will be documented in this file. This change log follows the conventions of [keepachangelog.com](http://keepachangelog.com/).
|
All notable changes to this project will be documented in this file. This change log follows the conventions of [keepachangelog.com](http://keepachangelog.com/).
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
### Added
|
||||||
|
- An `::ffi/address` key to deserialized function pointers' metadata
|
||||||
|
|
||||||
## [0.1.184] - 2021-09-30
|
## [0.1.184] - 2021-09-30
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
|
||||||
|
|
@ -368,13 +368,15 @@
|
||||||
(defmethod mem/deserialize* ::fn
|
(defmethod mem/deserialize* ::fn
|
||||||
[addr [_fn arg-types ret-type & {:keys [raw-fn?]}]]
|
[addr [_fn arg-types ret-type & {:keys [raw-fn?]}]]
|
||||||
(when-not (mem/null? addr)
|
(when-not (mem/null? addr)
|
||||||
(-> addr
|
(vary-meta
|
||||||
(downcall-handle
|
(-> addr
|
||||||
(method-type arg-types ret-type)
|
(downcall-handle
|
||||||
(function-descriptor arg-types ret-type))
|
(method-type arg-types ret-type)
|
||||||
(downcall-fn arg-types ret-type)
|
(function-descriptor arg-types ret-type))
|
||||||
(cond->
|
(downcall-fn arg-types ret-type)
|
||||||
(not raw-fn?) (make-serde-wrapper arg-types ret-type)))))
|
(cond->
|
||||||
|
(not raw-fn?) (make-serde-wrapper arg-types ret-type)))
|
||||||
|
assoc ::address addr)))
|
||||||
|
|
||||||
;;; Static memory access
|
;;; Static memory access
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue