More robust tests for threads
[gitmo/Mouse.git] / lib / Mouse / PurePerl.pm
index f51b4c2..1f77bf0 100644 (file)
@@ -18,15 +18,20 @@ sub is_class_loaded {
     return 0 if ref($class) || !defined($class) || !length($class);
 
     # walk the symbol table tree to avoid autovififying
-    # \*{${main::}{"Foo::"}} == \*main::Foo::
+    # \*{${main::}{"Foo::"}{"Bar::"}} == \*main::Foo::Bar::
 
     my $pack = \%::;
     foreach my $part (split('::', $class)) {
-        my $entry = \$pack->{$part . '::'};
+        $part .= '::';
+        return 0 if !exists $pack->{$part};
+
+        my $entry = \$pack->{$part};
         return 0 if ref($entry) ne 'GLOB';
-        $pack = *{$entry}{HASH} or return 0;
+        $pack = *{$entry}{HASH};
     }
 
+    return 0 if !%{$pack};
+
     # check for $VERSION or @ISA
     return 1 if exists $pack->{VERSION}
              && defined *{$pack->{VERSION}}{SCALAR} && defined ${ $pack->{VERSION} };
@@ -199,7 +204,6 @@ sub add_method {
     return;
 }
 
-
 package
     Mouse::Meta::Class;
 
@@ -492,7 +496,7 @@ Mouse::PurePerl - A Mouse guts in pure Perl
 
 =head1 VERSION
 
-This document describes Mouse version 0.40_08
+This document describes Mouse version 0.43
 
 =head1 SEE ALSO