Commit Graph

395 Commits

Author SHA1 Message Date
Dong-hee Na 1b55b65638
bpo-39573: Clean up modules and headers to use Py_IS_TYPE() function (GH-18521) 2020-02-17 11:09:15 +01:00
Victor Stinner daa9756cb6
bpo-39573: Use Py_TYPE() macro in Modules directory (GH-18393)
Replace direct access to PyObject.ob_type with Py_TYPE().
2020-02-07 03:37:06 +01:00
Victor Stinner be143ec996
bpo-38835: Don't use PyFPE_START_PROTECT and PyFPE_END_PROTECT (GH-17231)
The PyFPE_START_PROTECT() and PyFPE_END_PROTECT() macros are empty:
they have been doing nothing for the last year  (since commit
735ae8d139), so stop using them.
2019-11-20 02:51:30 +01:00
Brandt Bucher 289cf0fbf7 bpo-38823: Clean up refleaks in _tkinter initialization. (GH-17206)
https://bugs.python.org/issue38823
2019-11-18 06:52:36 -08:00
Serhiy Storchaka d05b000c6b
bpo-38371: Tkinter: deprecate the split() method. (GH-16584) 2019-10-08 14:31:35 +03:00
Serhiy Storchaka 06cb94bc84
bpo-13153: Use OS native encoding for converting between Python and Tcl. (GH-16545)
On Windows use UTF-16 (or UTF-32 for 32-bit Tcl_UniChar) with the
"surrogatepass" error handler for converting to/from Tcl Unicode objects.

On Linux use UTF-8 with the "surrogateescape" error handler for converting
to/from Tcl String objects.

Converting strings from Tcl to Python and back now never fails
(except MemoryError).
2019-10-04 13:09:52 +03:00
Serhiy Storchaka 279f44678c
bpo-37206: Unrepresentable default values no longer represented as None. (GH-13933)
In ArgumentClinic, value "NULL" should now be used only for unrepresentable default values
(like in the optional third parameter of getattr). "None" should be used if None is accepted
as argument and passing None has the same effect as not passing the argument at all.
2019-09-14 12:24:05 +03:00
Jordon Xu 2ec7010206 bpo-37752: Delete redundant Py_CHARMASK in normalizestring() (GH-15095) 2019-09-10 17:04:08 +01:00
Victor Stinner 2ff58a24e8
bpo-37194: Add a new public PyObject_CallNoArgs() function (GH-13890)
Add a new public PyObject_CallNoArgs() function to the C API: call a
callable Python object without any arguments.

It is the most efficient way to call a callback without any argument.
On x86-64, for example, PyObject_CallFunctionObjArgs(func, NULL)
allocates 960 bytes on the stack per call, whereas
PyObject_CallNoArgs(func) only allocates 624 bytes per call.

It is excluded from stable ABI 3.8.

