Updated PyCObject calls to use PyCapsule calls

This commit is contained in:
AndrewBC 2011-06-12 02:31:41 -05:00
commit 220f59f1e9
3 changed files with 226 additions and 7 deletions

View file

@ -178,8 +178,13 @@ _wLLVMLinkModules(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "OO", &dest_obj, &src_obj))
return NULL;
#ifdef LLVM_PY_USE_PYCAPSULE
dest = (LLVMModuleRef) PyCapsule_GetPointer(dest_obj, NULL);
src = (LLVMModuleRef) PyCapsule_GetPointer(src_obj, NULL);
#else
dest = (LLVMModuleRef) PyCObject_AsVoidPtr(dest_obj);
src = (LLVMModuleRef) PyCObject_AsVoidPtr(src_obj);
#endif
if (!LLVMLinkModules(dest, src, &errmsg)) {
if (errmsg) {
@ -377,8 +382,13 @@ _wLLVMConstInt(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "OKi", &obj, &n, &sign_extend))
return NULL;
#ifdef LLVM_PY_USE_PYCAPSULE
ty = (LLVMTypeRef) PyCapsule_GetPointer(obj, NULL);
#else
ty = (LLVMTypeRef)(PyCObject_AsVoidPtr(obj));
#endif
val = LLVMConstInt(ty, n, sign_extend);
return ctor_LLVMValueRef(val);
}
@ -394,7 +404,12 @@ _wLLVMConstReal(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "Od", &obj, &d))
return NULL;
#ifdef LLVM_PY_USE_PYCAPSULE
ty = (LLVMTypeRef) PyCapsule_GetPointer(obj, NULL);
#else
ty = (LLVMTypeRef)(PyCObject_AsVoidPtr(obj));
#endif
val = LLVMConstReal(ty, d);
return ctor_LLVMValueRef(val);
}
@ -630,14 +645,26 @@ _wLLVMBuildInvoke(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "OOOOOs", &obj1, &obj2, &obj3, &obj4, &obj5, &name))
return NULL;
#ifdef LLVM_PY_USE_PYCAPSULE
builder = (LLVMBuilderRef) PyCapsule_GetPointer(obj1, NULL);
func = (LLVMValueRef) PyCapsule_GetPointer(obj2, NULL);
#else
builder = (LLVMBuilderRef)(PyCObject_AsVoidPtr(obj1));
func = (LLVMValueRef)(PyCObject_AsVoidPtr(obj2));
#endif
fnarg_count = (unsigned) PyList_Size(obj3);
fnargs = (LLVMValueRef *)make_array_from_list(obj3, fnarg_count);
if (!fnargs)
return PyErr_NoMemory();
#ifdef LLVM_PY_USE_PYCAPSULE
then_blk = (LLVMBasicBlockRef) PyCapsule_GetPointer(obj4, NULL);
catch_blk = (LLVMBasicBlockRef) PyCapsule_GetPointer(obj5, NULL);
#else
then_blk = (LLVMBasicBlockRef)(PyCObject_AsVoidPtr(obj4));
catch_blk = (LLVMBasicBlockRef)(PyCObject_AsVoidPtr(obj5));
#endif
inst = LLVMBuildInvoke(builder, func, fnargs, fnarg_count, then_blk, catch_blk, name);
@ -935,7 +962,11 @@ _wLLVMCreateExecutionEngine(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "Oi", &obj, &force_interpreter))
return NULL;
#ifdef LLVM_PY_USE_PYCAPSULE
mod = (LLVMModuleRef) PyCapsule_GetPointer(obj, NULL);
#else
mod = (LLVMModuleRef) PyCObject_AsVoidPtr(obj);
#endif
if (force_interpreter)
error = LLVMCreateInterpreterForModule(&ee, mod, &outmsg);
@ -963,8 +994,13 @@ _wLLVMGetPointerToFunction(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "OO", &obj_ee, &obj_fn))
return NULL;
#ifdef LLVM_PY_USE_PYCAPSULE
ee = (LLVMExecutionEngineRef) PyCapsule_GetPointer(obj_ee, NULL);
fn = (LLVMValueRef) PyCapsule_GetPointer(obj_fn, NULL);
#else
ee = (LLVMExecutionEngineRef) PyCObject_AsVoidPtr(obj_ee);
fn = (LLVMValueRef) PyCObject_AsVoidPtr(obj_fn);
#endif
return PyLong_FromVoidPtr(LLVMGetPointerToFunction(ee,fn));
}
@ -989,8 +1025,15 @@ _wLLVMRemoveModule2(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "OO", &obj_ee, &obj_mod))
return NULL;
#ifdef LLVM_PY_USE_PYCAPSULE
ee = (LLVMExecutionEngineRef) PyCapsule_GetPointer(obj_ee, NULL);
fn = (LLVMValueRef) PyCapsule_GetPointer(obj_fn, NULL);
#error "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Using capsule"
#else
ee = (LLVMExecutionEngineRef) PyCObject_AsVoidPtr(obj_ee);
mod = (LLVMModuleRef) PyCObject_AsVoidPtr(obj_mod);
#error "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Using pycobject"
#endif
LLVMRemoveModule(ee, mod, &mod_new, &outmsg);
if (mod_new) {
@ -1036,7 +1079,11 @@ _wLLVMCreateGenericValueOfInt(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "OLi", &obj1, &n, &is_signed))
return NULL;
#ifdef LLVM_PY_USE_PYCAPSULE
ty = (LLVMTypeRef) PyCapsule_GetPointer(obj1, NULL);
#else
ty = (LLVMTypeRef) PyCObject_AsVoidPtr(obj1);
#endif
gv = LLVMCreateGenericValueOfInt(ty, n, is_signed);
return ctor_LLVMGenericValueRef(gv);
@ -1053,7 +1100,11 @@ _wLLVMCreateGenericValueOfFloat(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "Od", &obj1, &d))
return NULL;
#ifdef LLVM_PY_USE_PYCAPSULE
ty = (LLVMTypeRef) PyCapsule_GetPointer(obj1, NULL);
#else
ty = (LLVMTypeRef) PyCObject_AsVoidPtr(obj1);
#endif
gv = LLVMCreateGenericValueOfFloat(ty, d);
return ctor_LLVMGenericValueRef(gv);
@ -1073,7 +1124,11 @@ _wLLVMCreateGenericValueOfPointer(PyObject *self, PyObject *args)
n=n_;
#ifdef LLVM_PY_USE_PYCAPSULE
ty = (LLVMTypeRef) PyCapsule_GetPointer(obj1, NULL);
#else
ty = (LLVMTypeRef) PyCObject_AsVoidPtr(obj1);
#endif
gv = LLVMCreateGenericValueOfPointer((void*)n);
return ctor_LLVMGenericValueRef(gv);
@ -1090,7 +1145,11 @@ _wLLVMGenericValueToInt(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "Oi", &obj1, &is_signed))
return NULL;
#ifdef LLVM_PY_USE_PYCAPSULE
gv = (LLVMGenericValueRef) PyCapsule_GetPointer(obj1, NULL);
#else
gv = (LLVMGenericValueRef) PyCObject_AsVoidPtr(obj1);
#endif
val = LLVMGenericValueToInt(gv, is_signed);
return is_signed ?
@ -1109,8 +1168,13 @@ _wLLVMGenericValueToFloat(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "OO", &obj1, &obj2))
return NULL;
#ifdef LLVM_PY_USE_PYCAPSULE
ty = (LLVMTypeRef) PyCapsule_GetPointer(obj1, NULL);
gv = (LLVMGenericValueRef) PyCapsule_GetPointer(obj2, NULL);
#else
ty = (LLVMTypeRef) PyCObject_AsVoidPtr(obj1);
gv = (LLVMGenericValueRef) PyCObject_AsVoidPtr(obj2);
#endif
val = LLVMGenericValueToFloat(ty, gv);
return PyFloat_FromDouble(val);
@ -1126,7 +1190,11 @@ _wLLVMGenericValueToPointer(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "O", &obj1))
return NULL;
#ifdef LLVM_PY_USE_PYCAPSULE
gv = (LLVMGenericValueRef) PyCapsule_GetPointer(obj1, NULL);
#else
gv = (LLVMGenericValueRef) PyCObject_AsVoidPtr(obj1);
#endif
val = LLVMGenericValueToPointer(gv);
return PyLong_FromVoidPtr(val);

