From 726b25528863ecd25f62f488b41bc984b842458c Mon Sep 17 00:00:00 2001 From: Sean Dewar Date: Thu, 29 Jul 2021 21:06:12 +0100 Subject: vim-patch:8.1.1671: copying a blob may result in it being locked Problem: Copying a blob may result in it being locked. Solution: Reset v_lock. (Ken Takata, closes vim/vim#4648) https://github.com/vim/vim/commit/b7b9efbccfe17ee3f7b1bb877b7745d5bfbf0804 --- src/nvim/eval/typval.c | 1 + src/nvim/testdir/test_blob.vim | 4 ++++ 2 files changed, 5 insertions(+) (limited to 'src') diff --git a/src/nvim/eval/typval.c b/src/nvim/eval/typval.c index 5b416dfa7d..d983ce14b5 100644 --- a/src/nvim/eval/typval.c +++ b/src/nvim/eval/typval.c @@ -2262,6 +2262,7 @@ void tv_blob_copy(typval_T *const from, typval_T *const to) assert(from->v_type == VAR_BLOB); to->v_type = VAR_BLOB; + to->v_lock = VAR_UNLOCKED; if (from->vval.v_blob == NULL) { to->vval.v_blob = NULL; } else { diff --git a/src/nvim/testdir/test_blob.vim b/src/nvim/testdir/test_blob.vim index 1faa9af32c..575c757837 100644 --- a/src/nvim/testdir/test_blob.vim +++ b/src/nvim/testdir/test_blob.vim @@ -71,6 +71,10 @@ func Test_blob_assign() call assert_fails('let b .= "xx"', 'E734:') call assert_fails('let b += "xx"', 'E734:') call assert_fails('let b[1:1] .= 0z55', 'E734:') + + let l = [0z12] + let m = deepcopy(l) + let m[0] = 0z34 " E742 or E741 should not occur. endfunc func Test_blob_get_range() -- cgit