[tools] testbot: Optimize the VM comparison method.
Francois Gouget
fgouget at codeweavers.com
Wed Apr 6 17:30:58 CDT 2022
Using Item::GetColValue() is faster than relying on Item::AUTOLOAD.
Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
testbot/lib/WineTestBot/VMs.pm | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/testbot/lib/WineTestBot/VMs.pm b/testbot/lib/WineTestBot/VMs.pm
index ee0c1be24..2e475b722 100644
--- a/testbot/lib/WineTestBot/VMs.pm
+++ b/testbot/lib/WineTestBot/VMs.pm
@@ -177,16 +177,17 @@ sub InitializeNew($$)
$self->SUPER::InitializeNew($Collection);
}
+# Sort retired and deleted VMs last
+my %_CmpRole = ("retired" => 1, "deleted" => 2);
+
sub Compare($$)
{
my ($self, $B) = @_;
- # Sort retired and deleted VMs last
- my %RoleOrders = ("retired" => 1, "deleted" => 2);
-
- return ($RoleOrders{$self->Role} || 0) <=> ($RoleOrders{$B->Role} || 0) ||
- $self->SortOrder <=> $B->SortOrder ||
- $self->Name <=> $B->Name;
+ # Use GetColValue() for performance.
+ return ($_CmpRole{$self->GetColValue("Role")} || 0) <=> ($_CmpRole{$B->GetColValue("Role")} || 0) ||
+ $self->GetColValue("SortOrder") <=> $B->GetColValue("SortOrder") ||
+ $self->GetColValue("Name") <=> $B->GetColValue("Name");
}
sub HasEnabledRole($)
--
2.30.2
More information about the wine-devel
mailing list