sv_dup(): avoid cloning empty arrays
authorkevin brintnall <kbrint@rufus.net>
Thu, 25 Dec 2008 02:59:15 +0000 (20:59 -0600)
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>
Fri, 26 Dec 2008 22:43:35 +0000 (23:43 +0100)
commit2779b694b3fbb69a13c300a6e239e050151abf6d
treeb9afb365d2f161d679ce56d9d038425f340e230f
parentf08e0584288c021de71ecd212ba86a45c8f96a5b
sv_dup(): avoid cloning empty arrays

Testing the ARRAY pointer is insufficent.  Arrays emptied by 'shift' or
'pop' may still have non-NULL 'ARRAY' pointers.  Check more carefully to
determine whether the array has anything worth duplicating.  If not, reset
the FILL and MAX offsets to -1 just as 'undef @ARRAY' would.

This avoids potential corruption in the PL_ptr_table during perl_clone().
sv.c