Francois Gouget : testbot/web: Use Collection::GetSortedItems() to sort record groups.
Module: tools Branch: master Commit: 659655fffe0235438b81b46d1504a2c69d414981 URL: https://source.winehq.org/git/tools.git/?a=commit;h=659655fffe0235438b81b46d... Author: Francois Gouget <fgouget(a)codeweavers.com> Date: Thu Apr 7 00:30:49 2022 +0200 testbot/web: Use Collection::GetSortedItems() to sort record groups. Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- testbot/lib/WineTestBot/Activity.pm | 2 +- testbot/lib/WineTestBot/RecordGroups.pm | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/testbot/lib/WineTestBot/Activity.pm b/testbot/lib/WineTestBot/Activity.pm index 2a1e21f..b82d265 100644 --- a/testbot/lib/WineTestBot/Activity.pm +++ b/testbot/lib/WineTestBot/Activity.pm @@ -111,7 +111,7 @@ sub GetActivity($;$) } my $MinId; $Counters->{recordgroups} = $RecordGroups->GetItemsCount(); - foreach my $RecordGroup (sort CompareRecordGroups @{$RecordGroups->GetItems()}) + foreach my $RecordGroup (@{$RecordGroups->GetSortedItems()}) { my $Group = { id => $RecordGroup->Id, start => $RecordGroup->Timestamp }; diff --git a/testbot/lib/WineTestBot/RecordGroups.pm b/testbot/lib/WineTestBot/RecordGroups.pm index f094543..c3022ae 100644 --- a/testbot/lib/WineTestBot/RecordGroups.pm +++ b/testbot/lib/WineTestBot/RecordGroups.pm @@ -43,6 +43,16 @@ sub InitializeNew($$) $self->SUPER::InitializeNew($Collection); } +sub Compare($$) +{ + my ($self, $B) = @_; + + # The Timestamps have a 1 second granularity and may have duplicates. + # So use the Id to break ties. And use GetColValue() for performance. + return $self->GetColValue("Timestamp") <=> $B->GetColValue("Timestamp") || + $self->GetColValue("Id") <=> $B->GetColValue("Id"); +} + package WineTestBot::RecordGroups; @@ -57,7 +67,7 @@ use WineTestBot::WineTestBotObjects; BEGIN { our @ISA = qw(WineTestBot::WineTestBotCollection); - our @EXPORT = qw(CreateRecordGroups CompareRecordGroups SaveRecord); + our @EXPORT = qw(CreateRecordGroups SaveRecord); } use ObjectModel::BasicPropertyDescriptor; @@ -96,16 +106,6 @@ sub CreateRecordGroups(;$) \@PropertyDescriptors, $ScopeObject); } -sub CompareRecordGroups($$) -{ - my ($RecordGroup1, $RecordGroup2) = @_; - - # The Timestamps have a 1 second granularity and may have duplicates. - # So use the Id to break ties. - return $RecordGroup1->Timestamp <=> $RecordGroup2->Timestamp || - $RecordGroup1->Id <=> $RecordGroup2->Id; -} - =pod =over 12
participants (1)
-
Alexandre Julliard