| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent fb5db7e commit b510e10
11 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -492,9 +492,10 @@ StructUnionType_new(PyTypeObject *type, PyObject *args, PyObject *kwds, int isSt | |||
| 492 | 492 | return NULL; | |
| 493 | 493 | ||
| 494 | 494 | /* keep this for bw compatibility */ | |
| 495 | - if (_PyDict_GetItemIdWithError(result->tp_dict, &PyId__abstract_)) | ||
| 495 | + int r = _PyDict_ContainsId(result->tp_dict, &PyId__abstract_); | ||
| 496 | + if (r > 0) | ||
| 496 | 497 | return (PyObject *)result; | |
| 497 | - if (PyErr_Occurred()) { | ||
| 498 | + if (r < 0) { | ||
| 498 | 499 | Py_DECREF(result); | |
| 499 | 500 | return NULL; | |
| 500 | 501 | } | |
@@ -4397,15 +4398,13 @@ _init_pos_args(PyObject *self, PyTypeObject *type, | |||
| 4397 | 4398 | } | |
| 4398 | 4399 | val = PyTuple_GET_ITEM(args, i + index); | |
| 4399 | 4400 | if (kwds) { | |
| 4400 | - if (PyDict_GetItemWithError(kwds, name)) { | ||
| 4401 | - PyErr_Format(PyExc_TypeError, | ||
| 4402 | - "duplicate values for field %R", | ||
| 4403 | - name); | ||
| 4404 | - Py_DECREF(pair); | ||
| 4405 | - Py_DECREF(name); | ||
| 4406 | - return -1; | ||
| 4407 | - } | ||
| 4408 | - else if (PyErr_Occurred()) { | ||
| 4401 | + res = PyDict_Contains(kwds, name); | ||
| 4402 | + if (res != 0) { | ||
| 4403 | + if (res > 0) { | ||
| 4404 | + PyErr_Format(PyExc_TypeError, | ||
| 4405 | + "duplicate values for field %R", | ||
| 4406 | + name); | ||
| 4407 | + } | ||
| 4409 | 4408 | Py_DECREF(pair); | |
| 4410 | 4409 | Py_DECREF(name); | |
| 4411 | 4410 | return -1; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -109,8 +109,9 @@ TryAddRef(StgDictObject *dict, CDataObject *obj) | |||
| 109 | 109 | IUnknown *punk; | |
| 110 | 110 | _Py_IDENTIFIER(_needs_com_addref_); | |
| 111 | 111 | ||
| 112 | - if (!_PyDict_GetItemIdWithError((PyObject *)dict, &PyId__needs_com_addref_)) { | ||
| 113 | - if (PyErr_Occurred()) { | ||
| 112 | + int r = _PyDict_ContainsId((PyObject *)dict, &PyId__needs_com_addref_); | ||
| 113 | + if (r <= 0) { | ||
| 114 | + if (r < 0) { | ||
| 114 | 115 | PrintError("getting _needs_com_addref_"); | |
| 115 | 116 | } | |
| 116 | 117 | return; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -2004,26 +2004,21 @@ fast_save_enter(PicklerObject *self, PyObject *obj) | |||
| 2004 | 2004 | self->fast_nesting = -1; | |
| 2005 | 2005 | return 0; | |
| 2006 | 2006 | } | |
| 2007 | - if (PyDict_GetItemWithError(self->fast_memo, key)) { | ||
| 2008 | - Py_DECREF(key); | ||
| 2007 | + int r = PyDict_Contains(self->fast_memo, key); | ||
| 2008 | + if (r > 0) { | ||
| 2009 | 2009 | PyErr_Format(PyExc_ValueError, | |
| 2010 | 2010 | "fast mode: can't pickle cyclic objects " | |
| 2011 | 2011 | "including object type %.200s at %p", | |
| 2012 | 2012 | Py_TYPE(obj)->tp_name, obj); | |
| 2013 | - self->fast_nesting = -1; | ||
| 2014 | - return 0; | ||
| 2015 | 2013 | } | |
| 2016 | - if (PyErr_Occurred()) { | ||
| 2017 | - Py_DECREF(key); | ||
| 2018 | - self->fast_nesting = -1; | ||
| 2019 | - return 0; | ||
| 2014 | + else if (r == 0) { | ||
| 2015 | + r = PyDict_SetItem(self->fast_memo, key, Py_None); | ||
| 2020 | 2016 | } | |
| 2021 | - if (PyDict_SetItem(self->fast_memo, key, Py_None) < 0) { | ||
| 2022 | - Py_DECREF(key); | ||
| 2017 | + Py_DECREF(key); | ||
| 2018 | + if (r != 0) { | ||
| 2023 | 2019 | self->fast_nesting = -1; | |
| 2024 | 2020 | return 0; | |
| 2025 | 2021 | } | |
| 2026 | - Py_DECREF(key); | ||
| 2027 | 2022 | } | |
| 2028 | 2023 | return 1; | |
| 2029 | 2024 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1526,13 +1526,11 @@ convertenviron(void) | |||
| 1526 | 1526 | Py_DECREF(d); | |
| 1527 | 1527 | return NULL; | |
| 1528 | 1528 | } | |
| 1529 | - if (PyDict_GetItemWithError(d, k) == NULL) { | ||
| 1530 | - if (PyErr_Occurred() || PyDict_SetItem(d, k, v) != 0) { | ||
| 1531 | - Py_DECREF(v); | ||
| 1532 | - Py_DECREF(k); | ||
| 1533 | - Py_DECREF(d); | ||
| 1534 | - return NULL; | ||
| 1535 | - } | ||
| 1529 | + if (PyDict_SetDefault(d, k, v) == NULL) { | ||
| 1530 | + Py_DECREF(v); | ||
| 1531 | + Py_DECREF(k); | ||
| 1532 | + Py_DECREF(d); | ||
| 1533 | + return NULL; | ||
| 1536 | 1534 | } | |
| 1537 | 1535 | Py_DECREF(k); | |
| 1538 | 1536 | Py_DECREF(v); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1614,15 +1614,7 @@ static int init_handler_descrs(void) | |||
| 1614 | 1614 | if (descr == NULL) | |
| 1615 | 1615 | return -1; | |
| 1616 | 1616 | ||
| 1617 | - if (PyDict_GetItemWithError(Xmlparsetype.tp_dict, PyDescr_NAME(descr))) { | ||
| 1618 | - Py_DECREF(descr); | ||
| 1619 | - continue; | ||
| 1620 | - } | ||
| 1621 | - else if (PyErr_Occurred()) { | ||
| 1622 | - Py_DECREF(descr); | ||
| 1623 | - return -1; | ||
| 1624 | - } | ||
| 1625 | - if (PyDict_SetItem(Xmlparsetype.tp_dict, PyDescr_NAME(descr), descr) < 0) { | ||
| 1617 | + if (PyDict_SetDefault(Xmlparsetype.tp_dict, PyDescr_NAME(descr), descr) == NULL) { | ||
| 1626 | 1618 | Py_DECREF(descr); | |
| 1627 | 1619 | return -1; | |
| 1628 | 1620 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -499,11 +499,14 @@ select_poll_modify_impl(pollObject *self, int fd, unsigned short eventmask) | |||
| 499 | 499 | key = PyLong_FromLong(fd); | |
| 500 | 500 | if (key == NULL) | |
| 501 | 501 | return NULL; | |
| 502 | - if (PyDict_GetItemWithError(self->dict, key) == NULL) { | ||
| 503 | - if (!PyErr_Occurred()) { | ||
| 504 | - errno = ENOENT; | ||
| 505 | - PyErr_SetFromErrno(PyExc_OSError); | ||
| 506 | - } | ||
| 502 | + err = PyDict_Contains(self->dict, key); | ||
| 503 | + if (err < 0) { | ||
| 504 | + Py_DECREF(key); | ||
| 505 | + return NULL; | ||
| 506 | + } | ||
| 507 | + if (err == 0) { | ||
| 508 | + errno = ENOENT; | ||
| 509 | + PyErr_SetFromErrno(PyExc_OSError); | ||
| 507 | 510 | Py_DECREF(key); | |
| 508 | 511 | return NULL; | |
| 509 | 512 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -2544,8 +2544,8 @@ PyDict_MergeFromSeq2(PyObject *d, PyObject *seq2, int override) | |||
| 2544 | 2544 | goto Fail; | |
| 2545 | 2545 | } | |
| 2546 | 2546 | } | |
| 2547 | - else if (PyDict_GetItemWithError(d, key) == NULL) { | ||
| 2548 | - if (PyErr_Occurred() || PyDict_SetItem(d, key, value) < 0) { | ||
| 2547 | + else { | ||
| 2548 | + if (PyDict_SetDefault(d, key, value) == NULL) { | ||
| 2549 | 2549 | Py_DECREF(key); | |
| 2550 | 2550 | Py_DECREF(value); | |
| 2551 | 2551 | goto Fail; | |
@@ -2660,19 +2660,20 @@ dict_merge(PyObject *a, PyObject *b, int override) | |||
| 2660 | 2660 | Py_INCREF(value); | |
| 2661 | 2661 | if (override == 1) | |
| 2662 | 2662 | err = insertdict(mp, key, hash, value); | |
| 2663 | - else if (_PyDict_GetItem_KnownHash(a, key, hash) == NULL) { | ||
| 2664 | - if (PyErr_Occurred()) { | ||
| 2665 | - Py_DECREF(value); | ||
| 2666 | - Py_DECREF(key); | ||
| 2667 | - return -1; | ||
| 2663 | + else { | ||
| 2664 | + err = _PyDict_Contains_KnownHash(a, key, hash); | ||
| 2665 | + if (err == 0) { | ||
| 2666 | + err = insertdict(mp, key, hash, value); | ||
| 2667 | + } | ||
| 2668 | + else if (err > 0) { | ||
| 2669 | + if (override != 0) { | ||
| 2670 | + _PyErr_SetKeyError(key); | ||
| 2671 | + Py_DECREF(value); | ||
| 2672 | + Py_DECREF(key); | ||
| 2673 | + return -1; | ||
| 2674 | + } | ||
| 2675 | + err = 0; | ||
| 2668 | 2676 | } | |
| 2669 | - err = insertdict(mp, key, hash, value); | ||
| 2670 | - } | ||
| 2671 | - else if (override != 0) { | ||
| 2672 | - _PyErr_SetKeyError(key); | ||
| 2673 | - Py_DECREF(value); | ||
| 2674 | - Py_DECREF(key); | ||
| 2675 | - return -1; | ||
| 2676 | 2677 | } | |
| 2677 | 2678 | Py_DECREF(value); | |
| 2678 | 2679 | Py_DECREF(key); | |
@@ -2709,17 +2710,15 @@ dict_merge(PyObject *a, PyObject *b, int override) | |||
| 2709 | 2710 | ||
| 2710 | 2711 | for (key = PyIter_Next(iter); key; key = PyIter_Next(iter)) { | |
| 2711 | 2712 | if (override != 1) { | |
| 2712 | - if (PyDict_GetItemWithError(a, key) != NULL) { | ||
| 2713 | - if (override != 0) { | ||
| 2713 | + status = PyDict_Contains(a, key); | ||
| 2714 | + if (status != 0) { | ||
| 2715 | + if (status > 0) { | ||
| 2716 | + if (override == 0) { | ||
| 2717 | + Py_DECREF(key); | ||
| 2718 | + continue; | ||
| 2719 | + } | ||
| 2714 | 2720 | _PyErr_SetKeyError(key); | |
| 2715 | - Py_DECREF(key); | ||
| 2716 | - Py_DECREF(iter); | ||
| 2717 | - return -1; | ||
| 2718 | 2721 | } | |
| 2719 | - Py_DECREF(key); | ||
| 2720 | - continue; | ||
| 2721 | - } | ||
| 2722 | - else if (PyErr_Occurred()) { | ||
| 2723 | 2722 | Py_DECREF(key); | |
| 2724 | 2723 | Py_DECREF(iter); | |
| 2725 | 2724 | return -1; | |
| Back | FazBrowse Home | New Git URL |
0 commit comments