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 <inline.h>
! # 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 -- [email protected] -- 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 ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.