View file

@ -30,7 +30,6 @@
#include "wrap.h"
/*===----------------------------------------------------------------------===*/
/* Helper functions/macros */
/*===----------------------------------------------------------------------===*/
@ -39,7 +38,11 @@
PyObject * ctor_ ## typ ( typ p) \
{ \
if (p) \
#ifdef LLVM_PY_USE_PYCAPSULE \
return PyCapsule_New(p, NULL, NULL); \
#else \
return PyCObject_FromVoidPtr(p, NULL); \
#endif \
Py_RETURN_NONE; \
}
@ -81,8 +84,11 @@ void *get_object_arg(PyObject *args)
if (!PyArg_ParseTuple(args, "O", &o))
return NULL;
#ifdef LLVM_PY_USE_PYCAPSULE
return PyCapsule_GetPointer(o, NULL);
#else
return PyCObject_AsVoidPtr(o);
#endif
}
void **make_array_from_list(PyObject *list, int n)
@ -96,7 +102,11 @@ void **make_array_from_list(PyObject *list, int n)
for (i=0; i<n; i++) {
PyObject *e = PyList_GetItem(list, i);
#ifdef LLVM_PY_USE_PYCAPSULE
arr[i] = PyCapsule_GetPointer(e, NULL);
#else
arr[i] = PyCObject_AsVoidPtr(e);
#endif
}
return arr;
@ -121,3 +131,4 @@ PyObject *make_list_from_ ## TYPE ## _array( TYPE *p, unsigned n) \
LIST_FROM_ARRAY_IMPL(LLVMTypeRef)
LIST_FROM_ARRAY_IMPL(LLVMValueRef)

