To: vim_dev@googlegroups.com Subject: Patch 7.4.1849 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.1848 Problem: Can't build with Strawberry Perl 5.24. Solution: Define S_SvREFCNT_dec() if needed. (Damien, Ken Takata) Files: src/if_perl.xs *** ../vim-7.4.1847/src/if_perl.xs 2016-04-15 21:16:07.780407822 +0200 --- src/if_perl.xs 2016-05-26 22:01:12.668608119 +0200 *************** *** 299,304 **** --- 299,307 ---- # define PerlIOBase_pushed dll_PerlIOBase_pushed # define PerlIO_define_layer dll_PerlIO_define_layer # endif + # if (PERL_REVISION == 5) && (PERL_VERSION >= 24) + # define Perl_savetmps dll_Perl_savetmps + # endif /* * Declare HANDLE for perl.dll and function pointers. *************** *** 455,460 **** --- 458,466 ---- static IV (*PerlIOBase_pushed)(pTHX_ PerlIO *, const char *, SV *, PerlIO_funcs *); static void (*PerlIO_define_layer)(pTHX_ PerlIO_funcs *); #endif + #if (PERL_REVISION == 5) && (PERL_VERSION >= 24) + static void (*Perl_savetmps)(pTHX); + #endif /* * Table of name to function pointer of perl. *************** *** 598,614 **** {"PerlIOBase_pushed", (PERL_PROC*)&PerlIOBase_pushed}, {"PerlIO_define_layer", (PERL_PROC*)&PerlIO_define_layer}, #endif {"", NULL}, }; /* Work around for perl-5.18. ! * The definitions of S_SvREFCNT_inc and S_SvREFCNT_dec are needed, so include ! * "perl\lib\CORE\inline.h", after Perl_sv_free2 is defined. ! * The linker won't complain about undefined __impl_Perl_sv_free2. */ #if (PERL_REVISION == 5) && (PERL_VERSION >= 18) ! # define PL_memory_wrap "panic: memory wrap" /* Dummy */ ! # include ! # undef PL_memory_wrap #endif /* --- 604,630 ---- {"PerlIOBase_pushed", (PERL_PROC*)&PerlIOBase_pushed}, {"PerlIO_define_layer", (PERL_PROC*)&PerlIO_define_layer}, #endif + #if (PERL_REVISION == 5) && (PERL_VERSION >= 24) + {"Perl_savetmps", (PERL_PROC*)&Perl_savetmps}, + #endif {"", NULL}, }; /* Work around for perl-5.18. ! * For now, only the definitions of S_SvREFCNT_dec are needed in ! * "perl\lib\CORE\inline.h". */ #if (PERL_REVISION == 5) && (PERL_VERSION >= 18) ! static void ! S_SvREFCNT_dec(pTHX_ SV *sv) ! { ! if (LIKELY(sv != NULL)) { ! U32 rc = SvREFCNT(sv); ! if (LIKELY(rc > 1)) ! SvREFCNT(sv) = rc - 1; ! else ! Perl_sv_free2(aTHX_ sv, rc); ! } ! } #endif /* *************** *** 777,783 **** sv_setiv(ptr->w_perl_private, PTR2IV(ptr)); } else ! SvREFCNT_inc(ptr->w_perl_private); SvRV(rv) = ptr->w_perl_private; SvROK_on(rv); return sv_bless(rv, gv_stashpv("VIWIN", TRUE)); --- 793,799 ---- sv_setiv(ptr->w_perl_private, PTR2IV(ptr)); } else ! SvREFCNT_inc_void_NN(ptr->w_perl_private); SvRV(rv) = ptr->w_perl_private; SvROK_on(rv); return sv_bless(rv, gv_stashpv("VIWIN", TRUE)); *************** *** 793,799 **** sv_setiv(ptr->b_perl_private, PTR2IV(ptr)); } else ! SvREFCNT_inc(ptr->b_perl_private); SvRV(rv) = ptr->b_perl_private; SvROK_on(rv); return sv_bless(rv, gv_stashpv("VIBUF", TRUE)); --- 809,815 ---- sv_setiv(ptr->b_perl_private, PTR2IV(ptr)); } else ! SvREFCNT_inc_void_NN(ptr->b_perl_private); SvRV(rv) = ptr->b_perl_private; SvROK_on(rv); return sv_bless(rv, gv_stashpv("VIBUF", TRUE)); *** ../vim-7.4.1847/src/version.c 2016-05-25 22:51:13.385755343 +0200 --- src/version.c 2016-05-26 22:01:43.012607701 +0200 *************** *** 755,756 **** --- 755,758 ---- { /* Add new patch number below this line */ + /**/ + 1848, /**/ -- hundred-and-one symptoms of being an internet addict: 18. Your wife drapes a blond wig over your monitor to remind you of what she looks like. /// 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 ///