X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse%2FUtil.pm;h=edecfa6e9434e1617bb108b9ba9d23382f6a15be;hb=bdef60b43281bb85a2a4bed85de0069ae3925068;hp=ebf6011095c0a22ce38688da60fb1ee9ee601c44;hpb=a4b15169d428989d2e901708effe21f3eaab23b5;p=gitmo%2FMouse.git diff --git a/lib/Mouse/Util.pm b/lib/Mouse/Util.pm index ebf6011..edecfa6 100644 --- a/lib/Mouse/Util.pm +++ b/lib/Mouse/Util.pm @@ -48,21 +48,18 @@ BEGIN{ }, ); + our $VERSION = '0.68'; - # Because Mouse::Util is loaded first in all the Mouse sub-modules, - # XS loader is placed here, not in Mouse.pm. - - our $VERSION = '0.50_08'; - - my $xs = !(exists $INC{'Mouse/PurePerl.pm'} || $ENV{MOUSE_PUREPERL}); + my $xs = !(defined(&is_valid_class_name) || $ENV{MOUSE_PUREPERL} || $ENV{PERL_ONLY}); + # Because Mouse::Util is loaded first in all the Mouse sub-modules, + # XSLoader must be placed here, not in Mouse.pm. if($xs){ # XXX: XSLoader tries to get the object path from caller's file name # $hack_mouse_file fools its mechanism - (my $hack_mouse_file = __FILE__) =~ s/.Util//; # .../Mouse/Util.pm -> .../Mouse.pm $xs = eval sprintf("#line %d %s\n", __LINE__, $hack_mouse_file) . q{ - local $^W = 0; # work around 'redefine' warning to &install_subroutines + local $^W = 0; # workaround 'redefine' warning to &install_subroutines require XSLoader; XSLoader::load('Mouse', $VERSION); Mouse::Util->import({ into => 'Mouse::Meta::Method::Constructor::XS' }, ':meta'); @@ -156,7 +153,7 @@ BEGIN { { package # hide from PAUSE Class::C3; - our %MRO; # work around 'once' warnings + our %MRO; # avoid 'once' warnings } # MRO::Compat::__get_linear_isa has no prototype, so @@ -244,7 +241,6 @@ sub load_first_existing_class { } # taken from Class/MOP.pm -my %is_class_loaded_cache; sub _try_load_one_class { my $class = shift; @@ -253,7 +249,7 @@ sub _try_load_one_class { Carp::confess "Invalid class name ($display)"; } - return undef if $is_class_loaded_cache{$class} ||= is_class_loaded($class); + return '' if is_class_loaded($class); $class =~ s{::}{/}g; $class .= '.pm'; @@ -366,7 +362,7 @@ Mouse::Util - Features, with or without their dependencies =head1 VERSION -This document describes Mouse version 0.50_08 +This document describes Mouse version 0.68 =head1 IMPLEMENTATIONS FOR