make sure get_method_map always returns a map (might be a dumb fudge)
Yuval Kogman [Thu, 14 Aug 2008 15:05:37 +0000 (15:05 +0000)]
lib/Class/MOP/Class.pm

index 2ac726e..e8cf77f 100644 (file)
@@ -314,12 +314,12 @@ sub get_method_map {
     my $current = Class::MOP::check_package_cache_flag($self->name);
 
     if (defined $self->{'_package_cache_flag'} && $self->{'_package_cache_flag'} == $current) {
-        return $self->{'methods'};
+        return $self->{'methods'} ||= {};
     }
 
     $self->{_package_cache_flag} = $current;
 
-    my $map  = $self->{'methods'};
+    my $map  = $self->{'methods'} ||= {};
 
     my $class_name       = $self->name;
     my $method_metaclass = $self->method_metaclass;