Updated PyCObject calls to use PyCapsule calls
This commit is contained in:
parent
6d50a337ad
commit
220f59f1e9
3 changed files with 226 additions and 7 deletions
70
llvm/_core.c
70
llvm/_core.c
|
|
@ -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);
|
||||
|
|
|
|||
15
llvm/wrap.c
15
llvm/wrap.c
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
148
llvm/wrap.h
148
llvm/wrap.h
|
|
@ -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(); \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue