summaryrefslogtreecommitdiff
path: root/Python/marshal.c
Commit message (Collapse)AuthorAgeFilesLines
* closes bpo-39605: Fix some casts to not cast away const. (GH-18453)Andy Lester2020-02-111-1/+1
| | | | | | | | | | | | | | | gcc -Wcast-qual turns up a number of instances of casting away constness of pointers. Some of these can be safely modified, by either: Adding the const to the type cast, as in: - return _PyUnicode_FromUCS1((unsigned char*)s, size); + return _PyUnicode_FromUCS1((const unsigned char*)s, size); or, Removing the cast entirely, because it's not necessary (but probably was at one time), as in: - PyDTrace_FUNCTION_ENTRY((char *)filename, (char *)funcname, lineno); + PyDTrace_FUNCTION_ENTRY(filename, funcname, lineno); These changes will not change code, but they will make it much easier to check for errors in consts
* bpo-39573: Use Py_SET_SIZE() function (GH-18402)Victor Stinner2020-02-071-1/+1
| | | | Replace direct acccess to PyVarObject.ob_size with usage of the Py_SET_SIZE() function.
* bpo-39573: Use Py_TYPE() macro in Python and Include directories (GH-18391)Victor Stinner2020-02-071-1/+1
| | | Replace direct access to PyObject.ob_type with Py_TYPE().
* bpo-38823: Fix refleak in marshal init error path (GH-17260)Brandt Bucher2019-11-201-1/+4
|
* bpo-37547: add _PyObject_CallMethodOneArg (GH-14685)Jeroen Demeyer2019-07-111-1/+1
|
* bpo-37221: Add PyCode_NewWithPosOnlyArgs to be used internally and set ↵Pablo Galindo2019-07-011-1/+1
| | | | | | PyCode_New as a compatibility wrapper (GH-13959) Add PyCode_NewEx to be used internally and set PyCode_New as a compatibility wrapper
* bpo-36540: PEP 570 -- Implementation (GH-12701)Pablo Galindo2019-04-291-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit contains the implementation of PEP570: Python positional-only parameters. * Update Grammar/Grammar with new typedarglist and varargslist * Regenerate grammar files * Update and regenerate AST related files * Update code object * Update marshal.c * Update compiler and symtable * Regenerate importlib files * Update callable objects * Implement positional-only args logic in ceval.c * Regenerate frozen data * Update standard library to account for positional-only args * Add test file for positional-only args * Update other test files to account for positional-only args * Add News entry * Update inspect module and related tests
* bpo-35436: Add missing PyErr_NoMemory() calls and other minor bug fixes. ↵Zackery Spytz2018-12-071-2/+3
| | | | | | (GH-11015) Set MemoryError when appropriate, add missing failure checks, and fix some potential leaks.
* bpo-33720: Refactor marshalling/unmarshalling floats. (GH-8071)Serhiy Storchaka2018-07-241-109/+72
|
* bpo-33720: Reduces maximum marshal recursion depth on release builds. (GH-7401)Steve Dower2018-06-041-1/+7
|
* bpo-32011: Revert "Issue #15480: Remove the deprecated and unused TYPE_INT64 ↵Serhiy Storchaka2017-11-151-0/+21
| | | | | | | code from marshal." (#4381) Simplify the reverted code. This reverts commit e9bbe8b87ba2874efba0474af5cc7d5941dbf742.
* remove current_filename optimization from marshal (#3423) (closes bpo-31384)Benjamin Peterson2017-09-071-19/+0
|
* bpo-30923: Silence fall-through warnings included in -Wextra since gcc-7.0. ↵Stefan Krah2017-08-211-0/+3
| | | | (#3157)
* bpo-20185: Convert the marshal module to Argument Clinic. (#541)Serhiy Storchaka2017-03-121-67/+84
| | | Based on patch by Vajrasky Kok.
* bpo-29746: Update marshal docs to Python 3. (#547)Serhiy Storchaka2017-03-121-14/+12
|
* Use _PyObject_CallMethodIdObjArgs()Victor Stinner2016-12-091-1/+1
| | | | | | | | | Issue #28915: Replace _PyObject_CallMethodId() with _PyObject_CallMethodIdObjArgs() in various modules when the format string was only made of "O" formats, PyObject* arguments. _PyObject_CallMethodIdObjArgs() avoids the creation of a temporary tuple and doesn't have to parse a format string.
* Replace PyObject_CallFunction() with fastcallVictor Stinner2016-12-011-1/+1
| | | | | | | | | | | | | | | | | Replace PyObject_CallFunction(func, "O", arg) and PyObject_CallFunction(func, "O", arg, NULL) with _PyObject_CallArg1(func, arg) Replace PyObject_CallFunction(func, NULL) with _PyObject_CallNoArg(func) _PyObject_CallNoArg() and _PyObject_CallArg1() are simpler and don't allocate memory on the C stack.
* Issue #28126: Replace Py_MEMCPY with memcpy(). Visual Studio can properly ↵Christian Heimes2016-09-131-2/+2
| | | | optimize memcpy().
* Cleanup hashtable.hVictor Stinner2016-03-231-1/+1
| | | | | | | | | | | | Issue #26588: * Pass the hash table rather than the key size to hash and compare functions * _Py_HASHTABLE_READ_KEY() and _Py_HASHTABLE_ENTRY_READ_KEY() macros now expect the hash table as the first parameter, rather than the key size * tracemalloc_get_traces_fill(): use _Py_HASHTABLE_ENTRY_READ_DATA() rather than pointer dereference * Remove the _Py_HASHTABLE_ENTRY_WRITE_PKEY() macro * Move "PKEY" and "PDATA" macros inside hashtable.c
* Issue #26588:Victor Stinner2016-03-231-1/+1
| | | | | | | | * _Py_HASHTABLE_ENTRY_DATA: change type from "char *" to "const void *" * Add _Py_HASHTABLE_ENTRY_WRITE_PKEY() macro * Rename _Py_HASHTABLE_ENTRY_WRITE_DATA() macro to _Py_HASHTABLE_ENTRY_WRITE_PDATA() * Add _Py_HASHTABLE_ENTRY_WRITE_DATA() macro
* hashtable.h now supports keys of any sizeVictor Stinner2016-03-211-5/+10
| | | | | | Issue #26588: hashtable.h now supports keys of any size, not only sizeof(void*). It allows to support key larger than sizeof(void*), but also to use less memory for key smaller than sizeof(void*).
* Ooops, revert changeset ea9efa06c137Victor Stinner2016-03-211-7/+4
| | | | | | | | | | | Change pushed by mistake, the patch is still under review :-/ """ _tracemalloc: add domain to trace keys * hashtable.h: key has now a variable size * _tracemalloc uses (pointer: void*, domain: unsigned int) as key for traces """
* _tracemalloc: add domain to trace keysVictor Stinner2016-03-181-4/+7
| | | | | * hashtable.h: key has now a variable size * _tracemalloc uses (pointer: void*, domain: unsigned int) as key for traces
* Issue #26146: marshal.loads() now uses the empty frozenset singletonVictor Stinner2016-01-231-29/+40
|
* Issue #25923: Added more const qualifiers to signatures of static and ↵Serhiy Storchaka2015-12-251-16/+18
| | | | private functions.
* Issue #25899: Converted non-ASCII characters in docstrings and manpageSerhiy Storchaka2015-12-181-2/+2
| | | | to ASCII replacements. Original patch by Chris Angelico.
* Issue #23752: _Py_fstat() is now responsible to raise the Python exceptionVictor Stinner2015-03-301-1/+1
| | | | Add _Py_fstat_noraise() function when a Python exception is not welcome.
* Issue #23753: Python doesn't support anymore platforms without stat() orVictor Stinner2015-03-241-4/+0
| | | | | | | fstat(), these functions are always required. Remove HAVE_STAT and HAVE_FSTAT defines, and stop supporting DONT_HAVE_STAT and DONT_HAVE_FSTAT.
* Issue #23152: Implement _Py_fstat() to support files larger than 2 GB on ↵Steve Dower2015-02-211-6/+10
| | | | | | Windows. fstat() may fail with EOVERFLOW on files larger than 2 GB because the file size type is an signed 32-bit integer.
* Issue #23450: Fixed possible integer overflows.Serhiy Storchaka2015-02-161-1/+1
|
* Splitted the WFILE structure to WFILE and RFILE.Serhiy Storchaka2015-02-111-6/+11
|
* Issue #23344: marshal.dumps() is now 20-25% faster on average.Serhiy Storchaka2015-02-111-21/+62
|
* Issue #20416: marshal.dumps() with protocols 3 and 4 is now 40-50% faster onSerhiy Storchaka2015-02-111-40/+55
| | | | average.
* Fixed memory leak in marshal.Serhiy Storchaka2015-01-281-1/+3
|\
| * Fixed memory leak in marshal.Serhiy Storchaka2015-01-281-1/+3
| |
* | Issue #22581: Use more "bytes-like object" throughout the docs and comments.Serhiy Storchaka2014-12-051-1/+1
|\ \ | |/
| * Issue #22581: Use more "bytes-like object" throughout the docs and comments.Serhiy Storchaka2014-12-051-1/+1
| |
* | #22734 marshal needs a lower stack depth for debug builds on WindowsSteve Dower2014-11-011-1/+1
| |
* | Issue #21490: Add new C macros: Py_ABS() and Py_STRINGIFY()Victor Stinner2014-05-141-5/+3
|/ | | | | Keep _Py_STRINGIZE() in PC/pyconfig.h to not introduce a dependency between pyconfig.h and pymacros.h.
* Fix compiler warning (on Windows 64-bit): explicit cast Py_ssize_t to unsignedVictor Stinner2013-11-161-2/+2
| | | | char, n is in range [0; 255] (a tuple cannot have a negative length)
* Issue #19437: Cleanup r_ref() of the marshal moduleVictor Stinner2013-10-311-5/+6
|
* Issue #19437: Fix r_object() of marshal module, handle PyDict_SetItem() failureVictor Stinner2013-10-311-3/+12
| | | | for TYPE_DICT and stop immedialty on first r_object() failure
* Issue #19437: Fix r_object() of marshal module, handle r_byte() failure forVictor Stinner2013-10-311-0/+2
| | | | TYPE_SMALL_TUPLE
* Issue #19437: Fix r_PyLong() of marshal module, stop immediatly at firstVictor Stinner2013-10-311-4/+11
| | | | failure, don't read any more data
* Issue #1772673: The type of `char*` arguments now changed to `const char*`.Serhiy Storchaka2013-10-191-3/+3
|
* Close #19260: remove outdated comment in marshal.cAntoine Pitrou2013-10-141-2/+0
|
* Catch a few extra error cases in marshal.cKristján Valur Jónsson2013-10-131-0/+4
|
* Issue #19219 Remove a lot of "retval = NULL" statements, now that retvalKristján Valur Jónsson2013-10-131-79/+22
| | | | is pre-initialized to that value. Test show a 5% speedup as a bonus.
* Issue #19219: retval may be used uninitialized valueChristian Heimes2013-10-131-1/+1
| | | | CID 486239: Uninitialized pointer read (UNINIT)
* Try to fix weird assertion error on the Fedora buildbot.Antoine Pitrou2013-10-121-3/+3
|