summaryrefslogtreecommitdiffstats
path: root/lib/Bread/Board/Declare/Role/Object.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Bread/Board/Declare/Role/Object.pm')
-rw-r--r--lib/Bread/Board/Declare/Role/Object.pm3
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)
},
)
);