Add hash-based ISA lookup to RV of describe_class_methods
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / _Util.pm
index 1c9c4b0..37d4ad7 100644 (file)
@@ -734,13 +734,11 @@ sub modver_gt_or_eq_and_lt ($$$) {
 
     unless ( ($slot->{cumulative_gen}||0) == $my_gen ) {
 
-      # remove ourselves from ISA
-      shift @full_ISA;
-
       # reset
       %$slot = (
         class => $class,
-        isa => [
+        isa => { map { $_ => 1 } @full_ISA },
+        linear_isa => [
           @{ $mro_recursor_stack->{cache}{$stack_cache_key}{linear_isa} }
             [ 1 .. $#{$mro_recursor_stack->{cache}{$stack_cache_key}{linear_isa}} ]
         ],
@@ -751,6 +749,9 @@ sub modver_gt_or_eq_and_lt ($$$) {
         cumulative_gen => $my_gen,
       );
 
+      # remove ourselves from ISA
+      shift @full_ISA;
+
       # ensure the cache is populated for the parents, code below can then
       # efficiently operate over the query_cache directly
       describe_class_methods($_) for reverse @full_ISA;