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_; } |