Chromium Code Reviews| Index: base/openssl_util.h |
| diff --git a/base/openssl_util.h b/base/openssl_util.h |
| index 1d290ae3ad0cd6dcb13206d943961ceb75bd2a8b..2897d7f63e5194ed4d6b3b650493aaaf2ecfe63f 100644 |
| --- a/base/openssl_util.h |
| +++ b/base/openssl_util.h |
| @@ -16,8 +16,17 @@ namespace base { |
| template <typename T, void (*destructor)(T*)> |
| class ScopedOpenSSL { |
| public: |
| - explicit ScopedOpenSSL(T* ptr_) : ptr_(ptr_) { } |
| - ~ScopedOpenSSL() { if (ptr_) (*destructor)(ptr_); } |
| + explicit ScopedOpenSSL(T* ptr) : ptr_(ptr) {} |
| + ~ScopedOpenSSL() { |
| + reset(NULL); |
|
wtc
2010/11/23 00:30:11
Nit: since you let the argument default to NULL, y
|
| + } |
| + |
| + void reset(T* p = NULL) { |
| + if (ptr_ != p) { |
| + (*destructor)(ptr_); |
| + ptr_ = p; |
| + } |
| + } |
| T* get() const { return ptr_; } |