diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2023-06-05 16:06:43 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-05 16:06:43 (GMT) |
commit | f12502b2b337cf0e05f0685f3864a117db9885e3 (patch) | |
tree | 70c25dc13e01d80220a730f8012f01eb20476b1e | |
parent | 6cae23662e091fa528ebddeac89a88f3a8ed34c7 (diff) | |
download | cpython-f12502b2b337cf0e05f0685f3864a117db9885e3.zip cpython-f12502b2b337cf0e05f0685f3864a117db9885e3.tar.gz cpython-f12502b2b337cf0e05f0685f3864a117db9885e3.tar.bz2 |
[3.10] gh-105184: document that marshal functions can fail and need to be checked with PyErr_Occurred (GH-105185) (#105220)
(cherry picked from commit ee26ca13a129da8cf549409d0a1b2e892ff2b4ec)
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
-rw-r--r-- | Doc/c-api/marshal.rst | 4 | ||||
-rw-r--r-- | Python/marshal.c | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/Doc/c-api/marshal.rst b/Doc/c-api/marshal.rst index 8e25968..489f158 100644 --- a/Doc/c-api/marshal.rst +++ b/Doc/c-api/marshal.rst @@ -25,12 +25,16 @@ unmarshalling. Version 2 uses a binary format for floating point numbers. the least-significant 32 bits of *value*; regardless of the size of the native :c:expr:`long` type. *version* indicates the file format. + This function can fail, in which case it sets the error indicator. + Use :c:func:`PyErr_Occurred` to check for that. .. c:function:: void PyMarshal_WriteObjectToFile(PyObject *value, FILE *file, int version) Marshal a Python object, *value*, to *file*. *version* indicates the file format. + This function can fail, in which case it sets the error indicator. + Use :c:func:`PyErr_Occurred` to check for that. .. c:function:: PyObject* PyMarshal_WriteObjectToString(PyObject *value, int version) diff --git a/Python/marshal.c b/Python/marshal.c index 4125240..67540e0 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -576,6 +576,10 @@ w_clear_refs(WFILE *wf) } /* version currently has no effect for writing ints. */ +/* Note that while the documentation states that this function + * can error, currently it never does. Setting an exception in + * this function should be regarded as an API-breaking change. + */ void PyMarshal_WriteLongToFile(long x, FILE *fp, int version) { |