recalculating the method map updates the cache flag
Yuval Kogman [Sun, 10 Aug 2008 19:08:15 +0000 (19:08 +0000)]
lib/Moose/Meta/Class.pm

index 93b37ee..dcc2e09 100644 (file)
@@ -169,11 +169,14 @@ sub construct_instance {
 sub get_method_map {
     my $self = shift;
 
-    if (defined $self->{'_package_cache_flag'} &&
-                $self->{'_package_cache_flag'} == Class::MOP::check_package_cache_flag($self->meta->name)) {
+    my $current = Class::MOP::check_package_cache_flag($self->name);
+
+    if (defined $self->{'_package_cache_flag'} && $self->{'_package_cache_flag'} == $current) {
         return $self->{'methods'};
     }
 
+    $self->{_package_cache_flag} = $current;
+
     my $map  = $self->{'methods'};
 
     my $class_name       = $self->name;