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