Remove all the pure Perl bits to go XS-only
[gitmo/Class-MOP.git] / lib / Class / MOP / Package.pm
index 2c2c0d6..43e42f9 100644 (file)
@@ -8,7 +8,7 @@ use B;
 use Scalar::Util 'blessed';
 use Carp         'confess';
 
-our $VERSION   = '0.76';
+our $VERSION   = '0.78';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
@@ -79,7 +79,6 @@ sub _new {
 # all these attribute readers will be bootstrapped 
 # away in the Class::MOP bootstrap section
 
-sub name      { $_[0]->{'package'} }
 sub namespace { 
     # NOTE:
     # because of issues with the Perl API 
@@ -276,45 +275,6 @@ sub list_all_package_symbols {
     }
 }
 
-sub get_all_package_symbols {
-    my ($self, $type_filter) = @_;
-
-    die "Cannot call get_all_package_symbols as a class method"
-        unless ref $self;
-
-    my $namespace = $self->namespace;
-
-    return $namespace unless defined $type_filter;
-
-    my %ret;
-    # for some reason this nasty impl is orders of magnitude faster than a clean version
-    if ( $type_filter eq 'CODE' ) {
-        my $pkg;
-        no strict 'refs';
-        %ret = map {
-            (ref($namespace->{$_})
-                ? ( $_ => \&{$pkg ||= $self->name . "::$_"} )
-                : ( ref \$namespace->{$_} eq 'GLOB' # don't use {CODE} unless it's really a glob to prevent stringification of stubs
-                    && (*{$namespace->{$_}}{CODE})  # the extra parents prevent breakage on 5.8.2
-                    ? ( $_ => *{$namespace->{$_}}{CODE} )
-                    : (do {
-                        my $sym = B::svref_2object(\$namespace->{$_});
-                        my $svt = ref $sym if $sym;
-                        ($sym && ($svt eq 'B::PV' || $svt eq 'B::IV'))
-                            ? ($_ => ($pkg ||= $self->name)->can($_))
-                            : () }) ) )
-        } keys %$namespace;
-    } else {
-        %ret = map {
-            $_ => *{$namespace->{$_}}{$type_filter}
-        } grep {
-            !ref($namespace->{$_}) && *{$namespace->{$_}}{$type_filter}
-        } keys %$namespace;
-    }
-
-    return \%ret;
-}
-
 1;
 
 __END__