Skip to content

Commit

Permalink
Issue python#22570: Renamed Py_SETREF to Py_XSETREF.
Browse files Browse the repository at this point in the history
  • Loading branch information
serhiy-storchaka committed Apr 6, 2016
1 parent 0e0563c commit 4884271
Show file tree
Hide file tree
Showing 37 changed files with 132 additions and 132 deletions.
4 changes: 2 additions & 2 deletions Include/object.h
Original file line number Diff line number Diff line change
Expand Up @@ -856,14 +856,14 @@ PyAPI_FUNC(void) _Py_Dealloc(PyObject *);
*
* The safe way is:
*
* Py_SETREF(op, op2);
* Py_XSETREF(op, op2);
*
* That arranges to set `op` to `op2` _before_ decref'ing, so that any code
* triggered as a side-effect of `op` getting torn down no longer believes
* `op` points to a valid object.
*/

#define Py_SETREF(op, op2) \
#define Py_XSETREF(op, op2) \
do { \
PyObject *_py_tmp = (PyObject *)(op); \
(op) = (op2); \
Expand Down
2 changes: 1 addition & 1 deletion Modules/_bz2module.c
Original file line number Diff line number Diff line change
Expand Up @@ -540,7 +540,7 @@ decompress(BZ2Decompressor *d, char *data, size_t len, Py_ssize_t max_length)
if (d->eof) {
d->needs_input = 0;
if (d->bzs_avail_in_real > 0) {
Py_SETREF(d->unused_data,
Py_XSETREF(d->unused_data,
PyBytes_FromStringAndSize(bzs->next_in, d->bzs_avail_in_real));
if (d->unused_data == NULL)
goto error;
Expand Down
4 changes: 2 additions & 2 deletions Modules/_csv.c
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ _set_str(const char *name, PyObject **target, PyObject *src, const char *dflt)
if (PyUnicode_READY(src) == -1)
return -1;
Py_INCREF(src);
Py_SETREF(*target, src);
Py_XSETREF(*target, src);
}
}
return 0;
Expand Down Expand Up @@ -783,7 +783,7 @@ parse_process_char(ReaderObj *self, Py_UCS4 c)
static int
parse_reset(ReaderObj *self)
{
Py_SETREF(self->fields, PyList_New(0));
Py_XSETREF(self->fields, PyList_New(0));
if (self->fields == NULL)
return -1;
self->field_len = 0;
Expand Down
28 changes: 14 additions & 14 deletions Modules/_ctypes/_ctypes.c
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,7 @@ StructUnionType_new(PyTypeObject *type, PyObject *args, PyObject *kwds, int isSt
Py_DECREF((PyObject *)dict);
return NULL;
}
Py_SETREF(result->tp_dict, (PyObject *)dict);
Py_XSETREF(result->tp_dict, (PyObject *)dict);
dict->format = _ctypes_alloc_format_string(NULL, "B");
if (dict->format == NULL) {
Py_DECREF(result);
Expand Down Expand Up @@ -870,7 +870,7 @@ PyCPointerType_SetProto(StgDictObject *stgdict, PyObject *proto)
return -1;
}
Py_INCREF(proto);
Py_SETREF(stgdict->proto, proto);
Py_XSETREF(stgdict->proto, proto);
return 0;
}

Expand Down Expand Up @@ -960,7 +960,7 @@ PyCPointerType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
Py_DECREF((PyObject *)stgdict);
return NULL;
}
Py_SETREF(result->tp_dict, (PyObject *)stgdict);
Py_XSETREF(result->tp_dict, (PyObject *)stgdict);

return (PyObject *)result;
}
Expand Down Expand Up @@ -1403,7 +1403,7 @@ PyCArrayType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
/* replace the class dict by our updated spam dict */
if (-1 == PyDict_Update((PyObject *)stgdict, result->tp_dict))
goto error;
Py_SETREF(result->tp_dict, (PyObject *)stgdict); /* steal the reference */
Py_XSETREF(result->tp_dict, (PyObject *)stgdict); /* steal the reference */
stgdict = NULL;

