fix for [perl #72604] @DB::args and win32 fork
authorDavid Mitchell <davem@iabyn.com>
Sun, 28 Feb 2010 15:13:33 +0000 (15:13 +0000)
committerDavid Mitchell <davem@iabyn.com>
Sun, 28 Feb 2010 15:13:33 +0000 (15:13 +0000)
commita1f97a07fa8362ead50c8cd62c4ed6bb0066574f
tree21b9cb8a82f94ca65faca892d025781757b01c2a
parent490aa361e2910b6b451cc8bceccd93efa8fbed11
fix for [perl #72604] @DB::args and win32 fork

A previous fix for [perl #66108] (7fa38291524c327a3cb23bfe94979e1537743cac)
stopped cloning PL_dbargs, on the grounds that it was usually filled with
garbage (it contains an un-refcounted copy of @_'s elements; once the
function has returned, these may have been freed or reassigned). However,
the fix instead recreated PL_dbargs as a new empty AV that *wasn't* then
associated with the DB::args glob; so modifications to PL_dbargs weren't
seen via @DB::args.

The fix is to simply set it to null when cloning; pp_caller() will
recreate it again if necessary when it is needed.
sv.c
t/op/fork.t