Further ClassData cleanups
Dagfinn Ilmari Mannsåker [Mon, 23 Jan 2017 18:08:03 +0000 (18:08 +0000)]
- Use Moose::Meta::Class->initialize consistently
- Call Class::MOP::get_metaclass_by_name directly
  instead of via Moose::Util::find_meta, avoiding
  unnecessary indirection and edge case handling.

lib/Catalyst/ClassData.pm

index e8cb26c..f5f554a 100644 (file)
@@ -12,7 +12,7 @@ sub mk_classdata {
 
   my $accessor =  sub {
     my $pkg = ref $_[0] || $_[0];
-    my $meta = Moose::Util::find_meta($pkg)
+    my $meta = Class::MOP::get_metaclass_by_name($pkg)
         || Moose::Meta::Class->initialize( $pkg );
     if (@_ > 1) {
       $meta->namespace->{$attribute} = \$_[1];
@@ -40,7 +40,7 @@ sub mk_classdata {
     return;
   };
 
-  my $meta = $class->Class::MOP::Object::meta();
+  my $meta = Moose::Meta::Class->initialize($class);
   confess "${class}'s metaclass is not a Class::MOP::Class"
     unless $meta->isa('Class::MOP::Class');