/* Special case for character arrays.
Expand Down Expand Up @@ -1816,7 +1816,7 @@ static PyObject *CreateSwappedType(PyTypeObject *type, PyObject *args, PyObject
Py_DECREF((PyObject *)stgdict);
return NULL;
}
Py_SETREF(result->tp_dict, (PyObject *)stgdict);
Py_XSETREF(result->tp_dict, (PyObject *)stgdict);

return (PyObject *)result;
}
Expand Down Expand Up @@ -1944,7 +1944,7 @@ PyCSimpleType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
Py_DECREF((PyObject *)stgdict);
return NULL;
}
Py_SETREF(result->tp_dict, (PyObject *)stgdict);
Py_XSETREF(result->tp_dict, (PyObject *)stgdict);

/* Install from_param class methods in ctypes base classes.
Overrides the PyCSimpleType_from_param generic method.
Expand Down Expand Up @@ -2307,7 +2307,7 @@ PyCFuncPtrType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
Py_DECREF((PyObject *)stgdict);
return NULL;
}
Py_SETREF(result->tp_dict, (PyObject *)stgdict);
Py_XSETREF(result->tp_dict, (PyObject *)stgdict);

if (-1 == make_funcptrtype_dict(stgdict)) {
Py_DECREF(result);
Expand Down Expand Up @@ -2451,7 +2451,7 @@ KeepRef(CDataObject *target, Py_ssize_t index, PyObject *keep)
return -1;
}
if (ob->b_objects == NULL || !PyDict_CheckExact(ob->b_objects)) {
Py_SETREF(ob->b_objects, keep); /* refcount consumed */
Py_XSETREF(ob->b_objects, keep); /* refcount consumed */
return 0;
}
key = unique_key(target, index);
Expand Down Expand Up @@ -2955,7 +2955,7 @@ PyCFuncPtr_set_errcheck(PyCFuncPtrObject *self, PyObject *ob)
return -1;
}
Py_XINCREF(ob);
Py_SETREF(self->errcheck, ob);
Py_XSETREF(self->errcheck, ob);
return 0;
}

Expand Down Expand Up @@ -2984,8 +2984,8 @@ PyCFuncPtr_set_restype(PyCFuncPtrObject *self, PyObject *ob)
return -1;
}
Py_INCREF(ob);
Py_SETREF(self->restype, ob);
Py_SETREF(self->checker, PyObject_GetAttrString(ob, "_check_retval_"));
Py_XSETREF(self->restype, ob);
Py_XSETREF(self->checker, PyObject_GetAttrString(ob, "_check_retval_"));
if (self->checker == NULL)
PyErr_Clear();
return 0;
Expand Down Expand Up @@ -3022,9 +3022,9 @@ PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob)
converters = converters_from_argtypes(ob);
if (!converters)
return -1;
Py_SETREF(self->converters, converters);
Py_XSETREF(self->converters, converters);
Py_INCREF(ob);
Py_SETREF(self->argtypes, ob);
Py_XSETREF(self->argtypes, ob);
}
return 0;
}
Expand Down Expand Up @@ -5152,7 +5152,7 @@ comerror_init(PyObject *self, PyObject *args, PyObject *kwds)

bself = (PyBaseExceptionObject *)self;
Py_INCREF(args);
Py_SETREF(bself->args, args);
Py_XSETREF(bself->args, args);

return 0;
}
Expand Down
2 changes: 1 addition & 1 deletion Modules/_curses_panel.c
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ PyCursesPanel_replace_panel(PyCursesPanelObject *self, PyObject *args)
return NULL;
}
Py_INCREF(temp);
Py_SETREF(po->wo, temp);
Py_XSETREF(po->wo, temp);
Py_INCREF(Py_None);
return Py_None;
}
Expand Down
22 changes: 11 additions & 11 deletions Modules/_elementtree.c
Original file line number Diff line number Diff line change
Expand Up @@ -936,7 +936,7 @@ element_setstate_from_attributes(ElementObject *self,
}

Py_INCREF(tag);
Py_SETREF(self->tag, tag);
Py_XSETREF(self->tag, tag);

