Proper attribute support under ithreads (fix 7bd921c0)
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / AccessorGroup.pm
index 01a5559..7c6dece 100644 (file)
@@ -4,6 +4,8 @@ use strict;
 use warnings;
 
 use base qw/Class::Accessor::Grouped/;
+use mro 'c3';
+
 use Scalar::Util qw/weaken blessed/;
 use DBIx::Class::_Util 'fail_on_internal_call';
 use namespace::clean;
@@ -46,7 +48,11 @@ sub get_component_class {
 };
 
 sub set_component_class {
-  shift->set_inherited(@_);
+  $_[0]->set_inherited($_[1], $_[2]);
+
+  # trigger a load for the case of $foo->component_accessor("bar")->new
+  $_[0]->get_component_class($_[1])
+    if defined wantarray;
 }
 
 1;