Commit Graph

97779 Commits

Author SHA1 Message Date
Victor Stinner
5670764812 Use _PyObject_CallMethodIdObjArgs() in _ctypes
Issue #28915: Replace _PyObject_CallMethodId() with
_PyObject_CallMethodIdObjArgs() in unpickle(). _PyObject_CallMethodIdObjArgs()
avoids the creation of a temporary tuple and doesn't have to parse a format
string.

Replace _PyObject_CallMethodId() with _PyObject_GetAttrId()+PyObject_Call() for
the second call since it requires to "unpack" a tuple.

Add also a check in the type of the second parameter (state): it must be a
tuple.
2016-12-09 15:18:31 +01:00
Victor Stinner
ddc120f4cf Fix refleak introduced in change 032cbdb596fe
Issue #28915.
2016-12-09 15:35:40 +01:00
Victor Stinner
c24217e144 regrtest --fromfile now accepts a list of filenames 2016-12-09 16:05:51 +01:00
Victor Stinner
b6ed57d980 Use _PyObject_CallMethodIdObjArgs() in _asyncio
Issue #28915: Replace _PyObject_CallMethodId() with
_PyObject_CallMethodIdObjArgs() 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.
2016-12-09 14:24:02 +01:00
Victor Stinner
070c4d7ca7 Issue #28915: Use _PyObject_CallNoArg()
Replace PyObject_CallFunction(func, NULL) with _PyObject_CallNoArg(func).
2016-12-09 12:29:18 +01:00
Xavier de Gaye
ec80ba4693 Issue #26937: Merge 3.6. 2016-12-09 09:35:49 +01:00
Xavier de Gaye
f44abdab1e Issue #26937: The chown() method of the tarfile.TarFile class does not fail now
when the grp module cannot be imported, as for example on Android platforms.
2016-12-09 09:33:09 +01:00
Victor Stinner
887b4307b6 Use _PyObject_FastCallVa() in type slots
Issue #28915: Replace Py_VaBuildValue()+PyObject_Call() with
_PyObject_FastCallVa() to avoid the creation of temporary tuple.
2016-12-09 00:41:46 +01:00
Victor Stinner
7f39c0ccfc Add _PyObject_VaCallFunctionObjArgs() private function
Issue #28915: Similar to _PyObject_CallFunctionObjArgs() but use va_list to
pass arguments.
2016-12-09 00:40:33 +01:00
Victor Stinner
dbe28d26b4 time_strptime() uses PyObject_Call()
Issue #28915: Use PyObject_Call() to pass a tuple of positional arguments,
instead of relying on _PyObject_CallMethodId() weird behaviour to unpack the
tuple.
2016-12-09 00:38:53 +01:00
Victor Stinner
2b635971e7 build_struct_time() uses Py_BuildValue()
Issue #28915: Avoid calling _PyObject_CallMethodId() with "(...)" format to
avoid the creation of a temporary tuple: use Py_BuildValue() with
_PyObject_CallMethodIdObjArgs().
2016-12-09 00:38:16 +01:00
Victor Stinner
7e42541d08 Use _PyObject_CallMethodIdObjArgs()
Issue #28915: Replace _PyObject_CallMethodId() with
_PyObject_CallMethodIdObjArgs() when the format string only use the format 'O'
for objects, like "(O)".

_PyObject_CallMethodIdObjArgs() avoids the code to parse a format string and
avoids the creation of a temporary tuple.
2016-12-09 00:36:19 +01:00
Victor Stinner
4c38154a43 Don't parenthesis in _PyObject_CallMethodId() format
Issue #28915: Without parenthesis, _PyObject_CallMethodId() avoids the creation
a temporary tuple, and so is more efficient.
2016-12-09 00:33:39 +01:00
Victor Stinner
ef7def94c7 _PyObject_CallFunctionVa() uses fast call
Issue #28915: Use _Py_VaBuildStack() to build a C array of PyObject* and then
use _PyObject_FastCall().

The function has a special case if the stack only contains one parameter and
the parameter is a tuple: "unpack" the tuple of arguments in this case.
2016-12-09 00:31:47 +01:00
Victor Stinner
e9abde4642 Add _Py_VaBuildStack() function
Issue #28915: Similar to Py_VaBuildValue(), but work on a C array of PyObject*,
instead of creating a tuple.
2016-12-09 00:29:49 +01:00
Victor Stinner
b551b6c9f0 modsupport: replace int with Py_ssize_t
Issue #28915: Py_ssize_t type is better for indexes. The compiler might emit
more efficient code for i++. Py_ssize_t is the type of a PyTuple index for
example.

Replace also "int endchar" with "char endchar".
2016-12-09 00:27:22 +01:00
Victor Stinner
e9aae2dcc5 modsupport: replace int with Py_ssize_t
Issue #28915.
2016-12-09 00:24:47 +01:00
Victor Stinner
e83aab12b0 Add _PyObject_CallFunctionVa() helper
Issue #28915: Add _PyObject_CallFunctionVa() helper to factorize code of
functions:

* PyObject_CallFunction()
* _PyObject_CallFunction_SizeT()
* callmethod()
2016-12-09 00:22:56 +01:00
Victor Stinner
3bb711998d Add _PyObject_FastCallVa() helper
Issue #28915: Add _PyObject_FastCallVa() helper to factorize code of functions:

