]> git.vpit.fr Git - perl/modules/Scope-Upper.git/commitdiff
Fix breakage caused by core change f14cf363 rt129539
authorVincent Pit <vpit@cpan.org>
Mon, 8 Jul 2019 12:34:18 +0000 (14:34 +0200)
committerVincent Pit <vpit@cpan.org>
Mon, 8 Jul 2019 12:34:34 +0000 (14:34 +0200)
This fixes [RT #129539].

Upper.xs

index 5ab20400e118d518ed4e7b53b062af5566839f52..0c762de1dcb947d420bd265d01231d8cec433d7e 100644 (file)
--- a/Upper.xs
+++ b/Upper.xs
@@ -2022,12 +2022,17 @@ static int su_uplevel_runops_hook_entersub(pTHX) {
   */
  assert(sud);
  if (sud->argarray) {
+  I32 fill;
   AV *av = newAV();
   AvREAL_off(av);
   AvREIFY_on(av);
-  av_extend(av, AvMAX(sud->argarray));
-  AvFILLp(av) = AvFILLp(sud->argarray);
-  Copy(AvARRAY(sud->argarray), AvARRAY(av), AvFILLp(av) + 1, SV *);
+
+  fill = AvFILLp(sud->argarray);
+  if (fill >= 0) {
+   av_extend(av, fill);
+   Copy(AvARRAY(sud->argarray), AvARRAY(av), fill + 1, SV *);
+   AvFILLp(av) = fill;
+  }
 
   /* should be referenced by PL_curpad[0] and *_ */
   assert(SvREFCNT(PL_curpad[0]) > 1);