summaryrefslogtreecommitdiffstats
path: root/src/testdir
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-03-20 19:49:20 +0100
committerChristian Brabandt <cb@256bit.org>2024-03-20 19:49:20 +0100
commit918b92b961ac319ddb5f24d8cade2cf6aeebc5d5 (patch)
treed4aeb2d902e505b61a425ef8d2f275d616c0132e /src/testdir
parent9f26e5a9bcedb3caef26e9d77849ea37a3626bbf (diff)
patch 9.1.0189: Memory leak with "above" virttext and 'relativenumber'v9.1.0189
Problem: Memory leak with "above" virtual text and 'relativenumber'. Solution: Free "text_props" and "text_prop_idxs" before returning. Also fix off-by-one error causing line number to be drawn beyond end of window (zeertzjq). fixes: #14239 closes: #14241 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/testdir')
-rw-r--r--src/testdir/dumps/Test_prop_above_below_empty_6.dump16
-rw-r--r--src/testdir/test_textprop.vim12
2 files changed, 28 insertions, 0 deletions
diff --git a/src/testdir/dumps/Test_prop_above_below_empty_6.dump b/src/testdir/dumps/Test_prop_above_below_empty_6.dump
new file mode 100644
index 0000000000..501364371c
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_above_below_empty_6.dump
@@ -0,0 +1,16 @@
+| +0#af5f00255#ffffff0@3|-+0#0000001#ffff4012| +0#0000000#ffffff0@54
+| +0#af5f00255&@1|1| |1+0#0000000&@7| @47
+| +0#af5f00255&@3|++0#0000001#ffff4012| +0#0000000#ffffff0@54
+| +0#af5f00255&@3|-+0#0000001#ffff4012| +0#0000000#ffffff0@54
+|2+0#af5f00255&| @2> +0#0000000&@55
+| +0#af5f00255&@3|++0#0000001#ffff4012| +0#0000000#ffffff0@54
+| +0#af5f00255&@3|-+0#0000001#ffff4012| +0#0000000#ffffff0@54
+| +0#af5f00255&@1|1| |3+0#0000000&@8| @46
+| +0#af5f00255&@3|++0#0000001#ffff4012| +0#0000000#ffffff0@54
+| +0#af5f00255&@3|-+0#0000001#ffff4012| +0#0000000#ffffff0@54
+| +0#af5f00255&@1|2| | +0#0000000&@55
+| +0#af5f00255&@3|++0#0000001#ffff4012| +0#0000000#ffffff0@54
+| +0#af5f00255&@3|-+0#0000001#ffff4012| +0#0000000#ffffff0@54
+| +0#af5f00255&@3|!+0#0000001#ffff4012| +0#0000000#ffffff0@54
+|@+0#4040ff13&@2| @56
+|:+0#0000000&|c|a|l@1| |A|d@1|M|o|r|e|(|)| @26|2|,|0|-|5|7| @7|T|o|p|
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index c88b5477a1..a06f733706 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -3080,6 +3080,12 @@ func Test_prop_with_text_above_below_empty()
call prop_add(ln, 0, {'type': vt, 'text': '+', 'text_align': 'below'})
endfor
normal G
+
+ func AddMore()
+ call prop_add(5, 0, {'type': g:vt, 'text': '!', 'text_align': 'above'})
+ call prop_add(5, 0, {'type': g:vt, 'text': '!', 'text_align': 'above'})
+ call prop_add(5, 0, {'type': g:vt, 'text': '!', 'text_align': 'above'})
+ endfunc
END
call writefile(lines, 'XscriptPropAboveBelowEmpty', 'D')
let buf = RunVimInTerminal('-S XscriptPropAboveBelowEmpty', #{rows: 16, cols: 60})
@@ -3101,6 +3107,12 @@ func Test_prop_with_text_above_below_empty()
call term_sendkeys(buf, "kk")
call VerifyScreenDump(buf, 'Test_prop_above_below_empty_5', {})
+ " This was drawing line number over cmdline and leaking memory.
+ call term_sendkeys(buf, ":call AddMore()\<CR>")
+ call term_sendkeys(buf, "gg")
+ call term_sendkeys(buf, "j")
+ call VerifyScreenDump(buf, 'Test_prop_above_below_empty_6', {})
+
call StopVimInTerminal(buf)
endfunc