# HG changeset patch # User Bram Moolenaar # Date 1346864088 -7200 # Node ID a2f61b2b8e770bb8d233ce50c8c7508508578a8b # Parent 3ca71275f3640896d20fd19955229dc7c7783b9d updated for version 7.3.656 Problem: Internal error in :pyeval. Solution: Handle failed object conversion. (ZyX) diff --git a/src/if_python.c b/src/if_python.c --- a/src/if_python.c +++ b/src/if_python.c @@ -1025,8 +1025,8 @@ static int CurrentSetattr(PyObject *, ch static PySequenceMethods BufferAsSeq = { (PyInquiry) BufferLength, /* sq_length, len(x) */ - (binaryfunc) 0, /* BufferConcat, */ /* sq_concat, x+y */ - (PyIntArgFunc) 0, /* BufferRepeat, */ /* sq_repeat, x*n */ + (binaryfunc) 0, /* BufferConcat, sq_concat, x+y */ + (PyIntArgFunc) 0, /* BufferRepeat, sq_repeat, x*n */ (PyIntArgFunc) BufferItem, /* sq_item, x[i] */ (PyIntIntArgFunc) BufferSlice, /* sq_slice, x[i:j] */ (PyIntObjArgProc) BufferAssItem, /* sq_ass_item, x[i]=v */ @@ -1787,6 +1787,10 @@ do_pyeval (char_u *str, typval_T *rettv) case VAR_DICT: ++rettv->vval.v_dict->dv_refcount; break; case VAR_LIST: ++rettv->vval.v_list->lv_refcount; break; case VAR_FUNC: func_ref(rettv->vval.v_string); break; + case VAR_UNKNOWN: + rettv->v_type = VAR_NUMBER; + rettv->vval.v_number = 0; + break; } } diff --git a/src/if_python3.c b/src/if_python3.c --- a/src/if_python3.c +++ b/src/if_python3.c @@ -1817,6 +1817,10 @@ do_py3eval (char_u *str, typval_T *rettv case VAR_DICT: ++rettv->vval.v_dict->dv_refcount; break; case VAR_LIST: ++rettv->vval.v_list->lv_refcount; break; case VAR_FUNC: func_ref(rettv->vval.v_string); break; + case VAR_UNKNOWN: + rettv->v_type = VAR_NUMBER; + rettv->vval.v_number = 0; + break; } } diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -720,6 +720,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 656, +/**/ 655, /**/ 654,