Replace private _PyObject_CallNoArg() with public
PyObject_CallNoArgs() in C extensions: _asyncio, _datetime,
_elementtree, _pickle, _tkinter and readline.
2019-06-17 14:27:23 +02:00
Eddie Elizondo 364f0b0f19 bpo-35810: Incref heap-allocated types in PyObject_Init (GH-11661)
* Incref heap-allocated types in PyObject_Init
* Add documentation and porting notes to What's New
2019-03-27 12:52:18 +01:00
Serhiy Storchaka d4f9cf5545
bpo-33029: Fix signatures of getter and setter functions. (GH-10746)
Fix also return type for few other functions (clear, releasebuffer).
2018-11-27 19:34:35 +02:00
Serhiy Storchaka df13df41a2
bpo-34794: Fix a leak in Tkinter. (GH-10025)
Based on the investigation by Xiang Zhang.
2018-10-23 22:40:54 +03:00
luzpaz a5293b4ff2 Fix miscellaneous typos (#4275) 2017-11-05 15:37:50 +02:00
stratakis e8b1965639 bpo-23699: Use a macro to reduce boilerplate code in rich comparison functions (GH-793) 2017-11-02 20:32:54 +10:00
Serhiy Storchaka 27c623c845 bpo-31675: Fix memory leaks in Tkinter's methods splitlist() and split() (#3866)
when pass a string larger than 2 GiB.

Decrease memory requirements for Tcl's bigmem tests.
2017-10-03 22:39:55 +03:00
Serhiy Storchaka 929b40a601 bpo-31673: Fixed typo in the name of Tkinter's method adderrorinfo(). (#3864) 2017-10-03 21:37:22 +03:00
Antoine Pitrou a6a4dc816d bpo-31370: Remove support for threads-less builds (#3385)
* Remove Setup.config
* Always define WITH_THREAD for compatibility.
2017-09-07 18:56:24 +02:00
Serhiy Storchaka 0b3ec19225 Use NULL rather than 0. (#778)
There was few cases of using literal 0 instead of NULL in the context of
pointers.  While this was a legitimate C code, using NULL rather than 0 makes
the code clearer.
2017-03-23 17:53:47 +02:00
Serhiy Storchaka 202fda55c2 bpo-24037: Add Argument Clinic converter `bool(accept={int})`. (#485) 2017-03-12 10:10:47 +02:00
INADA Naoki 72dccde884 bpo-29548: Fix some inefficient call API usage (GH-97) 2017-02-16 09:26:01 +09: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 8a8ebc900a Fixed possible NULL decrefing. 2016-10-28 12:16:21 +03:00
Serhiy Storchaka 3ec5f421c5 Fixed possible NULL decrefing. 2016-10-28 12:14:34 +03:00
Benjamin Peterson 2f8bfef158 replace PY_SIZE_MAX with SIZE_MAX 2016-09-07 09:26:18 -07:00
Benjamin Peterson ed4aa83ff7 require a long long data type (closes #27961) 2016-09-05 17:44:18 -07:00
Serhiy Storchaka 2954f83999 - Issue #27332: Fixed the type of the first argument of module-level functions
generated by Argument Clinic.  Patch by Petr Viktorin.
2016-07-07 18:20:03 +03:00
Serhiy Storchaka 1a2b24f02d Issue #27332: Fixed the type of the first argument of module-level functions
generated by Argument Clinic.  Patch by Petr Viktorin.
2016-07-07 17:35:15 +03:00
Serhiy Storchaka 696c8af41f Use macros instead of corresponding functions (they never fail) in _tkinter.c. 2016-06-19 11:22:47 +03:00
Serhiy Storchaka dea76376cb Issue #23815: Fixed crashes related to directly created instances of types in
_tkinter and curses.panel modules.
2016-05-08 20:46:55 +03:00
Serhiy Storchaka e3f1b0911e Issue #23815: Fixed crashes related to directly created instances of types in
_tkinter and curses.panel modules.
2016-05-08 20:46:22 +03:00
Serhiy Storchaka 7a9579c0ce Got rid of redundand "self" parameter declarations.
Argument Clinic is now able to infer all needed information.
2016-05-02 13:45:20 +03:00
Serhiy Storchaka ef1585eb9a Issue #25923: Added more const qualifiers to signatures of static and private functions. 2015-12-25 20:01:53 +02:00
Zachary Ware 7dc9dea778 Issue #20035: Reimplement tkinter._fix module as a C function.
The new private C function makes no permanent changes to the environment
and is #ifdef'd out on non-Windows platforms.
2015-05-22 11:36:53 -05:00
Serhiy Storchaka 8d0f620285 Use specialized functions intead of Py_BuildValue() in _tkinter. 2015-05-06 14:19:22 +03:00
Serhiy Storchaka 645058d11a Issue #23880: Tkinter's getint() and getdouble() now support Tcl_Obj.
Tkinter's getdouble() now supports any numbers (in particular int).
2015-05-06 14:00:04 +03:00
Larry Hastings dbfdc380df Issue #24001: Argument Clinic converters now use accept={type}
instead of types={'type'} to specify the types the converter accepts.
2015-05-04 06:59:46 -07:00
Larry Hastings 2d0a69a456 Fix Windows build breakage from checkins on Issues #20148 and #20168. 2015-05-03 14:49:19 -07:00
Serhiy Storchaka 5abdf48430 Issue #20168: Converted the _tkinter module to Argument Clinic. 2015-05-03 15:49:47 +03:00
Serhiy Storchaka 71b49dde3a Issue #16840. Turn off bignum support in tkinter with with Tcl earlier than 8.5.8
(tclTomMath.h was broken) and non-final Tcl 8.6.
Removed TK_VERSION_HEX.
2015-04-22 10:59:32 +03:00
Serhiy Storchaka 3af7a38c61 Issue #16840. Turn off bignum support in tkinter with with Tcl earlier than 8.5.8
(tclTomMath.h was broken) and non-final Tcl 8.6.
2015-04-22 10:53:08 +03:00
Serhiy Storchaka 629d697f96 Issue #16840: Turn on support of bignums only in final release of Tcl 8.5. 2015-04-20 14:07:41 +03:00
Serhiy Storchaka 77e8311deb Issue #16840: Turn on support of bignums only in final release of Tcl 8.5. 2015-04-20 14:05:37 +03:00
Serhiy Storchaka 06e66108c6 Issue #15133: _tkinter.tkapp.getboolean() now supports Tcl_Obj and always
returns bool.  tkinter.BooleanVar now validates input values (accepted bool,
int, str, and Tcl_Obj).  tkinter.BooleanVar.get() now always returns bool.
2015-04-04 12:44:30 +03:00
Serhiy Storchaka 9a6e201f7d Issue #15133: _tkinter.tkapp.getboolean() now supports Tcl_Obj and always
returns bool.  tkinter.BooleanVar now validates input values (accepted bool,
int, str, and Tcl_Obj).  tkinter.BooleanVar.get() now always returns bool.
2015-04-04 12:43:01 +03:00
Serhiy Storchaka 4c7dc48ea5 Issue #16840: Tkinter now supports 64-bit integers added in Tcl 8.4 and
arbitrary precision integers added in Tcl 8.5.
2015-04-02 18:49:14 +03:00
Serhiy Storchaka ea134da929 Issue #16840: Tkinter now supports 64-bit integers added in Tcl 8.4 and
arbitrary precision integers added in Tcl 8.5.
2015-04-02 18:46:50 +03:00
Serhiy Storchaka b452f41cc8 Issue #21526: Fixed support of new boolean type in Tcl 8.5. 2015-04-02 10:58:40 +03:00
Serhiy Storchaka f7de3dd02d Issue #21526: Tkinter now supports new boolean type in Tcl 8.5. 2015-04-02 10:35:57 +03:00
Serhiy Storchaka f07a4b663d Issue #21526: Tkinter now supports new boolean type in Tcl 8.5. 2015-03-23 00:47:45 +02:00
Serhiy Storchaka 50adb9fc32 Issue #20204: Added the __module__ attribute to _tkinter classes. 2015-03-01 09:07:10 +02:00
Serhiy Storchaka efdc16f978 Issue #20204: Added the __module__ attribute to _tkinter classes. 2015-03-01 09:06:29 +02:00
Serhiy Storchaka 3584056ca5 Shoould be Py_MIN, not Py_MAX. 2015-02-16 20:54:03 +02:00
Serhiy Storchaka 26861b0b29 Issue #23450: Fixed possible integer overflows. 2015-02-16 20:52:17 +02:00
Victor Stinner ee6c3c7162 Closes #22336: attemptckalloc() with PyMem_Malloc() in _tkinter
The PyMem_Malloc(size) function has a well defined behaviour: if size is 0, a
pointer different than NULL is returned. PyMem_Malloc() allocations are
tracked by tracemalloc, attemptckalloc() allocations are not tracked.
2014-09-11 17:50:21 +02:00
Serhiy Storchaka d5fd6188e2 Issue #21951: Fixed a crash in Tkinter on AIX when called Tcl command with
empty string or tuple argument.

On some platforms Tcl memory allocator returns NULL when allocating zero-sized
block of memory.
2014-09-11 10:58:02 +03:00
Serhiy Storchaka abf68ce164 Issue #21951: Fixed a crash in Tkinter on AIX when called Tcl command with
empty string or tuple argument.

On some platforms Tcl memory allocator returns NULL when allocating zero-sized
block of memory.
2014-09-11 10:57:13 +03:00
Serhiy Storchaka 979f80b8da Issue #21951: Use attemptckalloc() instead of ckalloc() in Tkinter.
ckalloc() causes the Tcl interpreter to panic, attemptckalloc() returns NULL
if the memory allocation fails.
2014-09-11 10:40:44 +03:00
Serhiy Storchaka 0794088379 Issue #21951: Use attemptckalloc() instead of ckalloc() in Tkinter.
ckalloc() causes the Tcl interpreter to panic, attemptckalloc() returns NULL
if the memory allocation fails.
2014-09-11 10:38:54 +03:00
Serhiy Storchaka d8a1447c99 Issue #22215: Now ValueError is raised instead of TypeError when str or bytes
argument contains not permitted null character or byte.
2014-09-06 20:07:17 +03:00
Victor Stinner 60a64d6812 Issue #21951: Fix AsObj() of the _tkinter module: raise MemoryError on memory
allocation failure
2014-09-04 17:29:52 +02:00
Victor Stinner 706768c687 Issue #22156: Fix some "comparison between signed and unsigned integers"
compiler warnings in the Modules/ subdirectory.
2014-08-16 01:03:39 +02:00
Zachary Ware 037605b50e Closes #22136: Fix MSVC compiler warnings introduced by #22085 2014-08-05 11:54:34 -05:00
Serhiy Storchaka 6716d60cec Issue #22085: Dropped support of Tk 8.3 in Tkinter. 2014-07-30 19:19:21 +03:00
Serhiy Storchaka f44611cadf Issue #21580: Now Tkinter correctly handles bytes arguments passed to Tk.
In particular this allows to initialize images from binary data.
2014-07-30 18:34:01 +03:00
Serhiy Storchaka 74596a887a Issue #21580: Now Tkinter correctly handles bytes arguments passed to Tk.
In particular this allows to initialize images from binary data.
2014-07-30 18:33:13 +03:00
Serhiy Storchaka 56ded52fa8 Call PyErr_NoMemory() when PyMem_Malloc() fails. 2014-07-14 12:20:49 +03:00
Serhiy Storchaka b1ebfdddb3 Call PyErr_NoMemory() when PyMem_Malloc() fails. 2014-07-14 12:20:15 +03:00
Serhiy Storchaka 1753d2255e Issue #21552: Fixed possible integer overflow of too long string lengths in
the tkinter module on 64-bit platforms.
2014-05-30 14:25:22 +03:00
Serhiy Storchaka 79851d755b Issue #21552: Fixed possible integer overflow of too long string lengths in
the tkinter module on 64-bit platforms.
2014-05-30 14:24:03 +03:00
Serhiy Storchaka 9e7cbda1ef Issue #3015: _tkinter.create() now creates tkapp object with wantobject=1 by
default.
2014-05-28 16:57:55 +03:00
Serhiy Storchaka 2b00c4999d Issue #21525: Most Tkinter methods which accepted tuples now accept lists too. 2014-05-21 17:12:21 +03:00
Christian Heimes 25ff287dd7 Issue #20515: Fix NULL pointer dereference introduced by issue #20368
CID 1167595
2014-02-05 00:29:48 +01:00
Christian Heimes d33491ea76 Issue #20515: Fix NULL pointer dereference introduced by issue #20368
CID 1167595
2014-02-05 00:29:17 +01:00
Serhiy Storchaka ce591c2868 Issue #20368: The null character now correctly passed from Tcl to Python.
Improved error handling in variables-related commands.
2014-02-03 21:25:56 +02:00
Serhiy Storchaka 1317e14468 Issue #20368: The null character now correctly passed from Tcl to Python.
Improved error handling in variables-related commands.
2014-02-03 21:24:07 +02:00
Serhiy Storchaka ab0ac27d24 Issue #20315: Removed support for backward compatibility with early 2.x versions.
Removed backward compatibility alias curses.window.nooutrefresh which should
be removed in 2.3.
2014-01-20 21:35:06 +02:00
Serhiy Storchaka 7e52705ee3 Issue #20315: Removed support for backward compatibility with early 2.x versions. 2014-01-20 21:29:31 +02:00
Serhiy Storchaka 369606df2f Issue #19028: Fixed tkinter.Tkapp.merge() for non-string arguments. 2013-09-23 23:20:07 +03:00
Serhiy Storchaka 463bd4b5c6 Issue #19034: repr() for tkinter.Tcl_Obj now exposes string reperesentation. 2013-09-23 22:49:02 +03:00
Serhiy Storchaka dac8b8b7a6 Issue #3015: Fixed tkinter with wantobject=False. Any Tcl command call
returned empty string.
2013-09-20 23:24:20 +03:00
Serhiy Storchaka 31f477c7eb Issue #3015: Fixed tkinter with wantobject=False. Any Tcl command call
returned empty string.
2013-09-20 23:21:44 +03:00
Victor Stinner 555e57de19 (Merge 3.3) Issue #18909: Fix _tkinter.tkapp.interpaddr() on Windows 64-bit,
don't cast 64-bit pointer to long (32 bits).
2013-09-05 00:23:08 +02:00
Victor Stinner e1040e276b Issue #18909: Fix _tkinter.tkapp.interpaddr() on Windows 64-bit, don't cast
64-bit pointer to long (32 bits).
2013-09-05 00:22:24 +02:00
Serhiy Storchaka 254954aacd Issue #16809: Tkinter's splitlist() and split() methods now accept Tcl_Obj
argument.

This is needed for support Tcl/Tk 8.6.
2013-08-22 17:42:05 +03:00
Serhiy Storchaka 203eb317d2 Issue #16809: Tkinter's splitlist() and split() methods now accept Tcl_Obj
argument.

This is needed for support Tcl/Tk 8.6.
2013-08-22 17:40:31 +03:00
Serhiy Storchaka 4e4088d273 Issue #17119: Fixed integer overflows when processing large strings and tuples
in the tkinter module.
2013-08-21 21:43:08 +03:00
Serhiy Storchaka 9e6b97502f Issue #17119: Fixed integer overflows when processing large strings and tuples
in the tkinter module.
2013-08-21 21:38:21 +03:00
Antoine Pitrou 584e815114 Fix refcounting issue with extension types in tkinter.
(issue #15721)
2013-08-11 00:22:30 +02:00
Serhiy Storchaka 50ae3f680b Issue #18101: Tcl.split() now process strings nested in a tuple as it
do with byte strings.

Added tests for Tcl.split() and Tcl.splitline().
2013-07-11 20:36:00 +03:00
Serhiy Storchaka 275d5fdbe4 Issue #18101: Tcl.split() now process strings nested in a tuple as it
do with byte strings.

Added tests for Tcl.split() and Tcl.splitline().
2013-07-11 20:34:47 +03:00
Serhiy Storchaka 2cca36ed3c Issue #13153: Tkinter functions now raise TclError instead of ValueError when
a string argument contains non-BMP character.
2013-02-18 13:03:07 +02:00
Serhiy Storchaka df4aa642a5 Issue #13153: Tkinter functions now raise TclError instead of ValueError when
a string argument contains non-BMP character.
2013-02-18 13:02:41 +02:00
Serhiy Storchaka 59f5dee3d6 Issue #13153: Tkinter functions now raise TclError instead of ValueError when
a string argument contains non-BMP character.
2013-02-18 13:01:52 +02:00
Andrew Svetlov d2217a83d4 Issue #15721: apply PEP 384 Refactoring to tkinter module. 2012-10-30 22:49:16 +02:00
Andrew Svetlov d0ad0b3ae2 Reformat _tkinter code to follow PEP7 2012-10-16 22:50:34 +03:00
Andrew Svetlov 11dc6c311d Issue #15721: make _tkinter module pep384 compatible. 2012-10-14 16:54:35 +03:00
Andrew Svetlov 09c61bef2d Remove unused functions from _tkinter. 2012-10-07 13:39:00 +03:00
Andrew Svetlov 885dc287d3 Utilize PyModule_Add{IntConstant,StringConstant,Object} in _tkinter. 2012-10-07 12:30:51 +03:00
Andrew Svetlov 9dc5bdddc0 Utilize Py_RETURN_NONE in _tkinter module. 2012-10-07 12:08:38 +03:00
Jesus Cea 6efe9dff14 Issue #14446: Remove deprecated tkinter functions: Delete an unused function to avoid a warning 2012-10-05 04:02:41 +02:00