Mercurial > vim
comparison src/if_py_both.h @ 19181:94eda51ba9ba v8.2.0149
patch 8.2.0149: maintaining a Vim9 branch separately is more work
Commit: https://github.com/vim/vim/commit/8a7d6542b33e5d2b352262305c3bfdb2d14e1cf8
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jan 26 15:56:19 2020 +0100
patch 8.2.0149: maintaining a Vim9 branch separately is more work
Problem: Maintaining a Vim9 branch separately is more work.
Solution: Merge the Vim9 script changes.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 26 Jan 2020 16:00:05 +0100 |
parents | ba9f50bfda83 |
children | 9f98957582d6 |
comparison
equal
deleted
inserted
replaced
19180:8edf0aeb71b9 | 19181:94eda51ba9ba |
---|---|
783 { | 783 { |
784 Py_DECREF(ret); | 784 Py_DECREF(ret); |
785 return NULL; | 785 return NULL; |
786 } | 786 } |
787 | 787 |
788 range_list_materialize(list); | |
788 for (curr = list->lv_first; curr != NULL; curr = curr->li_next) | 789 for (curr = list->lv_first; curr != NULL; curr = curr->li_next) |
789 { | 790 { |
790 if (!(newObj = VimToPython(&curr->li_tv, depth + 1, lookup_dict))) | 791 if (!(newObj = VimToPython(&curr->li_tv, depth + 1, lookup_dict))) |
791 { | 792 { |
792 Py_DECREF(ret); | 793 Py_DECREF(ret); |
2253 self = (ListObject *) subtype->tp_alloc(subtype, 0); | 2254 self = (ListObject *) subtype->tp_alloc(subtype, 0); |
2254 if (self == NULL) | 2255 if (self == NULL) |
2255 return NULL; | 2256 return NULL; |
2256 self->list = list; | 2257 self->list = list; |
2257 ++list->lv_refcount; | 2258 ++list->lv_refcount; |
2259 range_list_materialize(list); | |
2258 | 2260 |
2259 pyll_add((PyObject *)(self), &self->ref, &lastlist); | 2261 pyll_add((PyObject *)(self), &self->ref, &lastlist); |
2260 | 2262 |
2261 return (PyObject *)(self); | 2263 return (PyObject *)(self); |
2262 } | 2264 } |
2300 | 2302 |
2301 if (_ConvertFromPyObject(item, &li->li_tv, lookup_dict) == -1) | 2303 if (_ConvertFromPyObject(item, &li->li_tv, lookup_dict) == -1) |
2302 { | 2304 { |
2303 Py_DECREF(item); | 2305 Py_DECREF(item); |
2304 Py_DECREF(iterator); | 2306 Py_DECREF(iterator); |
2305 listitem_free(li); | 2307 listitem_free(l, li); |
2306 return -1; | 2308 return -1; |
2307 } | 2309 } |
2308 | 2310 |
2309 Py_DECREF(item); | 2311 Py_DECREF(item); |
2310 | 2312 |
2660 PyMem_Free(lis); | 2662 PyMem_Free(lis); |
2661 return -1; | 2663 return -1; |
2662 } | 2664 } |
2663 | 2665 |
2664 for (i = 0; i < numreplaced; i++) | 2666 for (i = 0; i < numreplaced; i++) |
2665 listitem_free(lis[i]); | 2667 listitem_free(l, lis[i]); |
2666 if (step == 1) | 2668 if (step == 1) |
2667 for (i = numreplaced; i < slicelen; i++) | 2669 for (i = numreplaced; i < slicelen; i++) |
2668 listitem_remove(l, lis[i]); | 2670 listitem_remove(l, lis[i]); |
2669 | 2671 |
2670 PyMem_Free(lis); | 2672 PyMem_Free(lis); |
2820 { | 2822 { |
2821 PyErr_NoMemory(); | 2823 PyErr_NoMemory(); |
2822 return NULL; | 2824 return NULL; |
2823 } | 2825 } |
2824 | 2826 |
2827 range_list_materialize(l); | |
2825 list_add_watch(l, &lii->lw); | 2828 list_add_watch(l, &lii->lw); |
2826 lii->lw.lw_item = l->lv_first; | 2829 lii->lw.lw_item = l->lv_first; |
2827 lii->list = l; | 2830 lii->list = l; |
2828 | 2831 |
2829 return IterNew(lii, | 2832 return IterNew(lii, |
3016 { | 3019 { |
3017 dict_unref(selfdict); | 3020 dict_unref(selfdict); |
3018 return NULL; | 3021 return NULL; |
3019 } | 3022 } |
3020 argslist = argstv.vval.v_list; | 3023 argslist = argstv.vval.v_list; |
3024 range_list_materialize(argslist); | |
3021 | 3025 |
3022 argc = argslist->lv_len; | 3026 argc = argslist->lv_len; |
3023 if (argc != 0) | 3027 if (argc != 0) |
3024 { | 3028 { |
3025 argv = PyMem_New(typval_T, (size_t) argc); | 3029 argv = PyMem_New(typval_T, (size_t) argc); |
6384 case VAR_BLOB: | 6388 case VAR_BLOB: |
6385 return PyBytes_FromStringAndSize( | 6389 return PyBytes_FromStringAndSize( |
6386 (char*) tv->vval.v_blob->bv_ga.ga_data, | 6390 (char*) tv->vval.v_blob->bv_ga.ga_data, |
6387 (Py_ssize_t) tv->vval.v_blob->bv_ga.ga_len); | 6391 (Py_ssize_t) tv->vval.v_blob->bv_ga.ga_len); |
6388 case VAR_UNKNOWN: | 6392 case VAR_UNKNOWN: |
6393 case VAR_VOID: | |
6389 case VAR_CHANNEL: | 6394 case VAR_CHANNEL: |
6390 case VAR_JOB: | 6395 case VAR_JOB: |
6391 Py_INCREF(Py_None); | 6396 Py_INCREF(Py_None); |
6392 return Py_None; | 6397 return Py_None; |
6393 case VAR_BOOL: | 6398 case VAR_BOOL: |