title: Python C API: Call a Python function with argument(s) passed by reference
body: <p>I'm writing a python module in C and I need to have it call a Python function with one of the arguments passed by "reference".  The end result should be that what the Python function does to the argument gets saved into the original C variable.</p>
  
  <pre><code>int      *resume;      // this int is actually passed in to this body of code
  PyObject *resumeInt;   // which was originally a C callback func for libnids, but
  PyObject *ret;         // I removed/rewrote most of this code for clarity
  
  resumeInt = Py_BuildValue("i",-1);
  ret = PyObject_CallFunction(tcpResumeFunc, "(O)", resumeInt);    
  
  *resume = PyInt_AsLong(resumeInt);
  Py_DECREF(ret);
  Py_DECREF(resumeInt);
  </code></pre>
  
  <p>To test, I had the Python function that tcpResumeFunc represents modify the passed-in integer to = 5. When I print out *resume at the end of this code, however, it retains it's initial -1 value.  I know I am misunderstanding something about how the API works.  Any suggestions?</p>