diff --git a/llvmpy/src/Linker.py b/llvmpy/src/Linker.py index 0b846d6..acca503 100644 --- a/llvmpy/src/Linker.py +++ b/llvmpy/src/Linker.py @@ -41,7 +41,7 @@ class Linker: PyObjectPtr, # errmsg ) - LinkModules = CustomStaticMethod('Linker_LinkModules', + _LinkModules = CustomStaticMethod('Linker_LinkModules', PyObjectPtr, # boolean ptr(Module), ptr(Module), @@ -49,3 +49,10 @@ class Linker: PyObjectPtr, # errsg ) + @CustomPythonStaticMethod + def LinkModules(module, other, mode, errmsg): + failed = Linker._LinkModules(module, other, mode, errmsg) + if not failed and mode != Linker.LinkerMode.PreserveSource: + capsule.release_ownership(other._ptr) + return failed +