{"push_id":1563091824,"size":6,"distinct_size":1,"ref":"refs/heads/tweaks","head":"6daf722f198ff8f8c1905d5f69c3c9031547a35b","before":"4d7467974d96d6a22f6c1bb9f525317b386fe6ce","commits":[{"sha":"1050723fecc0e27677c39fadbb97cb892dfd27d2","author":{"name":"David Mitchell","email":"79caf591e37e1438a2d55ae59670d5cd0d717764@iabyn.com"},"message":"avoid a leak in list assign from/to magic values\n\nRT #130766\n\nA leak in list assignment was introduced by v5.23.6-89-gbeb08a1 and\nextended with v5.23.6-90-g5c1db56.\n\nBasically the code in S_aassign_copy_common() which does a mark-and-sweep\nlooking for common vars by temporarily setting SVf_BREAK on LHS SVs then\nseeing if that flag was present on RHS vars, very temporarily removed that\nflag from the RHS SV while mortal copying it, then set it again. After\nthose two commits, the \"resetting\" code could set SVf_BREAK on the RHS SV\neven when it hadn't been been present earlier.\n\nThis meant that on exit from S_aassign_copy_common(), some SVs could be\nleft with SVf_BREAK on. When that SV was freed, the SVf_BREAK flag meant\nthat the SV head wasn't planted back in the arena (but PL_sv_count was\nstill decremented). This could lead to slow growth of the SV HEAD arenas.\n\nThe two circumstances that could trigger the leak were:\n\n1) An SMG var on the LHS and a temporary on the RHS, e.g.\n\n    use Tie::Scalar;\n    my ($s, $t);\n    tie $s, 'Tie::StdScalar'; # $s has set magic\n    while (1) {\n        ($s, $t) = ($t, map 1, 1, 2); # the map returns temporaries\n    }\n\n2) A temporary on the RHS which has GMG, e.g.\n\n    my $s = \"abc\";\n    pos($s) = 1;\n    local our ($x, $y);\n    while (1) {\n        my $pr = \\pos($s); # creates a ref to a TEMP with get magic\n        ($x, $y) = (1, $$pr);\n    }\n\nStrictly speaking a TEMP isn't required for either case; just a situation\nwhere there's always a fresh SV on the RHS for each iteration that will\nsoon get freed and thus leaked.\n\nThis commit doesn't include any tests since I can't think of a way of\ntesting it. svleak.t relies on PL_sv_count, which in this case doesn't\nshow the leak.","distinct":false,"url":"https://api.github.com/repos/petdance/perl5/commits/1050723fecc0e27677c39fadbb97cb892dfd27d2"},{"sha":"825fcd837448d97aa5d54b90e403d99301e7b013","author":{"name":"Karl Williamson","email":"2feb030871c150b01b91007f61aaa19bb91d66bd@cpan.org"},"message":"regexec.c: Fix comment typos","distinct":false,"url":"https://api.github.com/repos/petdance/perl5/commits/825fcd837448d97aa5d54b90e403d99301e7b013"},{"sha":"b4d001fde3d39646afbde8374bba5afff832e056","author":{"name":"jdhedden","email":"27fa2d912a3c14513618d8fb42d7a523c9a715d1@cpan.org"},"message":"Upgrade to Thread::Queue 3.12","distinct":false,"url":"https://api.github.com/repos/petdance/perl5/commits/b4d001fde3d39646afbde8374bba5afff832e056"},{"sha":"c3d9aeb96afe725795daceaf39f6b133c0593328","author":{"name":"Andreas Koenig","email":"0ddec2d7e784f56fe0bd4fe295b4b53464af379c@dubravka.in-berlin.de"},"message":"Updates CPAN.pm to ANDK/CPAN-2.17-TRIAL2.tar.gz","distinct":false,"url":"https://api.github.com/repos/petdance/perl5/commits/c3d9aeb96afe725795daceaf39f6b133c0593328"},{"sha":"2fed6d1b7f71560fd43afceb0f6ba3ba351f6805","author":{"name":"Andy Lester","email":"3b57b84c25fafa432787cb19a4e06e8a6bd56948@petdance.com"},"message":"Merge branch 'blead' of git://perl5.git.perl.org/perl into blead","distinct":false,"url":"https://api.github.com/repos/petdance/perl5/commits/2fed6d1b7f71560fd43afceb0f6ba3ba351f6805"},{"sha":"6daf722f198ff8f8c1905d5f69c3c9031547a35b","author":{"name":"Andy Lester","email":"3b57b84c25fafa432787cb19a4e06e8a6bd56948@petdance.com"},"message":"Merge branch 'blead' into tweaks","distinct":true,"url":"https://api.github.com/repos/petdance/perl5/commits/6daf722f198ff8f8c1905d5f69c3c9031547a35b"}]}
{"actor":{"display_login":"petdance"}}