| Index: net/ssl/openssl_client_key_store.cc
|
| diff --git a/net/ssl/openssl_client_key_store.cc b/net/ssl/openssl_client_key_store.cc
|
| index b0b5eb3d4753d14a8ae186ba4fabfae1b927d243..de65cd9d677ddea26e9913e0655e8700c6aa67a5 100644
|
| --- a/net/ssl/openssl_client_key_store.cc
|
| +++ b/net/ssl/openssl_client_key_store.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include <openssl/evp.h>
|
| #include <openssl/x509.h>
|
| +#include <algorithm>
|
|
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/memory/singleton.h"
|
| @@ -50,15 +51,14 @@ OpenSSLClientKeyStore::KeyPair::KeyPair(const KeyPair& other)
|
| private_key(EVP_PKEY_dup(other.private_key.get())) {
|
| }
|
|
|
| -void OpenSSLClientKeyStore::KeyPair::operator=(const KeyPair& other) {
|
| - // Use a temporary ScopedEVP_PKEY because scoped_ptr does not allow resetting
|
| - // to the current value, even though it's safe here.
|
| - crypto::ScopedEVP_PKEY public_key_tmp(EVP_PKEY_dup(other.public_key.get()));
|
| - crypto::ScopedEVP_PKEY private_key_tmp(EVP_PKEY_dup(other.private_key.get()));
|
| - public_key.reset();
|
| - public_key = public_key_tmp.Pass();
|
| - private_key.reset();
|
| - private_key = private_key_tmp.Pass();
|
| +void OpenSSLClientKeyStore::KeyPair::operator=(KeyPair other) {
|
| + swap(other);
|
| +}
|
| +
|
| +void OpenSSLClientKeyStore::KeyPair::swap(KeyPair& other) {
|
| + using std::swap;
|
| + swap(public_key, other.public_key);
|
| + swap(private_key, other.private_key);
|
| }
|
|
|
| int OpenSSLClientKeyStore::FindKeyPairIndex(EVP_PKEY* public_key) {
|
|
|