_clear_joined_ptr(&self->text);
self->text = text ? JOIN_SET(text, PyList_CheckExact(text)) : Py_None;
Expand Down Expand Up @@ -980,7 +980,7 @@ element_setstate_from_attributes(ElementObject *self,
/* Stash attrib. */
if (attrib) {
Py_INCREF(attrib);
Py_SETREF(self->extra->attrib, attrib);
Py_XSETREF(self->extra->attrib, attrib);
}

Py_RETURN_NONE;
Expand Down Expand Up @@ -1943,7 +1943,7 @@ element_setattro(ElementObject* self, PyObject* nameobj, PyObject* value)

if (strcmp(name, "tag") == 0) {
Py_INCREF(value);
Py_SETREF(self->tag, value);
Py_XSETREF(self->tag, value);
} else if (strcmp(name, "text") == 0) {
Py_DECREF(JOIN_OBJ(self->text));
self->text = value;
Expand All @@ -1958,7 +1958,7 @@ element_setattro(ElementObject* self, PyObject* nameobj, PyObject* value)
return -1;
}
Py_INCREF(value);
Py_SETREF(self->extra->attrib, value);
Py_XSETREF(self->extra->attrib, value);
} else {
PyErr_SetString(PyExc_AttributeError,
"Can't set arbitrary attributes on Element");
Expand Down Expand Up @@ -2551,9 +2551,9 @@ treebuilder_handle_start(TreeBuilderObject* self, PyObject* tag,
self->index++;

Py_INCREF(node);
Py_SETREF(self->this, node);
Py_XSETREF(self->this, node);
Py_INCREF(node);
Py_SETREF(self->last, node);
Py_XSETREF(self->last, node);

if (treebuilder_append_event(self, self->start_event_obj, node) < 0)
goto error;
Expand Down Expand Up @@ -3604,7 +3604,7 @@ _elementtree_XMLParser__setevents_impl(XMLParserObject *self,
target = (TreeBuilderObject*) self->target;

Py_INCREF(events_queue);
Py_SETREF(target->events, events_queue);
Py_XSETREF(target->events, events_queue);

/* clear out existing events */
Py_CLEAR(target->start_event_obj);
Expand Down Expand Up @@ -3639,18 +3639,18 @@ _elementtree_XMLParser__setevents_impl(XMLParserObject *self,

Py_INCREF(event_name_obj);
if (strcmp(event_name, "start") == 0) {
Py_SETREF(target->start_event_obj, event_name_obj);
Py_XSETREF(target->start_event_obj, event_name_obj);
} else if (strcmp(event_name, "end") == 0) {
Py_SETREF(target->end_event_obj, event_name_obj);
Py_XSETREF(target->end_event_obj, event_name_obj);
} else if (strcmp(event_name, "start-ns") == 0) {
Py_SETREF(target->start_ns_event_obj, event_name_obj);
Py_XSETREF(target->start_ns_event_obj, event_name_obj);
EXPAT(SetNamespaceDeclHandler)(
self->parser,
(XML_StartNamespaceDeclHandler) expat_start_ns_handler,
(XML_EndNamespaceDeclHandler) expat_end_ns_handler
);
} else if (strcmp(event_name, "end-ns") == 0) {
Py_SETREF(target->end_ns_event_obj, event_name_obj);
Py_XSETREF(target->end_ns_event_obj, event_name_obj);
EXPAT(SetNamespaceDeclHandler)(
self->parser,
(XML_StartNamespaceDeclHandler) expat_start_ns_handler,
Expand Down
8 changes: 4 additions & 4 deletions Modules/_functoolsmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -294,10 +294,10 @@ partial_setstate(partialobject *pto, PyObject *state)
else
Py_INCREF(dict);

Py_SETREF(pto->fn, fn);
Py_SETREF(pto->args, fnargs);
Py_SETREF(pto->kw, kw);
Py_SETREF(pto->dict, dict);
Py_XSETREF(pto->fn, fn);
Py_XSETREF(pto->args, fnargs);
Py_XSETREF(pto->kw, kw);
Py_XSETREF(pto->dict, dict);
Py_RETURN_NONE;
}

Expand Down
8 changes: 4 additions & 4 deletions Modules/_io/bufferedio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1196,7 +1196,7 @@ _buffered_readline(buffered *self, Py_ssize_t limit)
Py_CLEAR(res);
goto end;
}
Py_SETREF(res, _PyBytes_Join(_PyIO_empty_bytes, chunks));
Py_XSETREF(res, _PyBytes_Join(_PyIO_empty_bytes, chunks));

end:
LEAVE_BUFFERED(self)
Expand Down Expand Up @@ -1452,7 +1452,7 @@ _io_BufferedReader___init___impl(buffered *self, PyObject *raw,
return -1;

Py_INCREF(raw);
Py_SETREF(self->raw, raw);
Py_XSETREF(self->raw, raw);
self->buffer_size = buffer_size;
self->readable = 1;
self->writable = 0;
Expand Down Expand Up @@ -1804,7 +1804,7 @@ _io_BufferedWriter___init___impl(buffered *self, PyObject *raw,
return -1;

Py_INCREF(raw);
Py_SETREF(self->raw, raw);
Py_XSETREF(self->raw, raw);
self->readable = 0;
self->writable = 1;

Expand Down Expand Up @@ -2307,7 +2307,7 @@ _io_BufferedRandom___init___impl(buffered *self, PyObject *raw,
return -1;

Py_INCREF(raw);
Py_SETREF(self->raw, raw);
Py_XSETREF(self->raw, raw);
self->buffer_size = buffer_size;
self->readable = 1;
self->writable = 1;
Expand Down
2 changes: 1 addition & 1 deletion Modules/_io/bytesio.c
Original file line number Diff line number Diff line change
Expand Up @@ -969,7 +969,7 @@ _io_BytesIO___init___impl(bytesio *self, PyObject *initvalue)
if (initvalue && initvalue != Py_None) {
if (PyBytes_CheckExact(initvalue)) {
Py_INCREF(initvalue);
Py_SETREF(self->buf, initvalue);
Py_XSETREF(self->buf, initvalue);
self->string_size = PyBytes_GET_SIZE(initvalue);
}
else {
Expand Down
8 changes: 4 additions & 4 deletions Modules/_io/textio.c
Original file line number Diff line number Diff line change
Expand Up @@ -995,7 +995,7 @@ _io_TextIOWrapper___init___impl(textio *self, PyObject *buffer,
"Oi", self->decoder, (int)self->readtranslate);
if (incrementalDecoder == NULL)
goto error;
Py_SETREF(self->decoder, incrementalDecoder);
Py_XSETREF(self->decoder, incrementalDecoder);
}
}

Expand Down Expand Up @@ -1373,7 +1373,7 @@ _io_TextIOWrapper_write_impl(textio *self, PyObject *text)
static void
textiowrapper_set_decoded_chars(textio *self, PyObject *chars)
{
Py_SETREF(self->decoded_chars, chars);
Py_XSETREF(self->decoded_chars, chars);
self->decoded_chars_used = 0;
}

Expand Down Expand Up @@ -1521,7 +1521,7 @@ textiowrapper_read_chunk(textio *self, Py_ssize_t size_hint)
dec_buffer = NULL; /* Reference lost to PyBytes_Concat */
goto fail;
}
Py_SETREF(self->snapshot, Py_BuildValue("NN", dec_flags, next_input));
Py_XSETREF(self->snapshot, Py_BuildValue("NN", dec_flags, next_input));
}
Py_DECREF(input_chunk);

Expand Down Expand Up @@ -1627,7 +1627,7 @@ _io_TextIOWrapper_read_impl(textio *self, Py_ssize_t n)
if (chunks != NULL) {
if (result != NULL && PyList_Append(chunks, result) < 0)
goto fail;
Py_SETREF(result, PyUnicode_Join(_PyIO_empty_str, chunks));
Py_XSETREF(result, PyUnicode_Join(_PyIO_empty_str, chunks));
if (result == NULL)
goto fail;
Py_CLEAR(chunks);
Expand Down
2 changes: 1 addition & 1 deletion Modules/_lzmamodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -1011,7 +1011,7 @@ decompress(Decompressor *d, uint8_t *data, size_t len, Py_ssize_t max_length)
if (d->eof) {
d->needs_input = 0;
if (lzs->avail_in > 0) {
Py_SETREF(d->unused_data,
Py_XSETREF(d->unused_data,
PyBytes_FromStringAndSize((char *)lzs->next_in, lzs->avail_in));
if (d->unused_data == NULL)
goto error;
Expand Down
4 changes: 2 additions & 2 deletions Modules/_pickle.c
Original file line number Diff line number Diff line change
Expand Up @@ -846,7 +846,7 @@ PyMemoTable_Set(PyMemoTable *self, PyObject *key, Py_ssize_t value)
static int
_Pickler_ClearBuffer(PicklerObject *self)
{
Py_SETREF(self->output_buffer,
Py_XSETREF(self->output_buffer,
PyBytes_FromStringAndSize(NULL, self->max_output_len));
if (self->output_buffer == NULL)
return -1;
Expand Down Expand Up @@ -3089,7 +3089,7 @@ fix_imports(PyObject **module_name, PyObject **global_name)
return -1;
}
Py_INCREF(item);
Py_SETREF(*module_name, item);
Py_XSETREF(*module_name, item);
}
else if (PyErr_Occurred()) {
return -1;
Expand Down
Loading

0 comments on commit 4884271

Please sign in to comment.