ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Array-Heap/Heap.xs
(Generate patch)

Comparing Array-Heap/Heap.xs (file contents):
Revision 1.8 by root, Tue Jul 14 23:28:10 2015 UTC vs.
Revision 1.9 by root, Wed Dec 7 12:06:35 2016 UTC

62{ 62{
63 if (SvROK (sv) && SvTYPE (SvRV (sv)) == SVt_PVAV) 63 if (SvROK (sv) && SvTYPE (SvRV (sv)) == SVt_PVAV)
64 { 64 {
65 AV *av = (AV *)SvRV (sv); 65 AV *av = (AV *)SvRV (sv);
66 66
67 sv = AvFILLp (av) < 0 ? &PL_sv_undef : AvARRAY (av)[0]; 67 sv = AvFILLp (av) < 0 || !AvARRAY (sv)[0]
68 ? &PL_sv_undef : AvARRAY (av)[0];
68 } 69 }
69 70
70 return sv; 71 return sv;
71} 72}
72 73
79 sv = SvRV (sv); 80 sv = SvRV (sv);
80 81
81 if (SvTYPE (sv) != SVt_PVAV) 82 if (SvTYPE (sv) != SVt_PVAV)
82 return; 83 return;
83 84
85 if (
86 AvFILL ((AV *)sv) < 1
87 || AvARRAY ((AV *)sv)[1] == 0
84 if (AvFILL ((AV *)sv) < 1 || AvARRAY ((AV *)sv)[1] == &PL_sv_undef) 88 || AvARRAY ((AV *)sv)[1] == &PL_sv_undef)
85 av_store ((AV *)sv, 1, newSViv (idx)); 89 av_store ((AV *)sv, 1, newSViv (idx));
86 else 90 else
87 { 91 {
88 sv = AvARRAY ((AV *)sv)[1]; 92 sv = AvARRAY ((AV *)sv)[1];
89 93

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines