sort some things to allow for some better caching
Jesse Luehrs [Mon, 9 May 2011 09:00:56 +0000 (04:00 -0500)]
lib/Moose/Meta/Class.pm
lib/Moose/Meta/Role.pm

index 52c9676..1d7cfc6 100644 (file)
@@ -136,14 +136,14 @@ sub _anon_cache_key {
                 return;
             }
 
-            $key .= '<' . join('+', 'a', join('%', %$alias),
-                                    'e', join('%', @$excludes)) . '>';
+            $key .= '<' . join('+', 'a', join('%', sort %$alias),
+                                    'e', join('%', sort @$excludes)) . '>';
         }
 
         push @role_keys, $key;
     }
 
-    my $role_key = join('|', @role_keys);
+    my $role_key = join('|', sort @role_keys);
 
     # Makes something like Super::Class|Super::Class::2=Role|Role::1
     return join('=', $superclass_key, $role_key);
index af4c774..0382afe 100644 (file)
@@ -612,15 +612,15 @@ sub _anon_cache_key {
                 return;
             }
 
-            $key .= '<' . join('+', 'a', join('%', %$alias),
-                                    'e', join('%', @$excludes)) . '>';
+            $key .= '<' . join('+', 'a', join('%', sort %$alias),
+                                    'e', join('%', sort @$excludes)) . '>';
         }
 
         push @role_keys, $key;
     }
 
     # Makes something like Role|Role::1
-    return join('|', @role_keys);
+    return join('|', sort @role_keys);
 }
 
 #####################################################################