Version 0.11.
[gitmo/MRO-Compat.git] / lib / MRO / Compat.pm
index 004b216..4945fbc 100644 (file)
@@ -5,7 +5,7 @@ require 5.006_000;
 
 # Keep this < 1.00, so people can tell the fake
 #  mro.pm from the real one
-our $VERSION = '0.06_01';
+our $VERSION = '0.11';
 
 BEGIN {
     # Alias our private functions over to
@@ -170,22 +170,25 @@ section for additional details.
 
 sub __set_mro {
     my ($classname, $type) = @_;
+
     if(!defined $classname || !$type) {
         die q{Usage: mro::set_mro($classname, $type)};
     }
+
     if($type eq 'c3') {
         eval "package $classname; use Class::C3";
         die $@ if $@;
     }
-    if($type ne 'dfs') {
-        die q{Invalid mro type "$type"};
+    elsif($type eq 'dfs') {
+        # In the dfs case, check whether we need to undo C3
+        if(defined $Class::C3::MRO{$classname}) {
+            Class::C3::_remove_method_dispatch_table($classname);
+        }
+        delete $Class::C3::MRO{$classname};
     }
-
-    # In the dfs case, check whether we need to undo C3
-    if(defined $Class::C3::MRO{$classname}) {
-        Class::C3::_remove_method_dispatch_table($classname);
+    else {
+        die qq{Invalid mro type "$type"};
     }
-    delete $Class::C3::MRO{$classname};
 
     return;
 }
@@ -209,8 +212,8 @@ sub __get_mro {
 =head2 mro::get_isarev($classname)
 
 Returns an arrayref of classes who are subclasses of the
-given classname.  In other words, classes who we exist,
-however indirectly, in the @ISA inheritancy hierarchy of.
+given classname.  In other words, classes in whose @ISA
+hierarchy we appear, no matter how indirectly.
 
 This is much slower on pre-5.9.5 Perls with MRO::Compat
 than it is on 5.9.5+, as it has to search the entire