diff options
author | David Lawrence <dlawrence@mozilla.com> | 2011-10-17 06:06:44 +0200 |
---|---|---|
committer | David Lawrence <dlawrence@mozilla.com> | 2011-10-17 06:06:44 +0200 |
commit | 1603951776f59a25f51dc6bfe767ee2cb032ba19 (patch) | |
tree | 76a59debec8c5cbfe9cc33764ce73034f2a8b369 | |
parent | b6b00b8804b1e0a0defb5b687013190dfda42b57 (diff) | |
download | bugzilla-1603951776f59a25f51dc6bfe767ee2cb032ba19.tar.gz bugzilla-1603951776f59a25f51dc6bfe767ee2cb032ba19.tar.xz |
Bug 694439: The Inline History extension should cache user objects when parsing
bug history
r=glob
-rw-r--r-- | extensions/InlineHistory/Extension.pm | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/extensions/InlineHistory/Extension.pm b/extensions/InlineHistory/Extension.pm index 61bc232da..da1e3f274 100644 --- a/extensions/InlineHistory/Extension.pm +++ b/extensions/InlineHistory/Extension.pm @@ -71,10 +71,18 @@ sub template_before_process { return; } + Bugzilla->request_cache->{ih_user_cache} ||= {}; + my $user_cache = Bugzilla->request_cache->{ih_user_cache}; + # augment and tweak foreach my $operation (@$activity) { # make operation.who an object - $operation->{who} = Bugzilla::User->new({ name => $operation->{who} }); + if (!$user_cache->{$operation->{who}}) { + $user_cache->{$operation->{who}} + = Bugzilla::User->new({ name => $operation->{who} }); + } + $operation->{who} = $user_cache->{$operation->{who}}; + for (my $i = 0; $i < scalar(@{$operation->{changes}}); $i++) { my $change = $operation->{changes}->[$i]; |