inject_base filters out double entries
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Componentised.pm
index a8a17c3..7e62354 100644 (file)
@@ -10,7 +10,11 @@ sub inject_base {
   my ($class, $target, @to_inject) = @_;
   {
     no strict 'refs';
-    unshift(@{"${target}::ISA"}, grep { $target ne $_ && !$target->isa($_)} @to_inject);
+    my %seen;
+    unshift( @{"${target}::ISA"},
+        grep { !$seen{ $_ }++ && $target ne $_ && !$target->isa($_) }
+            @to_inject
+    );
   }
 
   # Yes, this is hack. But it *does* work. Please don't submit tickets about