| To: vim_dev@googlegroups.com |
| Subject: Patch 7.3.1053 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.3.1053 |
| Problem: Python: no flag for types with tp_traverse+tp_clear. |
| Solution: Python patch 14: Add Py_TPFLAGS_HAVE_GC. (ZyX) |
| Files: src/if_py_both.h |
| |
| |
| |
| |
| |
| *** 4461,4467 **** |
| vim_memset(&IterType, 0, sizeof(IterType)); |
| IterType.tp_name = "vim.iter"; |
| IterType.tp_basicsize = sizeof(IterObject); |
| ! IterType.tp_flags = Py_TPFLAGS_DEFAULT; |
| IterType.tp_doc = "generic iterator object"; |
| IterType.tp_iter = (getiterfunc)IterIter; |
| IterType.tp_iternext = (iternextfunc)IterNext; |
| --- 4461,4467 ---- |
| vim_memset(&IterType, 0, sizeof(IterType)); |
| IterType.tp_name = "vim.iter"; |
| IterType.tp_basicsize = sizeof(IterObject); |
| ! IterType.tp_flags = Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_GC; |
| IterType.tp_doc = "generic iterator object"; |
| IterType.tp_iter = (getiterfunc)IterIter; |
| IterType.tp_iternext = (iternextfunc)IterNext; |
| |
| *** 4495,4501 **** |
| WindowType.tp_basicsize = sizeof(WindowObject); |
| WindowType.tp_dealloc = (destructor)WindowDestructor; |
| WindowType.tp_repr = (reprfunc)WindowRepr; |
| ! WindowType.tp_flags = Py_TPFLAGS_DEFAULT; |
| WindowType.tp_doc = "vim Window object"; |
| WindowType.tp_methods = WindowMethods; |
| WindowType.tp_traverse = (traverseproc)WindowTraverse; |
| --- 4495,4501 ---- |
| WindowType.tp_basicsize = sizeof(WindowObject); |
| WindowType.tp_dealloc = (destructor)WindowDestructor; |
| WindowType.tp_repr = (reprfunc)WindowRepr; |
| ! WindowType.tp_flags = Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_GC; |
| WindowType.tp_doc = "vim Window object"; |
| WindowType.tp_methods = WindowMethods; |
| WindowType.tp_traverse = (traverseproc)WindowTraverse; |
| |
| *** 4558,4564 **** |
| RangeType.tp_repr = (reprfunc)RangeRepr; |
| RangeType.tp_as_sequence = &RangeAsSeq; |
| RangeType.tp_as_mapping = &RangeAsMapping; |
| ! RangeType.tp_flags = Py_TPFLAGS_DEFAULT; |
| RangeType.tp_doc = "vim Range object"; |
| RangeType.tp_methods = RangeMethods; |
| RangeType.tp_traverse = (traverseproc)RangeTraverse; |
| --- 4558,4564 ---- |
| RangeType.tp_repr = (reprfunc)RangeRepr; |
| RangeType.tp_as_sequence = &RangeAsSeq; |
| RangeType.tp_as_mapping = &RangeAsMapping; |
| ! RangeType.tp_flags = Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_GC; |
| RangeType.tp_doc = "vim Range object"; |
| RangeType.tp_methods = RangeMethods; |
| RangeType.tp_traverse = (traverseproc)RangeTraverse; |
| |
| *** 4637,4643 **** |
| vim_memset(&OptionsType, 0, sizeof(OptionsType)); |
| OptionsType.tp_name = "vim.options"; |
| OptionsType.tp_basicsize = sizeof(OptionsObject); |
| ! OptionsType.tp_flags = Py_TPFLAGS_DEFAULT; |
| OptionsType.tp_doc = "object for manipulating options"; |
| OptionsType.tp_as_mapping = &OptionsAsMapping; |
| OptionsType.tp_dealloc = (destructor)OptionsDestructor; |
| --- 4637,4643 ---- |
| vim_memset(&OptionsType, 0, sizeof(OptionsType)); |
| OptionsType.tp_name = "vim.options"; |
| OptionsType.tp_basicsize = sizeof(OptionsObject); |
| ! OptionsType.tp_flags = Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_GC; |
| OptionsType.tp_doc = "object for manipulating options"; |
| OptionsType.tp_as_mapping = &OptionsAsMapping; |
| OptionsType.tp_dealloc = (destructor)OptionsDestructor; |
| |
| |
| |
| *** 730,731 **** |
| --- 730,733 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 1053, |
| /**/ |
| |
| -- |
| hundred-and-one symptoms of being an internet addict: |
| 26. You check your mail. It says "no new messages." So you check it again. |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ an exciting new programming language -- http://www.Zimbu.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |