File: | arm4module.c |
Function: | generate_correlator |
Error: | ob_refcnt of '*correlator' is 1 too high |
4478 static PyObject *
4479 generate_correlator (PyObject *self, PyObject *args, PyObject *keywds)
4480 {
4481 arm_error_t status;
4482 ArmHandle *app_handle;
4483 ArmID *tran_id;
4484 ArmCorrelator *parent = NULL;
4485 arm_correlator_t *parent_ptr = NULL;
4486 ArmCorrelator *correlator = NULL;
4487 arm_correlator_t *correlator_ptr = NULL;
4488 ArmBuffer *buffer = NULL;
4489 arm_buffer4_t *buffer_ptr = NULL;
4490 int flags = ARM_FLAG_NONE;
4491
4492 /*
4493 * Supported calling signatures:
4494 * generate_correlator (app_handle, tran_id, parent=, flags=, buffers=)
4495 */
4496
4497 static char *kwlist[] = {"app_handle", "tran_id", "parent", "flags", "buffer", NULL};
4498
4499 if (!PyArg_ParseTupleAndKeywords(args, keywds, "OO|OiO:generate_correlator", kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
4500 &app_handle, &tran_id, &parent, &flags, &buffer))
4501 return NULL;
4502 if (!ArmHandle_Object_Check(app_handle))
when taking True path
when considering range: -0x80000000 <= value <= -1
taking False path
4503 return NULL;
4504 if (!ArmID_Object_Check(tran_id))
when taking True path
when considering range: -0x80000000 <= value <= -1
taking False path
4505 return NULL;
4506 if (buffer && ArmBuffer_Object_Check(buffer))
taking True path
when taking True path
4507 {
4508 prepare (buffer);
4509 buffer_ptr = &(buffer->arm_buffer);
4510 }
4511
4512 /* Set up our optional parameters */
4513 if (parent && ArmCorrelator_Object_Check (parent))
taking True path
when taking False path
when considering value == (int)0 from arm4module.c:4513
taking False path
4514 parent_ptr = &(parent->arm_correlator);
4515 else
4516 parent_ptr = NULL;
4517
4518 correlator = newArmCorrelator (NULL);
when newArmCorrelator() succeeds
new ref from (unknown) newArmCorrelator allocated at: correlator = newArmCorrelator (NULL);
ob_refcnt is now refs: 1 + N where N >= 0
4519 correlator_ptr = &(correlator->arm_correlator);
4520
4521 status = arm_generate_correlator(
4522 app_handle->arm_handle,
4523 &(tran_id->arm_id),
4524 parent_ptr,
4525 flags,
4526 buffer_ptr,
4527 correlator_ptr);
4528 if (GETSTATE0->enableExceptions && (status != ARM_SUCCESS))
when considering range: -0x80000000 <= value <= -1
when considering range: -0x80000000 <= value <= -1
taking True path
4529 {
4530 set_arm_error (status, "arm_generate_correlator");
4531 return NULL;
4532 }
4533
4534 /* Return the correlator */
4535 return (PyObject *) correlator;
4536 }
ob_refcnt of '*correlator' is 1 too high
was expecting final ob_refcnt to be N + 0 (for some unknown N)
but final ob_refcnt is N + 1
found 9 similar trace(s) to this
File: | arm4module.c |
Function: | generate_correlator |
Error: | returning (PyObject*)NULL without setting an exception |
4478 static PyObject *
4479 generate_correlator (PyObject *self, PyObject *args, PyObject *keywds)
4480 {
4481 arm_error_t status;
4482 ArmHandle *app_handle;
4483 ArmID *tran_id;
4484 ArmCorrelator *parent = NULL;
4485 arm_correlator_t *parent_ptr = NULL;
4486 ArmCorrelator *correlator = NULL;
4487 arm_correlator_t *correlator_ptr = NULL;
4488 ArmBuffer *buffer = NULL;
4489 arm_buffer4_t *buffer_ptr = NULL;
4490 int flags = ARM_FLAG_NONE;
4491
4492 /*
4493 * Supported calling signatures:
4494 * generate_correlator (app_handle, tran_id, parent=, flags=, buffers=)
4495 */
4496
4497 static char *kwlist[] = {"app_handle", "tran_id", "parent", "flags", "buffer", NULL};
4498
4499 if (!PyArg_ParseTupleAndKeywords(args, keywds, "OO|OiO:generate_correlator", kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
4500 &app_handle, &tran_id, &parent, &flags, &buffer))
4501 return NULL;
4502 if (!ArmHandle_Object_Check(app_handle))
when taking True path
when considering range: -0x80000000 <= value <= -1
taking False path
4503 return NULL;
4504 if (!ArmID_Object_Check(tran_id))
when taking True path
when considering range: -0x80000000 <= value <= -1
taking False path
4505 return NULL;
4506 if (buffer && ArmBuffer_Object_Check(buffer))
taking True path
when taking True path
4507 {
4508 prepare (buffer);
4509 buffer_ptr = &(buffer->arm_buffer);
4510 }
4511
4512 /* Set up our optional parameters */
4513 if (parent && ArmCorrelator_Object_Check (parent))
taking True path
when taking False path
when considering value == (int)0 from arm4module.c:4513
taking False path
4514 parent_ptr = &(parent->arm_correlator);
4515 else
4516 parent_ptr = NULL;
4517
4518 correlator = newArmCorrelator (NULL);
when newArmCorrelator() succeeds
4519 correlator_ptr = &(correlator->arm_correlator);
4520
4521 status = arm_generate_correlator(
4522 app_handle->arm_handle,
4523 &(tran_id->arm_id),
4524 parent_ptr,
4525 flags,
4526 buffer_ptr,
4527 correlator_ptr);
4528 if (GETSTATE0->enableExceptions && (status != ARM_SUCCESS))
when considering range: -0x80000000 <= value <= -1
when considering range: -0x80000000 <= value <= -1
taking True path
4529 {
4530 set_arm_error (status, "arm_generate_correlator");
4531 return NULL;
4532 }
4533
4534 /* Return the correlator */
4535 return (PyObject *) correlator;
4536 }
returning (PyObject*)NULL without setting an exception
found 9 similar trace(s) to this
File: | arm4module.c |
Function: | generate_correlator |
Error: | dereferencing NULL (correlator->arm_correlator) at arm4module.c:4519 |
4478 static PyObject *
4479 generate_correlator (PyObject *self, PyObject *args, PyObject *keywds)
4480 {
4481 arm_error_t status;
4482 ArmHandle *app_handle;
4483 ArmID *tran_id;
4484 ArmCorrelator *parent = NULL;
4485 arm_correlator_t *parent_ptr = NULL;
4486 ArmCorrelator *correlator = NULL;
4487 arm_correlator_t *correlator_ptr = NULL;
4488 ArmBuffer *buffer = NULL;
4489 arm_buffer4_t *buffer_ptr = NULL;
4490 int flags = ARM_FLAG_NONE;
4491
4492 /*
4493 * Supported calling signatures:
4494 * generate_correlator (app_handle, tran_id, parent=, flags=, buffers=)
4495 */
4496
4497 static char *kwlist[] = {"app_handle", "tran_id", "parent", "flags", "buffer", NULL};
4498
4499 if (!PyArg_ParseTupleAndKeywords(args, keywds, "OO|OiO:generate_correlator", kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
4500 &app_handle, &tran_id, &parent, &flags, &buffer))
4501 return NULL;
4502 if (!ArmHandle_Object_Check(app_handle))
when taking True path
when considering range: -0x80000000 <= value <= -1
taking False path
4503 return NULL;
4504 if (!ArmID_Object_Check(tran_id))
when taking True path
when considering range: -0x80000000 <= value <= -1
taking False path
4505 return NULL;
4506 if (buffer && ArmBuffer_Object_Check(buffer))
taking True path
when taking True path
4507 {
4508 prepare (buffer);
4509 buffer_ptr = &(buffer->arm_buffer);
4510 }
4511
4512 /* Set up our optional parameters */
4513 if (parent && ArmCorrelator_Object_Check (parent))
taking True path
when taking False path
when considering range: -0x80000000 <= value <= -1
taking True path
4514 parent_ptr = &(parent->arm_correlator);
4515 else
4516 parent_ptr = NULL;
4517
4518 correlator = newArmCorrelator (NULL);
when newArmCorrelator() fails
4519 correlator_ptr = &(correlator->arm_correlator);
dereferencing NULL (correlator->arm_correlator) at arm4module.c:4519
found 1 similar trace(s) to this
4520
4521 status = arm_generate_correlator(
4522 app_handle->arm_handle,
4523 &(tran_id->arm_id),
4524 parent_ptr,
4525 flags,
4526 buffer_ptr,
4527 correlator_ptr);
4528 if (GETSTATE0->enableExceptions && (status != ARM_SUCCESS))
4529 {
4530 set_arm_error (status, "arm_generate_correlator");
4531 return NULL;
4532 }
4533
4534 /* Return the correlator */
4535 return (PyObject *) correlator;
4536 }