Victor Stinner
7bfb42d5b7
Issue #28858: Remove _PyObject_CallArg1() macro
...
Replace
_PyObject_CallArg1(func, arg)
with
PyObject_CallFunctionObjArgs(func, arg, NULL)
Using the _PyObject_CallArg1() macro increases the usage of the C stack, which
was unexpected and unwanted. PyObject_CallFunctionObjArgs() doesn't have this
issue.
2016-12-05 17:04:32 +01:00
Victor Stinner
4778eab1f2
Replace PyObject_CallFunction() with fastcall
...
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.
2016-12-01 14:51:04 +01:00
Serhiy Storchaka
85b0f5beb1
Added the const qualifier to char* variables that refer to readonly internal
...
UTF-8 represenatation of Unicode objects.
2016-11-20 10:16:47 +02:00
Serhiy Storchaka
cb33a01bbc
Issue #28510: Clean up decoding error handlers.
...
Since PyUnicodeDecodeError_GetObject() always returns bytes, following
PyBytes_AsString() can be replaced with PyBytes_AS_STRING().
2016-10-23 09:44:50 +03:00
Martin Panter
6245cb3c01
Correct “an” → “a” with “Unicode”, “user”, “UTF”, etc
...
This affects documentation, code comments, and a debugging messages.
2016-04-15 02:14:19 +00:00
Victor Stinner
38b8ae0f5b
Issue #24993: Handle import error in namereplace error handler
...
Handle PyCapsule_Import() failure (exception) in PyCodec_NameReplaceErrors():
return immedialty NULL.
2015-09-03 16:19:40 +02:00
Serhiy Storchaka
ac5569b1fa
Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(),
...
PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
to check for and handle errors correctly.
2015-05-30 17:48:19 +03:00
Serhiy Storchaka
fa494fd883
Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(),
...
PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
to check for and handle errors correctly.
2015-05-30 17:45:22 +03:00
Serhiy Storchaka
c0937f79ec
Issue #24102: Fixed exception type checking in standard error handlers.
2015-05-18 16:10:40 +03:00
Serhiy Storchaka
ca7fecb038
Issue #24102: Fixed exception type checking in standard error handlers.
2015-05-18 16:08:52 +03:00
Serhiy Storchaka
26861b0b29
Issue #23450: Fixed possible integer overflows.
2015-02-16 20:52:17 +02:00
Serhiy Storchaka
07985ef387
Issue #22286: The "backslashreplace" error handlers now works with
...
decoding and translating.
2015-01-25 22:56:57 +02:00
Benjamin Peterson
3663b58664
correct assertion
2014-11-26 14:39:54 -06:00
Benjamin Peterson
810aa6db34
fix variable name
2014-11-26 14:20:51 -06:00
Serhiy Storchaka
aacfcccdc3
Issue #19676: Fixed integer overflow issue in "namereplace" error handler.
2014-11-26 12:11:40 +02:00
Serhiy Storchaka
166ebc4e5d
Issue #19676: Added the "namereplace" error handler.
2014-11-25 13:57:17 +02:00
Serhiy Storchaka
8d1e18ef1f
Issue #22518: Fixed integer overflow issues in "backslashreplace",
...
"xmlcharrefreplace", and "surrogatepass" error handlers.
2014-10-04 14:17:50 +03:00
Serhiy Storchaka
2e374098ff
Issue #22518: Fixed integer overflow issues in "backslashreplace",
...
"xmlcharrefreplace", and "surrogatepass" error handlers.
2014-10-04 14:15:49 +03:00
Serhiy Storchaka
cbcbfdf19f
Fixed reference leak in the "backslashreplace" error handler.
2014-09-23 19:59:34 +03:00
Serhiy Storchaka
8aa8c47db2
Fixed reference leak in the "backslashreplace" error handler.
2014-09-23 19:59:09 +03:00
Nick Coghlan
a0f33759fa
Merge fix for issue #22166 from 3.4
2014-09-15 23:55:16 +12:00
Nick Coghlan
8fad1676a2
Issue #22166: clear codec caches in test_codecs
2014-09-15 23:50:44 +12:00
Victor Stinner
0d4e01ca07
Issue #13916: Fix surrogatepass error handler on Windows
2014-05-16 14:46:20 +02:00
Serhiy Storchaka
88d8fb6af6
Issue #13916: Disallowed the surrogatepass error handler for non UTF-*
...
encodings.
2014-05-15 14:37:42 +03:00
Nick Coghlan
a9b15241c6
Close #20404: blacklist non-text encodings in io.TextIOWrapper
...
- io.TextIOWrapper (and hence the open() builtin) now use the
internal codec marking system added for issue #19619
- also tweaked the C code to only look up the encoding once,
rather than multiple times
- the existing output type checks remain in place to deal with
unmarked third party codecs.
2014-02-04 22:11:18 +10:00
Nick Coghlan
c72e4e6dcc
Issue #19619: Blacklist non-text codecs in method API
...
str.encode, bytes.decode and bytearray.decode now use an
internal API to throw LookupError for known non-text encodings,
rather than attempting the encoding or decoding operation and
then throwing a TypeError for an unexpected output type.
The latter mechanism remains in place for third party non-text
encodings.
2013-11-22 22:39:36 +10:00
Serhiy Storchaka
58cf607d13
Issue #12892: The utf-16* and utf-32* codecs now reject (lone) surrogates.
...
The utf-16* and utf-32* encoders no longer allow surrogate code points
(U+D800-U+DFFF) to be encoded.
The utf-32* decoders no longer decode byte sequences that correspond to
surrogate code points.
The surrogatepass error handler now works with the utf-16* and utf-32* codecs.
Based on patches by Victor Stinner and Kang-Hao (Kenny) Lu.
2013-11-19 11:32:41 +02:00
Nick Coghlan
c4c2580d43
Close 19609: narrow scope of codec exc chaining
2013-11-15 21:47:37 +10:00
Nick Coghlan
8b097b4ed7
Close #17828: better handling of codec errors
...
- output type errors now redirect users to the type-neutral
convenience functions in the codecs module
- stateless errors that occur during encoding and decoding
will now be automatically wrapped in exceptions that give
the name of the codec involved
2013-11-13 23:49:21 +10:00
Serhiy Storchaka
c679227e31
Issue #1772673: The type of char*
arguments now changed to const char*
.
2013-10-19 21:03:34 +03:00
Antoine Pitrou
9ed5f27266
Issue #18722: Remove uses of the "register" keyword in C code.
2013-08-13 20:18:52 +02:00
Victor Stinner
cc35159ed8
Issue #18408: normalizestring() now raises MemoryError on memory allocation failure
2013-07-12 00:02:55 +02:00
Andrew Svetlov
3ba3a3ee56
Issue #15422: get rid of PyCFunction_New macro
2012-12-25 13:32:35 +02:00
Ezio Melotti
1e58ae44df
#16336: merge with 3.3.
2012-11-03 23:05:18 +02:00
Ezio Melotti
a0b5c46fa2
#16336: merge with 3.2.
2012-11-03 23:04:41 +02:00
Ezio Melotti
540da76115
#16336: fix input checking in the surrogatepass error handler. Patch by Serhiy Storchaka.
2012-11-03 23:03:39 +02:00
Victor Stinner
76df43de30
Issue #16330: Use surrogate-related macros
...
Patch written by Serhiy Storchaka.
2012-10-30 01:42:39 +01:00
Philip Jenvey
5f9459fbed
merge with 3.2
2012-10-26 17:05:09 -07:00
Philip Jenvey
45c41494bf
bounds check for bad data (thanks amaury)
2012-10-26 17:01:53 -07:00
Victor Stinner
8f825060f1
Check newly created consistency using _PyUnicode_CheckConsistency(str, 1)
...
* In debug mode, fill the string data with invalid characters
* Simplify also reference counting in PyCodec_BackslashReplaceErrors()
and PyCodec_XMLCharRefReplaceError()
2012-04-27 13:55:39 +02:00
Antoine Pitrou
f0ecdd2ab9
Issue #13722: Avoid silencing ImportErrors when initializing the codecs registry.
2012-01-18 22:31:12 +01:00
Antoine Pitrou
1b468af7be
Issue #13722: Avoid silencing ImportErrors when initializing the codecs registry.
2012-01-18 22:30:21 +01:00
Victor Stinner
ee450093a9
PyCodec_IgnoreErrors() avoids the deprecated "u#" format
2011-12-01 02:52:11 +01:00
Victor Stinner
c06bb7affd
Avoid the Py_UNICODE type in codecs.c
2011-11-04 21:36:35 +01:00
Victor Stinner
b31f1bcd99
PyCodec_XMLCharRefReplaceError(): Remove unused variable
2011-11-04 21:29:10 +01:00
Martin v. Löwis
8ba79306d1
Fix C89 incompatibility.
2011-11-04 12:26:49 +01:00
Martin v. Löwis
b09af03b8a
Port error handlers from Py_UNICODE indexing to code point indexing.
2011-11-04 11:16:41 +01:00
Martin v. Löwis
bd928fef42
Rename _Py_identifier to _Py_IDENTIFIER.
2011-10-14 10:20:37 +02:00
Victor Stinner
f5cff56a1b
Issue #13088: Add shared Py_hexdigits constant to format a number into base 16
2011-10-14 02:13:11 +02:00
Martin v. Löwis
1ee1b6fe0d
Use identifier API for PyObject_GetAttrString.
2011-10-10 18:11:30 +02:00