* PyObject_CallFunctionObjArgs()
* PyObject_CallMethodObjArgs()
* _PyObject_CallMethodIdObjArgs()

Inline objargs_mkstack() into _PyObject_FastCallVa(), remove
objargs_mkstack().
2016-12-09 00:21:55 +01:00
Steve Dower
3b3a7c01bc Issue #28896: Deprecate WindowsRegistryFinder 2016-12-08 09:01:39 -08:00
Victor Stinner
808e47ee0c Null merge 3.6 2016-12-08 17:17:17 +01:00
Xavier de Gaye
f434111332 Issue #26941: Merge 3.6. 2016-12-08 12:21:53 +01:00
Xavier de Gaye
cb9ab0f50b Issue #26941: Fix test_threading that hangs on the Android armv7 qemu emulator. 2016-12-08 12:21:00 +01:00
Xavier de Gaye
cd35959bfc Issue #26940: Merge 3.6. 2016-12-08 11:27:27 +01:00
Xavier de Gaye
f79606debd Issue #26940: Fix test_importlib that hangs on the Android armv7 qemu emulator. 2016-12-08 11:26:18 +01:00
Xavier de Gaye
566ba3defd Issue #26939: Merge 3.6. 2016-12-08 11:09:54 +01:00
Xavier de Gaye
7522ef402c Issue #26939: Add the support.setswitchinterval() function to fix
test_functools hanging on the Android armv7 qemu emulator.
2016-12-08 11:06:56 +01:00
Benjamin Peterson
4ebcdac556 merge 3.6 (#28898) 2016-12-07 23:55:03 -08:00
Benjamin Peterson
0d5742dec0 guard HAVE_LONG_LONG definition to prevent redefinition (#28898) 2016-12-07 23:54:28 -08:00
Ned Deily
864a78ed72 Issue #28900: Update documentation sidebar for 3.6.0rc. 2016-12-07 23:38:30 -05:00
Ned Deily
098f85bb7d Issue #28900: Update documentation sidebar for 3.6.0rc. 2016-12-07 23:37:12 -05:00
Ned Deily
932d40abf7 Issue #28900: Update documentation sidebar for 3.6.0rc. 2016-12-07 23:34:49 -05:00
Yury Selivanov
ee19ab5962 Merge 3.6 (issue #28635) 2016-12-07 16:20:10 -08:00
Yury Selivanov
eb58936b64 Issue #28635: Drop the note that whatsnew is incomplete 2016-12-07 16:19:56 -08:00
Steve Dower
20367420c8 Issue #28896: Deprecate WindowsRegistryFinder 2016-12-07 13:02:27 -08:00
INADA Naoki
ba6097734d Issue #28818: Simplify lookdict functions 2016-12-07 20:41:42 +09:00
Serhiy Storchaka
d7d266c113 Merge from 3.6. 2016-12-07 13:32:09 +02:00
Serhiy Storchaka
427f10b442 Merge from 3.5. 2016-12-07 13:31:47 +02:00
Serhiy Storchaka
606ab86c0e Change order of io.UnsupportedOperation base classes.
This makes tests passing after changes by issue #5322.
2016-12-07 13:31:20 +02:00
INADA Naoki
09e4a695d1 null merge from 3.6 2016-12-07 18:38:15 +09:00
INADA Naoki
2c5a830f2a Issue #28731: Optimize _PyDict_NewPresized() to create correct size dict.
Improve speed of dict literal with constant keys up to 30%.
2016-12-07 18:34:44 +09:00
Serhiy Storchaka
1b58d8aafa Issue #5322: Fixed setting __new__ to a PyCFunction inside Python code.
Original patch by Andreas Stührk.
2016-12-07 11:27:55 +02:00
Serhiy Storchaka
0c78634d78 Issue #5322: Fixed setting __new__ to a PyCFunction inside Python code.
Original patch by Andreas Stührk.
2016-12-07 11:26:49 +02:00
Serhiy Storchaka
4fc7942118 Issue #28847: A deprecation warning is now emitted if the index file is missed
and recreated in the 'r' and 'w' modes (will be an error in future Python
releases).
2016-12-07 11:11:12 +02:00
Serhiy Storchaka
43153e4d49 Issue #28847: dbm.dumb now supports reading read-only files and no longer
writes the index file when it is not changed.
2016-12-07 11:02:18 +02:00
Serhiy Storchaka
520348e5c0 Issue #28847: dbm.dumb now supports reading read-only files and no longer
writes the index file when it is not changed.
2016-12-07 11:00:06 +02:00
Serhiy Storchaka
028ace1ccb Issue #28847: dbm.dumb now supports reading read-only files and no longer
writes the index file when it is not changed.
2016-12-07 10:56:39 +02:00
Ned Deily
c29ba8b489 null merge from 3.6 2016-12-07 02:02:48 -05:00
Ned Deily
3ca43ed956 Prepare for 3.6.1. Any further 3.6.0 release candidates and 3.6.0 final will be cherrypicked and merged here. 2016-12-07 01:59:27 -05:00
Ned Deily
ec415dd88c merge tag from 3.6 2016-12-06 19:07:19 -05:00