Skip to content

Commit ea0b777

Browse files
authored
remove more duplicate lookups (dotnet#4089)
* remove duplicate lookups in EnclaveDelegate.Crypto.cs * Use TryGet methods to avoid double lookups Replace ContainsKey + indexer patterns with TryGetParsetableValue (for connection options) and TryGetValue (for _appDomainKeyHash) to avoid double dictionary lookups, remove variable shadowing, and make intent clearer. Existing logic and assertions are preserved.
1 parent 19b4305 commit ea0b777

3 files changed

Lines changed: 9 additions & 13 deletions

File tree

src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ConnectionPool/SqlConnectionPoolGroupProviderInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@ private PermissionSet CreateFailoverPermission(SqlConnectionString userConnectio
105105
// the server, we will use that name over what was specified
106106
// in the original connection string.
107107

108-
if (userConnectionOptions.ContainsKey(DbConnectionStringKeywords.FailoverPartner) &&
109-
userConnectionOptions[DbConnectionStringKeywords.FailoverPartner] == null)
108+
if (userConnectionOptions.TryGetParsetableValue(DbConnectionStringKeywords.FailoverPartner, out string failoverPartnerValue) &&
109+
failoverPartnerValue == null)
110110
{
111111
keywordToReplace = DbConnectionStringKeywords.DataSource;
112112
}

src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/EnclaveDelegate.Crypto.cs

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -92,21 +92,18 @@ private SqlColumnEncryptionEnclaveProvider GetEnclaveProvider(SqlConnectionAttes
9292
switch (attestationProtocol)
9393
{
9494
case SqlConnectionAttestationProtocol.AAS:
95-
AzureAttestationEnclaveProvider azureAttestationEnclaveProvider = new AzureAttestationEnclaveProvider();
96-
s_enclaveProviders[attestationProtocol] = azureAttestationEnclaveProvider;
97-
sqlColumnEncryptionEnclaveProvider = s_enclaveProviders[attestationProtocol];
95+
sqlColumnEncryptionEnclaveProvider = new AzureAttestationEnclaveProvider();
96+
s_enclaveProviders[attestationProtocol] = sqlColumnEncryptionEnclaveProvider;
9897
break;
9998

10099
case SqlConnectionAttestationProtocol.HGS:
101-
HostGuardianServiceEnclaveProvider hostGuardianServiceEnclaveProvider = new HostGuardianServiceEnclaveProvider();
102-
s_enclaveProviders[attestationProtocol] = hostGuardianServiceEnclaveProvider;
103-
sqlColumnEncryptionEnclaveProvider = s_enclaveProviders[attestationProtocol];
100+
sqlColumnEncryptionEnclaveProvider = new HostGuardianServiceEnclaveProvider();
101+
s_enclaveProviders[attestationProtocol] = sqlColumnEncryptionEnclaveProvider;
104102
break;
105103

106104
case SqlConnectionAttestationProtocol.None:
107-
NoneAttestationEnclaveProvider noneAttestationEnclaveProvider = new NoneAttestationEnclaveProvider();
108-
s_enclaveProviders[attestationProtocol] = noneAttestationEnclaveProvider;
109-
sqlColumnEncryptionEnclaveProvider = s_enclaveProviders[attestationProtocol];
105+
sqlColumnEncryptionEnclaveProvider = new NoneAttestationEnclaveProvider();
106+
s_enclaveProviders[attestationProtocol] = sqlColumnEncryptionEnclaveProvider;
110107
break;
111108

112109
default:

src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlDependencyListener.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -837,9 +837,8 @@ internal bool Stop(string appDomainKey, out bool appDomainStop)
837837
// If null, then this was called from SqlDependencyProcessDispatcher, we ignore appDomainKeyHash.
838838
lock (_appDomainKeyHash)
839839
{
840-
if (_appDomainKeyHash.ContainsKey(appDomainKey))
840+
if (_appDomainKeyHash.TryGetValue(appDomainKey, out int value))
841841
{ // Do nothing if AppDomain did not call Start!
842-
int value = _appDomainKeyHash[appDomainKey];
843842

844843
Debug.Assert(value > 0, "Unexpected count for appDomainKey");
845844
SqlClientEventSource.Log.TryNotificationTraceEvent("<sc.SqlConnectionContainer.Stop|DEP> _appDomainKeyHash contained AppDomainKey: '{0}', pre-decrement Count: '{1}'.", appDomainKey, value);

0 commit comments

Comments
 (0)