File: arm4module.c
Function: ArmSubbufferTranContext_set_context_value
Error: returning (PyObject*)NULL without setting an exception
1753 static PyObject *
1754 ArmSubbufferTranContext_set_context_value (ArmSubbufferTranContext *self, PyObject *args)
1755 {
1756 	int index;
1757 	const char *value_ptr;
1758 	int i;
1759 
1760 	/*
1761 	 * Supported calling signatures:
1762 	 *	set_property (index, value)
1763 	 */
1764 	if (!PyArg_ParseTuple(args, "is", &index, &value_ptr))
when PyArg_ParseTuple() succeeds
taking False path
1765 		return NULL;
1766 	if ((index < ARM_PROPERTY_MIN_ARRAY_INDEX) || (index > ARM_PROPERTY_MAX_ARRAY_INDEX))
when considering range: 20 <= value <= 0x7fffffff
taking True path
1767 		return NULL;
1768 
1769 	/* Allocate the property array as required */
1770 	if (self->arm_buffer.context_value_array == NULL)
1771 	{
1772 		self->arm_buffer.context_value_array = calloc (sizeof (arm_char_t *), ARM_PROPERTY_MAX_COUNT);
1773 		for (i = 0; i < ARM_PROPERTY_MAX_COUNT; i++)
1774 		{
1775 			self->arm_buffer.context_value_array [i] = NULL;
1776 		}
1777 	}
1778 
1779 	/* Prevent memory loss when overwriting a value */
1780 	ArmSubbufferTranContext_free_context_value (self, index);
1781 
1782 	/* Copy the values */
1783 	self->arm_buffer.context_value_array [index] = strndup (value_ptr, ARM_PROPERTY_VALUE_MAX_CHARS);
1784 
1785 	index++;
1786 	if (index > self->arm_buffer.context_value_count)
1787 		self->arm_buffer.context_value_count = index;
1788 
1789 	Py_INCREF(Py_None);
1790 	return Py_None;
1791 }
returning (PyObject*)NULL without setting an exception