summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2023-06-02 01:24:25 -0700
committerGitHub <noreply@github.com>2023-06-02 08:24:25 +0000
commit46cc4f0f76a9f6966aee76d74f8db9a2f43fa8a6 (patch)
tree147faac545161e58bd8d4713acab2a68173c3a81
parent[3.12] gh-104799: Default missing lists in AST to the empty list (GH-104834) ... (diff)
downloadcpython-46cc4f0f76a9f6966aee76d74f8db9a2f43fa8a6.tar.gz
cpython-46cc4f0f76a9f6966aee76d74f8db9a2f43fa8a6.tar.bz2
cpython-46cc4f0f76a9f6966aee76d74f8db9a2f43fa8a6.zip
[3.12] gh-105184: document that marshal functions can fail and need to be checked with PyErr_Occurred (GH-105185) (#105218)
gh-105184: document that marshal functions can fail and need to be checked with PyErr_Occurred (GH-105185) (cherry picked from commit ee26ca13a129da8cf549409d0a1b2e892ff2b4ec) Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
-rw-r--r--Doc/c-api/marshal.rst4
-rw-r--r--Python/marshal.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/Doc/c-api/marshal.rst b/Doc/c-api/marshal.rst
index 8e25968c690..489f1580a41 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 208996b05fc..6439503d2c6 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -625,6 +625,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)
{