[tools] testbot/web: Use Collection::GetSortedItems() to sort record groups.
Francois Gouget
fgouget at codeweavers.com
Wed Apr 6 17:30:49 CDT 2022
Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
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 2a1e21f0b..b82d265f8 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 f0945434c..c3022ae5b 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
--
2.30.2
More information about the wine-devel
mailing list