Nonsensical (undef, empty, reference) class names now throw a more direct error in...
Shawn M Moore [Tue, 10 Jun 2008 04:56:03 +0000 (04:56 +0000)]
Changes
lib/Class/MOP.pm

diff --git a/Changes b/Changes
index eb8be57..bce3555 100644 (file)
--- a/Changes
+++ b/Changes
@@ -18,7 +18,10 @@ Revision history for Perl extension Class-MOP.
         to avoid a segfault
       - is_class_loaded check now uses code that
         was improved in Moose's ClassName type
-        check
+        check (Sartak)
+      - nonsensical (undef, empty, reference) class
+        names now throw a more direct error in
+        load_class (Sartak)
     
     * Class::MOP
       Class::MOP::Class      
index 92af82a..cb22ff5 100644 (file)
@@ -124,6 +124,12 @@ BEGIN {
 
 sub load_class {
     my $class = shift;
+
+    if (ref($class) || !defined($class) || !length($class)) {
+        my $display = defined($class) ? $class : 'undef';
+        confess "Invalid class name ($display)";
+    }
+
     # see if this is already
     # loaded in the symbol table
     return 1 if is_class_loaded($class);