From: Don Armstrong Date: Mon, 4 Dec 2017 22:05:16 +0000 (-0800) Subject: call __end_control before croaking in general X-Git-Tag: release/2.6.0~59 X-Git-Url: https://git.donarmstrong.com/?p=debbugs.git;a=commitdiff_plain;h=c1569efefef3fc46846a6b6c6a16787aab78c246 call __end_control before croaking in general --- diff --git a/Debbugs/Control.pm b/Debbugs/Control.pm index ab60384..20f82df 100644 --- a/Debbugs/Control.pm +++ b/Debbugs/Control.pm @@ -379,6 +379,7 @@ sub set_blocks { # throw an error if we are setting the blockers and there is a bad # blocker if (keys %bad_blockers and $mode eq 'set') { + __end_control(%info); croak "Unknown blocking bug(s):".join(', ',keys %bad_blockers). keys %ok_blockers?'':" and no known blocking bug(s)"; } @@ -387,6 +388,7 @@ sub set_blocks { if (not keys %ok_blockers and $mode ne 'set') { print {$transcript} "No valid blocking bug(s) given; not doing anything\n"; if (keys %bad_blockers) { + __end_control(%info); croak "Unknown blocking bug(s):".join(', ',keys %bad_blockers); } __end_control(%info); @@ -410,6 +412,7 @@ sub set_blocks { @bugs{@bugs} = (1) x @bugs; for my $blocker (@change_blockers) { if ($bugs{$blocker}) { + __end_control(%info); croak "It is nonsensical for a bug to block itself (or a merged partner): $blocker"; } } @@ -2070,9 +2073,11 @@ sub set_merged { print {$transcript} "$change->{field} of #$change->{bug} is '$change->{text_orig_value}' not '$change->{text_value}'\n"; } if ($attempts > 0) { + __end_control(%info); croak "Some bugs were altered while attempting to merge"; } else { + __end_control(%info); croak "Did not alter merged bugs"; } }