Devel-ebug-Wx

 view release on metacpan or  search on metacpan

lib/Devel/ebug/Wx/Plugin/Listener/Base.pm  view on Meta::CPAN

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
use strict;
use Scalar::Util qw(weaken);
 
__PACKAGE__->mk_accessors( qw(_subscribed) );
 
sub add_subscription {
    my( $self, $source, @args ) = @_;
 
    $self->_subscribed( [] ) unless $self->_subscribed;
    $source->add_subscriber( @args );
    push @{$self->_subscribed}, [ $source, @args ];
    foreach my $ref ( @{$self->_subscribed->[-1]} ) {
        next unless ref $ref;
        weaken( $ref );
    }
}
 
sub delete_subscriptions {
    my( $self ) = @_;
 
    foreach my $sub ( @{$self->_subscribed || []} ) {
        next unless $sub->[0] && $sub->[1]; # might have been destroyed
        $sub->[0]->delete_subscriber( @$sub[1 .. $#$sub] );
    }



( run in 0.249 second using v1.01-cache-2.11-cpan-a5abf4f5562 )