return -1;
}
- Py_XINCREF(attrib);
- self->extra->attrib = attrib;
+ self->extra->attrib = Py_XNewRef(attrib);
self->extra->length = 0;
self->extra->allocated = STATIC_CHILDREN;
if (self == NULL)
return NULL;
self->extra = NULL;
-
- Py_INCREF(tag);
- self->tag = tag;
-
- Py_INCREF(Py_None);
- self->text = Py_None;
-
- Py_INCREF(Py_None);
- self->tail = Py_None;
-
+ self->tag = Py_NewRef(tag);
+ self->text = Py_NewRef(Py_None);
+ self->tail = Py_NewRef(Py_None);
self->weakreflist = NULL;
PyObject_GC_Track(self);
{
ElementObject *e = (ElementObject *)type->tp_alloc(type, 0);
if (e != NULL) {
- Py_INCREF(Py_None);
- e->tag = Py_None;
-
- Py_INCREF(Py_None);
- e->text = Py_None;
-
- Py_INCREF(Py_None);
- e->tail = Py_None;
-
+ e->tag = Py_NewRef(Py_None);
+ e->text = Py_NewRef(Py_None);
+ e->tail = Py_NewRef(Py_None);
e->extra = NULL;
e->weakreflist = NULL;
}
if (element_resize(self, 1) < 0)
return -1;
- Py_INCREF(element);
- self->extra->children[self->extra->length] = element;
+ self->extra->children[self->extra->length] = Py_NewRef(element);
self->extra->length++;
}
for (i = 0; i < self->extra->length; i++) {
- Py_INCREF(self->extra->children[i]);
- element->extra->children[i] = self->extra->children[i];
+ element->extra->children[i] = Py_NewRef(self->extra->children[i]);
}
assert(!element->extra->length);
/* Fast paths */
if (object == Py_None || PyUnicode_CheckExact(object)) {
- Py_INCREF(object);
- return object;
+ return Py_NewRef(object);
}
if (Py_REFCNT(object) == 1) {
}
if (self->extra && self->extra->attrib) {
- attrib = self->extra->attrib;
- Py_INCREF(attrib);
+ attrib = Py_NewRef(self->extra->attrib);
}
else {
attrib = PyDict_New();
dealloc_extra(oldextra);
return NULL;
}
- Py_INCREF(child);
- self->extra->children[i] = child;
+ self->extra->children[i] = Py_NewRef(child);
}
assert(!self->extra->length);
);
if (!self->extra) {
- Py_INCREF(default_value);
- return default_value;
+ return Py_NewRef(default_value);
}
for (i = 0; i < self->extra->length; i++) {
return NULL;
}
- Py_INCREF(default_value);
- return default_value;
+ return Py_NewRef(default_value);
}
/*[clinic input]
}
}
- Py_INCREF(default_value);
- return default_value;
+ return Py_NewRef(default_value);
}
static PyObject *
return NULL;
}
- Py_INCREF(self->extra->children[index]);
- return self->extra->children[index];
+ return Py_NewRef(self->extra->children[index]);
}
/*[clinic input]
for (i = self->extra->length; i > index; i--)
self->extra->children[i] = self->extra->children[i-1];
- Py_INCREF(subelement);
- self->extra->children[index] = subelement;
+ self->extra->children[index] = Py_NewRef(subelement);
self->extra->length++;
raise_type_error(item);
return -1;
}
- Py_INCREF(item);
- self->extra->children[index] = item;
+ self->extra->children[index] = Py_NewRef(item);
} else {
self->extra->length--;
for (i = index; i < self->extra->length; i++)
for (cur = start, i = 0; i < newlen;
cur += step, i++) {
PyObject* element = PySequence_Fast_GET_ITEM(seq, i);
- Py_INCREF(element);
- self->extra->children[cur] = element;
+ self->extra->children[cur] = Py_NewRef(element);
}
self->extra->length += newlen - slicelen;
element_tag_getter(ElementObject *self, void *closure)
{
PyObject *res = self->tag;
- Py_INCREF(res);
- return res;
+ return Py_NewRef(res);
}
static PyObject*
element_text_getter(ElementObject *self, void *closure)
{
PyObject *res = element_get_text(self);
- Py_XINCREF(res);
- return res;
+ return Py_XNewRef(res);
}
static PyObject*
element_tail_getter(ElementObject *self, void *closure)
{
PyObject *res = element_get_tail(self);
- Py_XINCREF(res);
- return res;
+ return Py_XNewRef(res);
}
static PyObject*
return NULL;
}
res = element_get_attrib(self);
- Py_XINCREF(res);
- return res;
+ return Py_XNewRef(res);
}
/* macro for setter validation */
it->parent_stack_size = new_size;
}
item = it->parent_stack + it->parent_stack_used++;
- Py_INCREF(parent);
- item->parent = parent;
+ item->parent = (ElementObject*)Py_NewRef(parent);
item->child_index = 0;
return 0;
}
if (!it)
return NULL;
- Py_INCREF(tag);
- it->sought_tag = tag;
+ it->sought_tag = Py_NewRef(tag);
it->gettext = gettext;
- Py_INCREF(self);
- it->root_element = self;
+ it->root_element = (ElementObject*)Py_NewRef(self);
it->parent_stack = PyMem_New(ParentLocator, INIT_PARENT_STACK_SIZE);
if (it->parent_stack == NULL) {
TreeBuilderObject *t = (TreeBuilderObject *)type->tp_alloc(type, 0);
if (t != NULL) {
t->root = NULL;
-
- Py_INCREF(Py_None);
- t->this = Py_None;
- Py_INCREF(Py_None);
- t->last = Py_None;
-
+ t->this = Py_NewRef(Py_None);
+ t->last = Py_NewRef(Py_None);
t->data = NULL;
t->element_factory = NULL;
t->comment_factory = NULL;
);
goto error;
}
- Py_INCREF(node);
- self->root = node;
+ self->root = Py_NewRef(node);
}
if (self->index < PyList_GET_SIZE(self->stack)) {
Py_RETURN_NONE;
}
/* store the first item as is */
- Py_INCREF(data); self->data = data;
+ self->data = Py_NewRef(data);
} else {
/* more than one item; use a list to collect items */
if (PyBytes_CheckExact(self->data) && Py_REFCNT(self->data) == 1 &&
}
item = self->last;
- self->last = self->this;
- Py_INCREF(self->last);
+ self->last = Py_NewRef(self->this);
Py_XSETREF(self->last_for_tail, self->last);
self->index--;
self->this = PyList_GET_ITEM(self->stack, self->index);
Py_XSETREF(self->last_for_tail, comment);
}
} else {
- Py_INCREF(text);
- comment = text;
+ comment = Py_NewRef(text);
}
if (self->events_append && self->comment_event_obj) {
else
res = Py_None;
- Py_INCREF(res);
- return res;
+ return Py_NewRef(res);
}
/*[clinic input]
size++;
} else {
/* plain name; use key as tag */
- Py_INCREF(key);
- tag = key;
+ tag = Py_NewRef(key);
}
/* decode universal name */
return;
}
} else {
- Py_INCREF(Py_None);
- sysid_obj = Py_None;
+ sysid_obj = Py_NewRef(Py_None);
}
if (pubid) {
return;
}
} else {
- Py_INCREF(Py_None);
- pubid_obj = Py_None;
+ pubid_obj = Py_NewRef(Py_None);
}
elementtreestate *st = ET_STATE_GLOBAL;
m = PyState_FindModule(&elementtreemodule);
if (m) {
- Py_INCREF(m);
- return m;
+ return Py_NewRef(m);
}
/* Initialize object types */