diff options
Diffstat (limited to 'lib/Bread/Board/Declare/Role/Object.pm')
-rw-r--r-- | lib/Bread/Board/Declare/Role/Object.pm | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Bread/Board/Declare/Role/Object.pm b/lib/Bread/Board/Declare/Role/Object.pm index ad1f80a..1c5f244 100644 --- a/lib/Bread/Board/Declare/Role/Object.pm +++ b/lib/Bread/Board/Declare/Role/Object.pm @@ -23,11 +23,12 @@ after BUILD => sub { ); for my $service ($meta->get_all_services) { if ($service->isa('Bread::Board::Declare::BlockInjection')) { + Scalar::Util::weaken(my $weakself = $self); my $block = $service->block; $self->add_service( $service->clone( block => sub { - $block->(@_, $self) + $block->(@_, $weakself) }, ) ); |