Mercurial > pub > dyncall > bindings
view lua/luadyncall/src/dyncall.lua @ 29:6cc2b7fc7ea2
bigger pydc update:
- cleanups and refactoring
- python 2 fixes in var conversions (especially w/ respect to int vs long)
- fix to pydc.free() which didn't work at all
- fix to return python bool as actual bool
- test lib covering all conversions (manual verification, though :-/)
author | Tassilo Philipp |
---|---|
date | Wed, 08 Apr 2020 22:17:43 +0200 |
parents | 0cfcc391201f |
children |
line wrap: on
line source
require "ldyncall" require "dynload" --- invoke dynamic foreign function call -- This is a front-end function that provides several interfaces -- @param target Target signature -- @param ... if target is a string, then the arguments follow. -- @see dodyncall for details function dyncall(target, ...) local t = type(target) if t == "string" then local libnames, sym, sig = target:match("^@(.+)/(.+)%((.+)") local lib = dynload(libnames) -- hold reference as long as the call return ldyncall.dodyncall( dynsym( lib,sym ), sig, ...) else return ldyncall.dodyncall( target, ...) end end -- pointer utilities -- topointer = ldyncall.topointer NULL = topointer(0)