Skip to content

Commit 0256b69

Browse files
authored
SqlMetadataPrivFlags remove Enum.HasFlag in favor of bitwise operations (#1054)
1 parent 7e86e4e commit 0256b69

File tree

2 files changed

+40
-20
lines changed

2 files changed

+40
-20
lines changed

src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/TdsParserHelperClasses.cs

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,11 @@ internal _SqlMetaData(int ordinal) : base()
427427
this.ordinal = ordinal;
428428
}
429429

430+
private bool HasFlag(_SqlMetadataFlags flag)
431+
{
432+
return (flags & flag) != 0;
433+
}
434+
430435
internal string serverName
431436
{
432437
get
@@ -459,47 +464,47 @@ internal string tableName
459464
public byte Updatability
460465
{
461466
get => (byte)(flags & _SqlMetadataFlags.IsUpdatableMask);
462-
set => flags = (_SqlMetadataFlags)((value & 0x3) | ((int)flags & ~0x03));
467+
set => flags = (_SqlMetadataFlags)((value & (byte)_SqlMetadataFlags.IsUpdatableMask) | ((int)flags & ~(byte)_SqlMetadataFlags.IsUpdatableMask));
463468
}
464469

465470
public bool IsReadOnly
466471
{
467-
get => (flags & _SqlMetadataFlags.IsUpdatableMask) == 0;
472+
get => !HasFlag(_SqlMetadataFlags.IsUpdatableMask);
468473
}
469474

470475
public bool IsDifferentName
471476
{
472-
get => flags.HasFlag(_SqlMetadataFlags.IsDifferentName);
477+
get => HasFlag(_SqlMetadataFlags.IsDifferentName);
473478
set => Set(_SqlMetadataFlags.IsDifferentName, value);
474479
}
475480

476481
public bool IsKey
477482
{
478-
get => flags.HasFlag(_SqlMetadataFlags.IsKey);
483+
get => HasFlag(_SqlMetadataFlags.IsKey);
479484
set => Set(_SqlMetadataFlags.IsKey, value);
480485
}
481486

482487
public bool IsHidden
483488
{
484-
get => flags.HasFlag(_SqlMetadataFlags.IsHidden);
489+
get => HasFlag(_SqlMetadataFlags.IsHidden);
485490
set => Set(_SqlMetadataFlags.IsHidden, value);
486491
}
487492

488493
public bool IsExpression
489494
{
490-
get => flags.HasFlag(_SqlMetadataFlags.IsExpression);
495+
get => HasFlag(_SqlMetadataFlags.IsExpression);
491496
set => Set(_SqlMetadataFlags.IsExpression, value);
492497
}
493498

494499
public bool IsIdentity
495500
{
496-
get => flags.HasFlag(_SqlMetadataFlags.IsIdentity);
501+
get => HasFlag(_SqlMetadataFlags.IsIdentity);
497502
set => Set(_SqlMetadataFlags.IsIdentity, value);
498503
}
499504

500505
public bool IsColumnSet
501506
{
502-
get => flags.HasFlag(_SqlMetadataFlags.IsColumnSet);
507+
get => HasFlag(_SqlMetadataFlags.IsColumnSet);
503508
set => Set(_SqlMetadataFlags.IsColumnSet, value);
504509
}
505510

@@ -746,16 +751,21 @@ internal SqlMetaDataPriv()
746751

747752
public bool IsNullable
748753
{
749-
get => flags.HasFlag(SqlMetaDataPrivFlags.IsNullable);
754+
get => HasFlag(SqlMetaDataPrivFlags.IsNullable);
750755
set => Set(SqlMetaDataPrivFlags.IsNullable, value);
751756
}
752757

753758
public bool IsMultiValued
754759
{
755-
get => flags.HasFlag(SqlMetaDataPrivFlags.IsMultiValued);
760+
get => HasFlag(SqlMetaDataPrivFlags.IsMultiValued);
756761
set => Set(SqlMetaDataPrivFlags.IsMultiValued, value);
757762
}
758763

764+
private bool HasFlag(SqlMetaDataPrivFlags flag)
765+
{
766+
return (flags & flag) != 0;
767+
}
768+
759769
private void Set(SqlMetaDataPrivFlags flag, bool value)
760770
{
761771
flags = value ? flags | flag : flags & ~flag;

src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/TdsParserHelperClasses.cs

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,11 @@ internal _SqlMetaData(int ordinal) : base()
602602
this.ordinal = ordinal;
603603
}
604604

605+
private bool HasFlag(_SqlMetadataFlags flag)
606+
{
607+
return (flags & flag) != 0;
608+
}
609+
605610
internal string serverName
606611
{
607612
get
@@ -634,47 +639,47 @@ internal string tableName
634639
public byte Updatability
635640
{
636641
get => (byte)(flags & _SqlMetadataFlags.IsUpdatableMask);
637-
set => flags = (_SqlMetadataFlags)((value & 0x3) | ((int)flags & ~0x03));
642+
set => flags = (_SqlMetadataFlags)((value & (byte)_SqlMetadataFlags.IsUpdatableMask) | ((int)flags & ~(byte)_SqlMetadataFlags.IsUpdatableMask));
638643
}
639644

640645
public bool IsReadOnly
641646
{
642-
get => (flags & _SqlMetadataFlags.IsUpdatableMask) == 0;
647+
get => !HasFlag(_SqlMetadataFlags.IsUpdatableMask);
643648
}
644649

645650
public bool IsDifferentName
646651
{
647-
get => flags.HasFlag(_SqlMetadataFlags.IsDifferentName);
652+
get => HasFlag(_SqlMetadataFlags.IsDifferentName);
648653
set => Set(_SqlMetadataFlags.IsDifferentName, value);
649654
}
650655

651656
public bool IsKey
652657
{
653-
get => flags.HasFlag(_SqlMetadataFlags.IsKey);
658+
get => HasFlag(_SqlMetadataFlags.IsKey);
654659
set => Set(_SqlMetadataFlags.IsKey, value);
655660
}
656661

657662
public bool IsHidden
658663
{
659-
get => flags.HasFlag(_SqlMetadataFlags.IsHidden);
664+
get => HasFlag(_SqlMetadataFlags.IsHidden);
660665
set => Set(_SqlMetadataFlags.IsHidden, value);
661666
}
662667

663668
public bool IsExpression
664669
{
665-
get => flags.HasFlag(_SqlMetadataFlags.IsExpression);
670+
get => HasFlag(_SqlMetadataFlags.IsExpression);
666671
set => Set(_SqlMetadataFlags.IsExpression, value);
667672
}
668673

669674
public bool IsIdentity
670675
{
671-
get => flags.HasFlag(_SqlMetadataFlags.IsIdentity);
676+
get => HasFlag(_SqlMetadataFlags.IsIdentity);
672677
set => Set(_SqlMetadataFlags.IsIdentity, value);
673678
}
674679

675680
public bool IsColumnSet
676681
{
677-
get => flags.HasFlag(_SqlMetadataFlags.IsColumnSet);
682+
get => HasFlag(_SqlMetadataFlags.IsColumnSet);
678683
set => Set(_SqlMetadataFlags.IsColumnSet, value);
679684
}
680685

@@ -1054,16 +1059,21 @@ internal SqlMetaDataPriv()
10541059

10551060
public bool IsNullable
10561061
{
1057-
get => flags.HasFlag(SqlMetaDataPrivFlags.IsNullable);
1062+
get => HasFlag(SqlMetaDataPrivFlags.IsNullable);
10581063
set => Set(SqlMetaDataPrivFlags.IsNullable, value);
10591064
}
10601065

10611066
public bool IsMultiValued
10621067
{
1063-
get => flags.HasFlag(SqlMetaDataPrivFlags.IsMultiValued);
1068+
get => HasFlag(SqlMetaDataPrivFlags.IsMultiValued);
10641069
set => Set(SqlMetaDataPrivFlags.IsMultiValued, value);
10651070
}
10661071

1072+
private bool HasFlag(SqlMetaDataPrivFlags flag)
1073+
{
1074+
return (flags & flag) != 0;
1075+
}
1076+
10671077
private void Set(SqlMetaDataPrivFlags flag, bool value)
10681078
{
10691079
flags = value ? flags | flag : flags & ~flag;

0 commit comments

Comments
 (0)