More global destruction fixes.
authorDave Rolsky <autarch@urth.org>
Wed, 13 May 2009 16:04:39 +0000 (11:04 -0500)
committerDave Rolsky <autarch@urth.org>
Wed, 13 May 2009 16:04:39 +0000 (11:04 -0500)
commit61c4a4cdc6a4902b02c90021070d98625e8fb7d6
tree4a9f705d6e7a46702029f0e314eaf2939dbfa789
parent6c3d0d07d42a474f10ffd284d5873e0666191018
More global destruction fixes.

The existing global destruction tests were not happy on Win32. This is
based on a patch from Robert Krimen, but is greatly simplified by
making sure the only test output we provide is from the .t file,
rather than mixing it between the .t and the helper script.

This also changes how we loop through the ancestors for a class in
DEMOLISH. I was seeing failures on 5.8.8 that happened when the
metaclass object had been garbage collected and we tried to make a new
one. Making a new one failed because the meta-attribute objects for
Moose::Meta::Class itself had also been garbage collected!

This is a hack to avoid the meta-API entirely during destruction.
lib/Moose/Object.pm
t/010_basics/020-global-destruction-helper.pl [new file with mode: 0644]
t/010_basics/020-global-destruction.t