From 4a0943dadf0253463847e987f76fc3a0c9505b71 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Thu, 3 Oct 2013 16:01:36 -0400 Subject: remove some memory cycles (Roman Daniel) --- lib/Bread/Board/Declare/Role/Object.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/Bread/Board/Declare/Role/Object.pm') 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) }, ) ); -- cgit v1.2.3-54-g00ecf