3439 static PyObject *
3440 register_transaction (PyObject *self, PyObject *args, PyObject *keywds)
3441 {
3442 arm_error_t status;
3443 arm_id_t tran_id;
3444 ArmID *app_id;
3445 const char *transaction_name;
3446 ArmBuffer *buffer = NULL;
3447 arm_buffer4_t *buffer_ptr = NULL;
3448
3449 /*
3450 * Supported calling signatures:
3451 * register_transaction (app_id, "Name")
3452 * register_transaction (app_id, "Name",(buffers...))
3453 */
3454 static char *kwlist[] = {"app_id", "tran_name", "buffer", NULL};
3455
3456 if (!PyArg_ParseTupleAndKeywords(args, keywds, "Os|O:register_transaction", kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
3457 &app_id, &transaction_name, &buffer))
3458 return NULL;
3459 if (!ArmID_Object_Check(app_id))
when taking True path
when considering range: -0x80000000 <= value <= -1
taking False path
3460 return NULL;
3461 if (buffer && ArmBuffer_Object_Check(buffer))
taking True path
when taking False path
when considering value == (int)0 from arm4module.c:3461
taking False path
3462 {
3463 prepare (buffer);
3464 buffer_ptr = &(buffer->arm_buffer);
3465 }
3466
3467 status = arm_register_transaction(
3468 &(app_id->arm_id),
3469 transaction_name,
3470 NULL,
3471 0,
3472 buffer_ptr,
3473 &tran_id);
3474 if (GETSTATE0->enableExceptions && (status != ARM_SUCCESS))
when considering range: -0x80000000 <= value <= -1
when considering range: -0x80000000 <= value <= -1
taking True path
3475 {
3476 set_arm_error (status, "arm_register_transaction");
3477 return NULL;
3478 }
3479
3480 /* Return the transaction ID */
3481 PyObject *id_ptr = (PyObject *) newArmID (&tran_id);
3482 return id_ptr;
3483 }
returning (PyObject*)NULL without setting an exception
found 8 similar trace(s) to this