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: