https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=16365

--- Comment #6 from Jacek Ablewicz <[email protected]> ---
(In reply to Marcel de Rooy from comment #3)
> --- a/C4/Items.pm
> +++ b/C4/Items.pm
> 
> @@ -2815,6 +2815,10 @@ sub PrepareItemrecordDisplay {
>      my $dbh = C4::Context->dbh;
>      $frameworkcode = &GetFrameworkCode($bibnum) if $bibnum;
>      my ( $itemtagfield, $itemtagsubfield ) = &GetMarcFromKohaField(
> "items.itemnumber", $frameworkcode );
> +
> +    # it would be perhaps beneficial (?) to call GetMarcStructure with
> 'unsafe' parameter
> +    # for performance reasons, but $tagslib may be passed to
> $plugin->build(), and there
> +    # is no way to ensure that this structure is not getting corrupted
> somewhere in there
>      my $tagslib = &GetMarcStructure( 1, $frameworkcode );
> 
> Hm. I have the strong impression that the item plugins do not even read the
> tagslib structure. I kept the parameter in terms of backward compatibility
> for custom plugins that would need it. It might be an idea to let these
> custom (item) plugins call GetMarcStructure itself when they really need
> it.. But yes, that would be another report :)
> 
> The assumption that tagslib would be corrupted by a plugin is not very
> realistic imo; most do not even read, not to mention change. If the included
> plugins do not, how far should we go in protecting the author of a custom
> plugin from the potential threat he created himself? We can't stop him now
> from doing all kinds of things..

+1, overcautiousness is not always a virtue ;). I'll post a follow-up.

> So I would not object to calling it unsafe here too. In my tests it makes a
> remarkable difference: 0.0015 versus 0.046 per GetMarcStructure call. Please
> note too that PrepareItemrecordDisplay is called twice in a for loop (in
> serials code: for each item or subscription).

Ouch, for serial subscriptions with 'serialsadditems' enabled, it might be
called a lot of times for a single subscription. This is seriously unoptimized
function btw, traverses a whole MARC structure while it only needs 33 or so
entries, and also generates a lot of unneeded database traffic. But that's
outside the scope of this report.

-- 
You are receiving this mail because:
You are watching all bug changes.
_______________________________________________
Koha-bugs mailing list
[email protected]
http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/

Reply via email to