Python C extension: Value different if passed as list than if passed as number

Anand anand_soliton at yahoo.com
Wed Sep 10 17:43:04 EDT 2003


I have a C extension to a dll function.

static PyObject *_wrap_SetTxCommandRegister(PyObject *self, PyObject
*args) {
    PyObject *resultobj;
    int arg1 ;
    int arg2 ;
    int arg3 ;
    char *arg4 = (char *)"Python" ;
    err result;
    
    if(!PyArg_ParseTuple(args,(char
*)"iii|s:SetTxCommandRegister",&arg1,&arg2,&arg3,&arg4)) goto fail;
    result = (err)SetTxCommandRegister(arg1,arg2,arg3,(char const
*)arg4);
    resultobj = PyInt_FromLong((long)result);
    return resultobj;
    fail:
    return NULL;
}

Now here is what i pass from python
test = [0xff,0xaf,0xf0]
newint = test[0]
SetTxCommandRegister(0xff,test[1],test[2])
print test

arg1 = 0xaf if i pass either test[0] or newint
arg1 = 0xff if i pass constant like what i have shown in the code

What am i doing wrong?

Thanks in advance
Anand




More information about the Python-list mailing list