mirror of https://github.com/python/cpython.git
gh-97943: PyFunction_GetAnnotations should return a borrowed reference. (GH-97949)
(cherry picked from commit 6bfb0be804
)
Co-authored-by: larryhastings <larry@hastings.org>
This commit is contained in:
parent
4aa2ebc01e
commit
33cf0a604c
|
@ -0,0 +1,2 @@
|
||||||
|
Bugfix: :func:`PyFunction_GetAnnotations` should return a borrowed
|
||||||
|
reference. It was returning a new reference.
|
|
@ -300,7 +300,6 @@ func_get_annotation_dict(PyFunctionObject *op)
|
||||||
}
|
}
|
||||||
Py_SETREF(op->func_annotations, ann_dict);
|
Py_SETREF(op->func_annotations, ann_dict);
|
||||||
}
|
}
|
||||||
Py_INCREF(op->func_annotations);
|
|
||||||
assert(PyDict_Check(op->func_annotations));
|
assert(PyDict_Check(op->func_annotations));
|
||||||
return op->func_annotations;
|
return op->func_annotations;
|
||||||
}
|
}
|
||||||
|
@ -532,7 +531,11 @@ func_get_annotations(PyFunctionObject *op, void *Py_UNUSED(ignored))
|
||||||
if (op->func_annotations == NULL)
|
if (op->func_annotations == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
return func_get_annotation_dict(op);
|
PyObject *d = func_get_annotation_dict(op);
|
||||||
|
if (d) {
|
||||||
|
Py_INCREF(d);
|
||||||
|
}
|
||||||
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|
Loading…
Reference in New Issue