1169 static PyObject *
1170 ArmSubbufferAppContext_set_context_value (ArmSubbufferAppContext *self, PyObject *args)
1171 {
1172 int index;
1173 const char *value_ptr;
1174 int i;
1175
1176 /*
1177 * Supported calling signatures:
1178 * set_context_value (index, value)
1179 */
1180 if (!PyArg_ParseTuple(args, "is", &index, &value_ptr))
when PyArg_ParseTuple() succeeds
taking False path
1181 return NULL;
1182 if ((index < ARM_PROPERTY_MIN_ARRAY_INDEX) || (index > ARM_PROPERTY_MAX_ARRAY_INDEX))
when considering range: 20 <= value <= 0x7fffffff
taking True path
1183 return NULL;
1184
1185 /* Allocate the property array as required */
1186 if (self->arm_buffer.context_value_array == NULL)
1187 {
1188 self->arm_buffer.context_value_array = calloc (sizeof (arm_char_t *), ARM_PROPERTY_MAX_COUNT);
1189 for (i = 0; i < ARM_PROPERTY_MAX_COUNT; i++)
1190 {
1191 self->arm_buffer.context_value_array [i] = NULL;
1192 }
1193 }
1194
1195 /* Prevent memory loss when overwriting a value */
1196 ArmSubbufferAppContext_free_context_value (self, index);
1197
1198 /* Copy the value */
1199 self->arm_buffer.context_value_array [index] = strndup (value_ptr, ARM_PROPERTY_VALUE_MAX_CHARS);
1200
1201 index++;
1202 if (index > self->arm_buffer.context_value_count)
1203 self->arm_buffer.context_value_count = index;
1204
1205 Py_INCREF(Py_None);
1206 return Py_None;
1207 }
returning (PyObject*)NULL without setting an exception