summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0190
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0190')
-rw-r--r--data/vim/patches/8.1.0190269
1 files changed, 0 insertions, 269 deletions
diff --git a/data/vim/patches/8.1.0190 b/data/vim/patches/8.1.0190
deleted file mode 100644
index 36f52ad9b..000000000
--- a/data/vim/patches/8.1.0190
+++ /dev/null
@@ -1,269 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 8.1.0190
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 8.1.0190
-Problem: Perl refcounts are wrong.
-Solution: Improve refcounting. Add a test. (Damien)
-Files: src/if_perl.xs, src/testdir/test_perl.vim
-
-
-*** ../vim-8.1.0189/src/if_perl.xs 2018-07-08 17:18:58.416462371 +0200
---- src/if_perl.xs 2018-07-16 17:34:41.750473682 +0200
-***************
-*** 845,850 ****
---- 845,858 ----
- return sv_bless(rv, gv_stashpv("VIBUF", TRUE));
- }
-
-+ #if 0
-+ SV *__sv_save[1024];
-+ int __sv_save_ix;
-+ # define D_Save_Sv(sv) do { if (__sv_save_ix < 1024) __sv_save[__sv_save_ix++] = (sv); } while (0)
-+ #else
-+ # define D_Save_Sv(sv) NOOP
-+ #endif
-+
- /*
- * perl_win_free
- * Remove all references to the window to be destroyed
-***************
-*** 852,868 ****
- void
- perl_win_free(win_T *wp)
- {
-! if (wp->w_perl_private)
-! sv_setiv((SV *)wp->w_perl_private, 0);
-! return;
- }
-
- void
- perl_buf_free(buf_T *bp)
- {
-! if (bp->b_perl_private)
-! sv_setiv((SV *)bp->b_perl_private, 0);
-! return;
- }
-
- #ifndef PROTO
---- 860,886 ----
- void
- perl_win_free(win_T *wp)
- {
-! if (wp->w_perl_private && perl_interp != NULL)
-! {
-! SV *sv = (SV*)wp->w_perl_private;
-! D_Save_Sv(sv);
-! sv_setiv(sv, 0);
-! SvREFCNT_dec(sv);
-! }
-! wp->w_perl_private = NULL;
- }
-
- void
- perl_buf_free(buf_T *bp)
- {
-! if (bp->b_perl_private && perl_interp != NULL)
-! {
-! SV *sv = (SV *)bp->b_perl_private;
-! D_Save_Sv(sv);
-! sv_setiv(sv, 0);
-! SvREFCNT_dec(sv);
-! }
-! bp->b_perl_private = NULL;
- }
-
- #ifndef PROTO
-***************
-*** 885,896 ****
- # endif
- {
- SV *rv;
- if (iv == 0)
- rv = newWINrv(newSV(0), curwin);
- else
- rv = newBUFrv(newSV(0), curbuf);
-! sv_setsv(sv, rv);
-! SvREFCNT_dec(SvRV(rv));
- return 0;
- }
- #endif /* !PROTO */
---- 903,921 ----
- # endif
- {
- SV *rv;
-+
- if (iv == 0)
- rv = newWINrv(newSV(0), curwin);
- else
- rv = newBUFrv(newSV(0), curbuf);
-!
-! if (SvRV(sv) == SvRV(rv))
-! SvREFCNT_dec(SvRV(rv));
-! else /* XXX: Not sure if the `else` condition are right
-! * Test_SvREFCNT() pass in all case.
-! */
-! sv_setsv(sv, rv);
-!
- return 0;
- }
- #endif /* !PROTO */
-***************
-*** 1539,1545 ****
- else
- {
- FOR_ALL_BUFFERS(vimbuf)
-! XPUSHs(newBUFrv(newSV(0), vimbuf));
- }
- }
- else
---- 1564,1570 ----
- else
- {
- FOR_ALL_BUFFERS(vimbuf)
-! XPUSHs(sv_2mortal(newBUFrv(newSV(0), vimbuf)));
- }
- }
- else
-***************
-*** 1564,1570 ****
- {
- vimbuf = buflist_findnr(b);
- if (vimbuf)
-! XPUSHs(newBUFrv(newSV(0), vimbuf));
- }
- }
- }
---- 1589,1595 ----
- {
- vimbuf = buflist_findnr(b);
- if (vimbuf)
-! XPUSHs(sv_2mortal(newBUFrv(newSV(0), vimbuf)));
- }
- }
- }
-***************
-*** 1584,1590 ****
- else
- {
- FOR_ALL_WINDOWS(vimwin)
-! XPUSHs(newWINrv(newSV(0), vimwin));
- }
- }
- else
---- 1609,1615 ----
- else
- {
- FOR_ALL_WINDOWS(vimwin)
-! XPUSHs(sv_2mortal(newWINrv(newSV(0), vimwin)));
- }
- }
- else
-***************
-*** 1594,1600 ****
- w = (int) SvIV(ST(i));
- vimwin = win_find_nr(w);
- if (vimwin)
-! XPUSHs(newWINrv(newSV(0), vimwin));
- }
- }
-
---- 1619,1625 ----
- w = (int) SvIV(ST(i));
- vimwin = win_find_nr(w);
- if (vimwin)
-! XPUSHs(sv_2mortal(newWINrv(newSV(0), vimwin)));
- }
- }
-
-*** ../vim-8.1.0189/src/testdir/test_perl.vim 2017-03-18 19:45:55.000000000 +0100
---- src/testdir/test_perl.vim 2018-07-16 17:34:41.754473657 +0200
-***************
-*** 219,238 ****
- call assert_equal(['&VIM::Msg', 'STDOUT', 'STDERR'], split(l:out, "\n"))
- endfunc
-
-! func Test_SvREFCNT()
- new t
- perl <<--perl
- my ($b, $w);
-! $b = $curbuf for 0 .. 10;
-! $w = $curwin for 0 .. 10;
- VIM::DoCommand('bw! t');
- if (exists &Internals::SvREFCNT) {
- my $cb = Internals::SvREFCNT($$b);
- my $cw = Internals::SvREFCNT($$w);
-! VIM::Eval("assert_equal(2, $cb)");
-! VIM::Eval("assert_equal(2, $cw)");
- }
- VIM::Eval("assert_false($$b)");
- VIM::Eval("assert_false($$w)");
- --perl
- endfunc
---- 219,260 ----
- call assert_equal(['&VIM::Msg', 'STDOUT', 'STDERR'], split(l:out, "\n"))
- endfunc
-
-! " Run first to get a clean namespace
-! func Test_000_SvREFCNT()
-! for i in range(10)
-! exec 'new X'.i
-! endfor
- new t
- perl <<--perl
-+ #line 5 "Test_000_SvREFCNT()"
- my ($b, $w);
-!
-! $b = $curbuf for 0 .. 100;
-! $w = $curwin for 0 .. 100;
-! () = VIM::Buffers for 0 .. 100;
-! () = VIM::Windows for 0 .. 100;
-!
- VIM::DoCommand('bw! t');
- if (exists &Internals::SvREFCNT) {
- my $cb = Internals::SvREFCNT($$b);
- my $cw = Internals::SvREFCNT($$w);
-! VIM::Eval("assert_equal(2, $cb, 'T1')");
-! VIM::Eval("assert_equal(2, $cw, 'T2')");
-! foreach ( VIM::Buffers, VIM::Windows ) {
-! my $c = Internals::SvREFCNT($_);
-! VIM::Eval("assert_equal(2, $c, 'T3')");
-! $c = Internals::SvREFCNT($$_);
-! # Why only one ref?
-! # Look wrong but work. Maybe not portable...
-! VIM::Eval("assert_equal(1, $c, 'T4')");
-! }
-! $cb = Internals::SvREFCNT($$curbuf);
-! $cw = Internals::SvREFCNT($$curwin);
-! VIM::Eval("assert_equal(3, $cb, 'T5')");
-! VIM::Eval("assert_equal(3, $cw, 'T6')");
- }
- VIM::Eval("assert_false($$b)");
- VIM::Eval("assert_false($$w)");
- --perl
-+ %bw!
- endfunc
-*** ../vim-8.1.0189/src/version.c 2018-07-15 20:26:37.418459878 +0200
---- src/version.c 2018-07-16 17:37:41.017344049 +0200
-***************
-*** 791,792 ****
---- 791,794 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 190,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-255. You work for a newspaper and your editor asks you to write an
- article about Internet addiction...in the "first person."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///