Skip to content

Commit b367f26

Browse files
[mypyc] Add incref in CPyDict_SetDefault (#10334)
Closes mypyc/mypyc#831.
1 parent 2ac722a commit b367f26

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

mypyc/lib-rt/dict_ops.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,9 @@ PyObject *CPyDict_GetWithNone(PyObject *dict, PyObject *key) {
6969

7070
PyObject *CPyDict_SetDefault(PyObject *dict, PyObject *key, PyObject *value) {
7171
if (PyDict_CheckExact(dict)){
72-
return PyDict_SetDefault(dict, key, value);
72+
PyObject* ret = PyDict_SetDefault(dict, key, value);
73+
Py_XINCREF(ret);
74+
return ret;
7375
}
7476
return PyObject_CallMethod(dict, "setdefault", "(OO)", key, value);
7577
}

mypyc/primitives/dict_ops.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@
124124
arg_types=[dict_rprimitive, object_rprimitive, object_rprimitive],
125125
return_type=object_rprimitive,
126126
c_function_name='CPyDict_SetDefault',
127-
is_borrowed=True,
128127
error_kind=ERR_MAGIC)
129128

130129
# dict.setdefault(key)

0 commit comments

Comments
 (0)