[PATCH 2/2] testbot: Optimize the validation of enum properties.
Francois Gouget
fgouget at codeweavers.com
Mon Jun 4 13:07:12 CDT 2018
Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
testbot/lib/ObjectModel/EnumPropertyDescriptor.pm | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/testbot/lib/ObjectModel/EnumPropertyDescriptor.pm b/testbot/lib/ObjectModel/EnumPropertyDescriptor.pm
index d8f0d391b..084667372 100644
--- a/testbot/lib/ObjectModel/EnumPropertyDescriptor.pm
+++ b/testbot/lib/ObjectModel/EnumPropertyDescriptor.pm
@@ -42,6 +42,7 @@ sub _initialize($$)
$self->{Class} = "Enum";
$self->{Values} = $Values;
+ map { $self->{Allowed}->{$_} = 1 } @{$Values};
if (!$self->{IsRequired})
{
die "Optional enum properties are not supported\n";
@@ -68,18 +69,14 @@ sub ValidateValue($$$)
{
my ($self, $Value, $IsNew) = @_;
- if ($self->GetIsRequired())
- {
- if (!$IsNew && (!defined($Value) || $Value eq ""))
- {
- return $self->GetDisplayName() . ": Must be entered";
- }
- }
+ return undef if (defined $Value and $self->{Allowed}->{$Value});
- foreach my $V (@{$self->{Values}})
+ if ($self->GetIsRequired() and !$IsNew and
+ (!defined $Value or $Value eq ""))
{
- return undef if ($V eq $Value);
+ return $self->GetDisplayName() . ": Must be entered";
}
+
return $self->GetDisplayName() . ": Is not valid";
}
--
2.17.0
More information about the wine-devel
mailing list