[Koha-bugs] [Bug 17941] CanBookBeRenewed is very inefficient/slow
bugzilla-daemon at bugs.koha-community.org
bugzilla-daemon at bugs.koha-community.org
Wed Feb 15 01:30:25 CET 2017
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=17941
--- Comment #23 from M. Tompsett <mtompset at hotmail.com> ---
Comment on attachment 60189
--> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=60189
Bug 17941 avoid scanning the full cartesian product
Review of attachment 60189:
--> (https://bugs.koha-community.org/bugzilla3/page.cgi?id=splinter.html&bug=17941&attachment=60189)
-----------------------------------------------------------------
Love the optimization, but two tiny code changes would improve readability.
::: C4/Circulation.pm
@@ +2683,5 @@
> + ITEM: foreach my $i (@itemnumbers) {
> + my $item = GetItem($i);
> + next if IsItemOnHoldAndFound($i);
> + for my $b (@borrowernumbers) {
> + my $borr = $borrowers{$b}//= C4::Members::GetMember(borrowernumber => $_);
Could we avoid $_? It is harder to read. Here it should be $b.
@@ +2687,5 @@
> + my $borr = $borrowers{$b}//= C4::Members::GetMember(borrowernumber => $_);
> + next unless IsAvailableForItemLevelRequest($item, $borr);
> + next unless CanItemBeReserved($b,$i);
> +
> + push @reservable;
The old code is pushing item numbers into the reservable array. This seems to
be using an implicit $_ type behaviour, which I believe is $b. This isn't code
equivalent, and explicit is always easier for debugging later. Though, I don't
think it will matter, which is probably why it was optimized this way. Still,
could we be explicit? It's easier to read.
--
You are receiving this mail because:
You are watching all bug changes.
More information about the Koha-bugs
mailing list