• Home
  • Raw
  • Download

Lines Matching full:extra

63 /* An element can hold this many children without extra memory
260 ElementObjectExtra* extra; member
274 self->extra = PyObject_Malloc(sizeof(ElementObjectExtra)); in element_new_extra()
275 if (!self->extra) in element_new_extra()
282 self->extra->attrib = attrib; in element_new_extra()
284 self->extra->length = 0; in element_new_extra()
285 self->extra->allocated = STATIC_CHILDREN; in element_new_extra()
286 self->extra->children = self->extra->_children; in element_new_extra()
296 Py_DECREF(self->extra->attrib); in element_dealloc_extra()
298 for (i = 0; i < self->extra->length; i++) in element_dealloc_extra()
299 Py_DECREF(self->extra->children[i]); in element_dealloc_extra()
301 if (self->extra->children != self->extra->_children) in element_dealloc_extra()
302 PyObject_Free(self->extra->children); in element_dealloc_extra()
304 PyObject_Free(self->extra); in element_dealloc_extra()
320 self->extra = NULL; in element_new()
329 self->extra->length = 0; in element_new()
330 self->extra->allocated = STATIC_CHILDREN; in element_new()
331 self->extra->children = self->extra->_children; in element_new()
350 element_resize(ElementObject* self, Py_ssize_t extra) in element_resize() argument
355 /* make sure self->children can hold the given number of extra in element_resize()
358 if (!self->extra) in element_resize()
361 size = self->extra->length + extra; in element_resize()
363 if (size > self->extra->allocated) { in element_resize()
379 if (self->extra->children != self->extra->_children) { in element_resize()
384 children = PyObject_Realloc(self->extra->children, in element_resize()
393 memcpy(children, self->extra->children, in element_resize()
394 self->extra->length * sizeof(PyObject*)); in element_resize()
396 self->extra->children = children; in element_resize()
397 self->extra->allocated = size; in element_resize()
416 self->extra->children[self->extra->length] = element; in element_add_subelement()
418 self->extra->length++; in element_add_subelement()
427 /* note: this function assumes that the extra section exists */ in element_get_attrib()
429 PyObject* res = self->extra->attrib; in element_get_attrib()
437 self->extra->attrib = res; in element_get_attrib()
556 if (self->extra) in element_dealloc()
591 if (self->extra) { in element_clear()
593 self->extra = NULL; in element_clear()
615 self->tag, (self->extra) ? self->extra->attrib : Py_None in element_copy()
626 if (self->extra) { in element_copy()
628 if (element_resize(element, self->extra->length) < 0) { in element_copy()
633 for (i = 0; i < self->extra->length; i++) { in element_copy()
634 Py_INCREF(self->extra->children[i]); in element_copy()
635 element->extra->children[i] = self->extra->children[i]; in element_copy()
638 element->extra->length = self->extra->length; in element_copy()
664 if (self->extra) { in element_deepcopy()
665 attrib = deepcopy(self->extra->attrib, memo); in element_deepcopy()
693 if (self->extra) { in element_deepcopy()
695 if (element_resize(element, self->extra->length) < 0) in element_deepcopy()
698 for (i = 0; i < self->extra->length; i++) { in element_deepcopy()
699 PyObject* child = deepcopy(self->extra->children[i], memo); in element_deepcopy()
701 element->extra->length = i; in element_deepcopy()
704 element->extra->children[i] = child; in element_deepcopy()
707 element->extra->length = self->extra->length; in element_deepcopy()
818 if (!self->extra) in element_find()
821 for (i = 0; i < self->extra->length; i++) { in element_find()
822 PyObject* item = self->extra->children[i]; in element_find()
854 if (!self->extra) { in element_findtext()
859 for (i = 0; i < self->extra->length; i++) { in element_findtext()
860 ElementObject* item = (ElementObject*) self->extra->children[i]; in element_findtext()
905 if (!self->extra) in element_findall()
908 for (i = 0; i < self->extra->length; i++) { in element_findall()
909 PyObject* item = self->extra->children[i]; in element_findall()
950 if (!self->extra || self->extra->attrib == Py_None) in element_get()
953 value = PyDict_GetItem(self->extra->attrib, key); in element_get()
977 if (!self->extra) in element_getchildren()
980 list = PyList_New(self->extra->length); in element_getchildren()
984 for (i = 0; i < self->extra->length; i++) { in element_getchildren()
985 PyObject* item = self->extra->children[i]; in element_getchildren()
1084 if (!self->extra || index < 0 || index >= self->extra->length) { in element_getitem()
1092 Py_INCREF(self->extra->children[index]); in element_getitem()
1093 return self->extra->children[index]; in element_getitem()
1107 if (!self->extra) in element_insert()
1111 index += self->extra->length; in element_insert()
1115 if (index > self->extra->length) in element_insert()
1116 index = self->extra->length; in element_insert()
1121 for (i = self->extra->length; i > index; i--) in element_insert()
1122 self->extra->children[i] = self->extra->children[i-1]; in element_insert()
1125 self->extra->children[index] = element; in element_insert()
1127 self->extra->length++; in element_insert()
1138 if (!self->extra || self->extra->attrib == Py_None) in element_items()
1141 return PyDict_Items(self->extra->attrib); in element_items()
1150 if (!self->extra || self->extra->attrib == Py_None) in element_keys()
1153 return PyDict_Keys(self->extra->attrib); in element_keys()
1159 if (!self->extra) in element_length()
1162 return self->extra->length; in element_length()
1222 if (!self->extra) { in element_remove()
1231 for (i = 0; i < self->extra->length; i++) { in element_remove()
1232 if (self->extra->children[i] == element) in element_remove()
1234 rc = PyObject_Compare(self->extra->children[i], element); in element_remove()
1241 if (i >= self->extra->length) { in element_remove()
1250 found = self->extra->children[i]; in element_remove()
1252 self->extra->length--; in element_remove()
1253 for (; i < self->extra->length; i++) in element_remove()
1254 self->extra->children[i] = self->extra->children[i+1]; in element_remove()
1300 if (!self->extra) in element_set()
1320 if (!self->extra || index_ < 0 || index_ >= self->extra->length) { in element_setitem()
1328 old = self->extra->children[index]; in element_setitem()
1332 self->extra->children[index] = item; in element_setitem()
1334 self->extra->length--; in element_setitem()
1335 for (i = index; i < self->extra->length; i++) in element_setitem()
1336 self->extra->children[i] = self->extra->children[i+1]; in element_setitem()
1360 if (i < 0 && self->extra)
1361 i += self->extra->length;
1368 if (!self->extra)
1374 slicelen = _PySlice_AdjustIndices(self->extra->length, &start, &stop,
1386 PyObject* item = self->extra->children[cur];
1417 if (i < 0 && self->extra)
1418 i += self->extra->length;
1427 if (!self->extra)
1433 slicelen = _PySlice_AdjustIndices(self->extra->length, &start, &stop,
1435 assert(slicelen <= self->extra->length);
1476 assert(newlen - slicelen <= INT_MAX - self->extra->length);
1477 assert(newlen - slicelen >= -self->extra->length);
1490 PyList_SET_ITEM(recycle, i, self->extra->children[cur]);
1495 for (i = stop; i < self->extra->length; i++)
1496 self->extra->children[i + newlen - slicelen] = self->extra->children[i];
1499 for (i = self->extra->length-1; i >= stop; i--)
1500 self->extra->children[i + newlen - slicelen] = self->extra->children[i];
1508 self->extra->children[cur] = element;
1511 self->extra->length += (int)(newlen - slicelen);
1600 if (!self->extra)
1636 if (!self->extra)
1639 Py_SETREF(self->extra->attrib, value);