Mercurial > pub > dyncall > bindings
comparison python/pydc/pydcext.c @ 5:bf5625bb6f05
- brought python binding up to dc v0.9
author | cslag |
---|---|
date | Tue, 22 Mar 2016 01:49:34 +0100 |
parents | 0cfcc391201f |
children | a40084782546 |
comparison
equal
deleted
inserted
replaced
4:4c5019f00f5b | 5:bf5625bb6f05 |
---|---|
219 return PyErr_Format( PyExc_RuntimeError, "argument mismatch at pos %d - expecting a promoting pointer-type (int,string)", index ); | 219 return PyErr_Format( PyExc_RuntimeError, "argument mismatch at pos %d - expecting a promoting pointer-type (int,string)", index ); |
220 } | 220 } |
221 dcArgPointer(gpCall, ptr ); | 221 dcArgPointer(gpCall, ptr ); |
222 } | 222 } |
223 break; | 223 break; |
224 case 'S': | 224 case DC_SIGCHAR_STRING: |
225 { | 225 { |
226 char* p; | 226 char* p; |
227 if (!PyString_Check(po) ) return PyErr_Format( PyExc_RuntimeError, "argument mismatch at pos %d - expecting a string", index ); | 227 if (!PyString_Check(po) ) return PyErr_Format( PyExc_RuntimeError, "argument mismatch at pos %d - expecting a string", index ); |
228 p = PyString_AsString(po); | 228 p = PyString_AsString(po); |
229 dcArgPointer(gpCall, (DCpointer) p ); | 229 dcArgPointer(gpCall, (DCpointer) p ); |
242 | 242 |
243 ch = *++ptr; | 243 ch = *++ptr; |
244 | 244 |
245 switch(ch) | 245 switch(ch) |
246 { | 246 { |
247 case DC_SIGCHAR_VOID: dcCallVoid(gpCall, pfunc); Py_RETURN_NONE; | 247 case DC_SIGCHAR_VOID: dcCallVoid (gpCall, pfunc); Py_RETURN_NONE; |
248 case DC_SIGCHAR_BOOL: return Py_BuildValue("i", dcCallBool(gpCall, pfunc) ); | 248 case DC_SIGCHAR_BOOL: return Py_BuildValue("i", dcCallBool (gpCall, pfunc)); |
249 case DC_SIGCHAR_INT: return Py_BuildValue("i", dcCallInt(gpCall, pfunc) ); | 249 case DC_SIGCHAR_INT: return Py_BuildValue("i", dcCallInt (gpCall, pfunc)); |
250 case DC_SIGCHAR_LONGLONG: return Py_BuildValue("L", (unsigned long long) dcCallLongLong(gpCall, pfunc) ); | 250 case DC_SIGCHAR_LONGLONG: return Py_BuildValue("L", (unsigned long long)dcCallLongLong(gpCall, pfunc)); |
251 case DC_SIGCHAR_FLOAT: return Py_BuildValue("f", dcCallFloat(gpCall, pfunc) ); | 251 case DC_SIGCHAR_FLOAT: return Py_BuildValue("f", dcCallFloat (gpCall, pfunc)); |
252 case DC_SIGCHAR_DOUBLE: return Py_BuildValue("d", dcCallDouble(gpCall, pfunc) ); | 252 case DC_SIGCHAR_DOUBLE: return Py_BuildValue("d", dcCallDouble (gpCall, pfunc)); |
253 case 's': return Py_BuildValue("s", dcCallPointer(gpCall, pfunc) ); | 253 case DC_SIGCHAR_STRING: return Py_BuildValue("s", dcCallPointer (gpCall, pfunc)); |
254 case DC_SIGCHAR_POINTER: return Py_BuildValue("p", dcCallPointer(gpCall, pfunc) ); | 254 case DC_SIGCHAR_POINTER: return Py_BuildValue("p", dcCallPointer (gpCall, pfunc)); |
255 default: return PyErr_Format( PyExc_RuntimeError, "invalid return type signature" ); | 255 default: return PyErr_Format( PyExc_RuntimeError, "invalid return type signature"); |
256 } | 256 } |
257 } | 257 } |
258 | 258 |
259 | 259 |
260 static PyMethodDef pydcMethods[] = { | 260 static PyMethodDef pydcMethods[] = { |