Browse Source
[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 ee26ca13a1
)
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
pull/105329/head
Miss Islington (bot)
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
8 additions and
0 deletions
-
Doc/c-api/marshal.rst
-
Python/marshal.c
|
|
@ -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) |
|
|
|
|
|
|
|
|
|
@ -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) |
|
|
|
{ |
|
|
|