View file

@ -27,6 +27,11 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/* Project-wide setting */
#if (PY_MAJOR_VERSION >= 3)
#define LLVM_PY_USE_PYCAPSULE
#endif
/**
* Functions and macros to aid in wrapping.
@ -46,7 +51,6 @@
#include "llvm-c/ExecutionEngine.h"
#include "llvm-c/Target.h"
/*===----------------------------------------------------------------------===*/
/* Typedefs */
/*===----------------------------------------------------------------------===*/
@ -170,9 +174,13 @@ _w ## func (PyObject *self, PyObject *args) \
\
if (!PyArg_ParseTuple(args, "OO", &obj1, &obj2)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
arg2 = ( intype2 ) PyCapsule_GetPointer(obj2, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
arg2 = ( intype2 ) PyCObject_AsVoidPtr(obj2); \
#endif \
\
return ctor_ ## outtype ( func (arg1, arg2)); \
}
@ -191,9 +199,13 @@ _w ## func (PyObject *self, PyObject *args) \
\
if (!PyArg_ParseTuple(args, "OO", &obj1, &obj2)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
arg2 = ( intype2 ) PyCapsule_GetPointer(obj2, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
arg2 = ( intype2 ) PyCObject_AsVoidPtr(obj2); \
#endif \
\
func (arg1, arg2); \
Py_RETURN_NONE; \
@ -213,8 +225,11 @@ _w ## func (PyObject *self, PyObject *args) \
\
if (!PyArg_ParseTuple(args, "OI", &obj1, &arg2)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
#endif \
\
return ctor_ ## outtype ( func (arg1, arg2)); \
}
@ -235,9 +250,15 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OOO", &obj1, &obj2, &obj3)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
arg2 = ( intype2 ) PyCapsule_GetPointer(obj2, NULL); \
arg3 = ( intype3 ) PyCapsule_GetPointer(obj3, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
arg2 = ( intype2 ) PyCObject_AsVoidPtr(obj2); \
arg3 = ( intype3 ) PyCObject_AsVoidPtr(obj3); \
#endif \
\
return ctor_ ## outtype ( func (arg1, arg2, arg3)); \
}
@ -258,9 +279,15 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OOO", &obj1, &obj2, &obj3)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
arg2 = ( intype2 ) PyCapsule_GetPointer(obj2, NULL); \
arg3 = ( intype3 ) PyCapsule_GetPointer(obj3, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
arg2 = ( intype2 ) PyCObject_AsVoidPtr(obj2); \
arg3 = ( intype3 ) PyCObject_AsVoidPtr(obj3); \
#endif \
\
func (arg1, arg2, arg3); \
Py_RETURN_NONE; \
@ -282,8 +309,13 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "IOO", &arg1, &obj2, &obj3)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg2 = ( intype2 ) PyCapsule_GetPointer(obj2, NULL); \
arg3 = ( intype3 ) PyCapsule_GetPointer(obj3, NULL); \
#else \
arg2 = ( intype2 ) PyCObject_AsVoidPtr(obj2); \
arg3 = ( intype3 ) PyCObject_AsVoidPtr(obj3); \
#endif \
\
return ctor_ ## outtype ( func (arg1, arg2, arg3)); \
}
@ -304,8 +336,13 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "IOO", &arg1, &obj2, &obj3)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg2 = ( intype2 ) PyCapsule_GetPointer(obj2, NULL); \
arg3 = ( intype3 ) PyCapsule_GetPointer(obj3, NULL); \
#else \
arg2 = ( intype2 ) PyCObject_AsVoidPtr(obj2); \
arg3 = ( intype3 ) PyCObject_AsVoidPtr(obj3); \
#endif \
\
return ctor_ ## outtype ( func (arg1, arg2, arg3)); \
}
@ -388,7 +425,11 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "Os", &obj1, &arg2)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
#endif \
\
func (arg1, arg2); \
Py_RETURN_NONE; \
@ -409,7 +450,11 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "Os", &obj1, &arg2)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
#endif \
\
return ctor_ ## outtype ( func (arg1, arg2)); \
}
@ -429,7 +474,11 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "Oi", &obj1, &arg2)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
#endif \
\
func (arg1, arg2); \
Py_RETURN_NONE; \
@ -450,7 +499,11 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "Oi", &obj1, &arg2)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
#endif \
\
func (arg1, arg2); \
Py_RETURN_NONE; \
@ -472,8 +525,13 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OOs", &obj1, &obj2, &arg3)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
arg2 = ( intype2 ) PyCapsule_GetPointer(obj2, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
arg2 = ( intype2 ) PyCObject_AsVoidPtr(obj2); \
#endif \
\
return ctor_ ## outtype ( func (arg1, arg2, arg3)) ;\
}
@ -494,8 +552,13 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OOi", &obj1, &obj2, &arg3)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
arg2 = ( intype2 ) PyCapsule_GetPointer(obj2, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
arg2 = ( intype2 ) PyCObject_AsVoidPtr(obj2); \
#endif \
\
return ctor_ ## outtype ( func (arg1, arg2, arg3)) ;\
}
@ -516,8 +579,13 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OOK", &obj1, &obj2, &arg3)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
arg2 = ( intype2 ) PyCapsule_GetPointer(obj2, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
arg2 = ( intype2 ) PyCObject_AsVoidPtr(obj2); \
#endif \
\
return ctor_ ## outtype ( func (arg1, arg2, arg3)) ;\
}
@ -537,7 +605,11 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "Oii", &obj1, &arg2, &arg3)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
#endif \
\
func (arg1, arg2, arg3); \
Py_RETURN_NONE; \
@ -559,7 +631,11 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "Oii", &obj1, &arg2, &arg3)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
#endif \
\
func (arg1, arg2, arg3); \
Py_RETURN_NONE; \
@ -581,8 +657,13 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OsO", &obj1, &arg2, &obj3)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
arg3 = ( intype3 ) PyCapsule_GetPointer(obj3, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
arg3 = ( intype3 ) PyCObject_AsVoidPtr(obj3); \
#endif \
\
return ctor_ ## outtype ( func (arg1, arg2, arg3)); \
}
@ -605,8 +686,13 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OOis", &obj1, &obj2, &arg3, &arg4)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
arg2 = ( intype2 ) PyCapsule_GetPointer(obj2, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
arg2 = ( intype2 ) PyCObject_AsVoidPtr(obj2); \
#endif \
\
return ctor_ ## outtype ( func (arg1, arg2, arg3, arg4)) ;\
}
@ -628,9 +714,15 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OOOs", &obj1, &obj2, &obj3, &arg4)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
arg2 = ( intype2 ) PyCapsule_GetPointer(obj2, NULL); \
arg3 = ( intype3 ) PyCapsule_GetPointer(obj3, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
arg2 = ( intype2 ) PyCObject_AsVoidPtr(obj2); \
arg3 = ( intype3 ) PyCObject_AsVoidPtr(obj3); \
#endif \
\
return ctor_ ## outtype ( func (arg1, arg2, arg3, arg4)); \
}
@ -652,9 +744,15 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OOOi", &obj1, &obj2, &obj3, &arg4)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
arg2 = ( intype2 ) PyCapsule_GetPointer(obj2, NULL); \
arg3 = ( intype3 ) PyCapsule_GetPointer(obj3, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
arg2 = ( intype2 ) PyCObject_AsVoidPtr(obj2); \
arg3 = ( intype3 ) PyCObject_AsVoidPtr(obj3); \
#endif \
\
return ctor_ ## outtype ( func (arg1, arg2, arg3, arg4)); \
}
@ -676,10 +774,17 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OOOO", &obj1, &obj2, &obj3, &obj4)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
arg2 = ( intype2 ) PyCapsule_GetPointer(obj2, NULL); \
arg3 = ( intype3 ) PyCapsule_GetPointer(obj3, NULL); \
arg4 = ( intype4 ) PyCapsule_GetPointer(obj4, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
arg2 = ( intype2 ) PyCObject_AsVoidPtr(obj2); \
arg3 = ( intype3 ) PyCObject_AsVoidPtr(obj3); \
arg4 = ( intype4 ) PyCObject_AsVoidPtr(obj4); \
#endif \
\
return ctor_ ## outtype ( func (arg1, arg2, arg3, arg4)); \
}
@ -702,10 +807,17 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OOOOs", &obj1, &obj2, &obj3, &obj4, &arg5)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
arg2 = ( intype2 ) PyCapsule_GetPointer(obj2, NULL); \
arg3 = ( intype3 ) PyCapsule_GetPointer(obj3, NULL); \
arg4 = ( intype4 ) PyCapsule_GetPointer(obj4, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
arg2 = ( intype2 ) PyCObject_AsVoidPtr(obj2); \
arg3 = ( intype3 ) PyCObject_AsVoidPtr(obj3); \
arg4 = ( intype4 ) PyCObject_AsVoidPtr(obj4); \
#endif \
\
return ctor_ ## outtype ( func (arg1, arg2, arg3, arg4, arg5)); \
}
@ -728,9 +840,15 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OiOOs", &obj1, &arg2, &obj3, &obj4, &arg5)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
arg3 = ( intype3 ) PyCapsule_GetPointer(obj3, NULL); \
arg4 = ( intype4 ) PyCapsule_GetPointer(obj4, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
arg3 = ( intype3 ) PyCObject_AsVoidPtr(obj3); \
arg4 = ( intype4 ) PyCObject_AsVoidPtr(obj4); \
#endif \
\
return ctor_ ## outtype ( func (arg1, arg2, arg3, arg4, arg5)); \
}
@ -753,7 +871,11 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OO", &obj1, &obj2)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
#endif \
arg2n = (unsigned) PyList_Size(obj2); \
if (!(arg2v = ( intype2 *)make_array_from_list(obj2, arg2n))) \
return PyErr_NoMemory(); \
@ -835,7 +957,11 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OOi", &obj1, &obj2, &arg3)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
#endif \
arg2n = (unsigned) PyList_Size(obj2); \
if (!(arg2v = ( intype2 *)make_array_from_list(obj2, arg2n))) \
return PyErr_NoMemory(); \
@ -864,7 +990,11 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OiO", &obj1, &arg2, &obj3)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
#endif \
arg3n = (unsigned) PyList_Size(obj3); \
if (!(arg3v = ( intype3 *)make_array_from_list(obj3, arg3n))) \
return PyErr_NoMemory(); \
@ -893,8 +1023,13 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OOO", &obj1, &obj2, &obj3)) \
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
arg2 = ( intype2 ) PyCapsule_GetPointer(obj2, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
arg2 = ( intype2 ) PyCObject_AsVoidPtr(obj2); \
#endif \
arg3n = (unsigned) PyList_Size(obj3); \
if (!(arg3v = ( intype3 *)make_array_from_list(obj3, arg3n))) \
return PyErr_NoMemory(); \
@ -924,8 +1059,13 @@ _w ## func (PyObject *self, PyObject *args) \
if (!PyArg_ParseTuple(args, "OOOs", &obj1, &obj2, &obj3, &arg4))\
return NULL; \
\
#ifdef LLVM_PY_USE_PYCAPSULE \
arg1 = ( intype1 ) PyCapsule_GetPointer(obj1, NULL); \
arg2 = ( intype2 ) PyCapsule_GetPointer(obj2, NULL); \
#else \
arg1 = ( intype1 ) PyCObject_AsVoidPtr(obj1); \
arg2 = ( intype2 ) PyCObject_AsVoidPtr(obj2); \
#endif \
arg3n = ( unsigned ) PyList_Size(obj3); \
if (!(arg3v = ( intype3 *)make_array_from_list(obj3, arg3n))) \
return PyErr_NoMemory(); \