summaryrefslogtreecommitdiffstats
path: root/src/if_py_both.h
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-01-26 15:56:19 +0100
committerBram Moolenaar <Bram@vim.org>2020-01-26 15:56:19 +0100
commit8a7d6542b33e5d2b352262305c3bfdb2d14e1cf8 (patch)
tree8e5f241129a1c690ea81d697a72fb4c1704c0cb6 /src/if_py_both.h
parent1d9215b9aaa120b9d78fee49488556f73007ce78 (diff)
patch 8.2.0149: maintaining a Vim9 branch separately is more workv8.2.0149
Problem: Maintaining a Vim9 branch separately is more work. Solution: Merge the Vim9 script changes.
Diffstat (limited to 'src/if_py_both.h')
-rw-r--r--src/if_py_both.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/if_py_both.h b/src/if_py_both.h
index af4b98dd06..45bfeec593 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -785,6 +785,7 @@ VimToPython(typval_T *our_tv, int depth, PyObject *lookup_dict)
return NULL;
}
+ range_list_materialize(list);
for (curr = list->lv_first; curr != NULL; curr = curr->li_next)
{
if (!(newObj = VimToPython(&curr->li_tv, depth + 1, lookup_dict)))
@@ -2255,6 +2256,7 @@ ListNew(PyTypeObject *subtype, list_T *list)
return NULL;
self->list = list;
++list->lv_refcount;
+ range_list_materialize(list);
pyll_add((PyObject *)(self), &self->ref, &lastlist);
@@ -2302,7 +2304,7 @@ list_py_concat(list_T *l, PyObject *obj, PyObject *lookup_dict)
{
Py_DECREF(item);
Py_DECREF(iterator);
- listitem_free(li);
+ listitem_free(l, li);
return -1;
}
@@ -2662,7 +2664,7 @@ ListAssSlice(ListObject *self, Py_ssize_t first,
}
for (i = 0; i < numreplaced; i++)
- listitem_free(lis[i]);
+ listitem_free(l, lis[i]);
if (step == 1)
for (i = numreplaced; i < slicelen; i++)
listitem_remove(l, lis[i]);
@@ -2822,6 +2824,7 @@ ListIter(ListObject *self)
return NULL;
}
+ range_list_materialize(l);
list_add_watch(l, &lii->lw);
lii->lw.lw_item = l->lv_first;
lii->list = l;
@@ -3018,6 +3021,7 @@ FunctionConstructor(PyTypeObject *subtype, PyObject *args, PyObject *kwargs)
return NULL;
}
argslist = argstv.vval.v_list;
+ range_list_materialize(argslist);
argc = argslist->lv_len;
if (argc != 0)
@@ -6386,6 +6390,7 @@ ConvertToPyObject(typval_T *tv)
(char*) tv->vval.v_blob->bv_ga.ga_data,
(Py_ssize_t) tv->vval.v_blob->bv_ga.ga_len);
case VAR_UNKNOWN:
+ case VAR_VOID:
case VAR_CHANNEL:
case VAR_JOB:
Py_INCREF(Py_None);