| Index: base/crypto/cssm_init.cc
|
| diff --git a/base/crypto/cssm_init.cc b/base/crypto/cssm_init.cc
|
| index 510ae0cad6592f2fbbf8c4fc71e9c193a8fb1bb6..a48bd0cf6de2ad6df871d36c1ba0b67f5a715bdd 100644
|
| --- a/base/crypto/cssm_init.cc
|
| +++ b/base/crypto/cssm_init.cc
|
| @@ -21,6 +21,11 @@ namespace {
|
|
|
| class CSSMInitSingleton {
|
| public:
|
| + CSSM_CSP_HANDLE csp_handle() const {return csp_handle_;}
|
| +
|
| + private:
|
| + friend struct DefaultSingletonTraits<CSSMInitSingleton>;
|
| +
|
| CSSMInitSingleton() : inited_(false), loaded_(false), csp_handle_(NULL) {
|
| static CSSM_VERSION version = {2, 0};
|
| // TODO(wtc): what should our caller GUID be?
|
| @@ -48,28 +53,25 @@ class CSSMInitSingleton {
|
| &base::kCssmMemoryFunctions, 0,
|
| CSSM_SERVICE_CSP, 0, CSSM_KEY_HIERARCHY_NONE,
|
| NULL, 0, NULL, &csp_handle_);
|
| - DCHECK(crtn == CSSM_OK);
|
| + DCHECK_EQ(crtn, CSSM_OK);
|
| }
|
|
|
| ~CSSMInitSingleton() {
|
| CSSM_RETURN crtn;
|
| if (csp_handle_) {
|
| CSSM_RETURN crtn = CSSM_ModuleDetach(csp_handle_);
|
| - DCHECK(crtn == CSSM_OK);
|
| + DCHECK_EQ(crtn, CSSM_OK);
|
| }
|
| if (loaded_) {
|
| crtn = CSSM_ModuleUnload(&gGuidAppleCSP, NULL, NULL);
|
| - DCHECK(crtn == CSSM_OK);
|
| + DCHECK_EQ(crtn, CSSM_OK);
|
| }
|
| if (inited_) {
|
| crtn = CSSM_Terminate();
|
| - DCHECK(crtn == CSSM_OK);
|
| + DCHECK_EQ(crtn, CSSM_OK);
|
| }
|
| }
|
|
|
| - CSSM_CSP_HANDLE csp_handle() const {return csp_handle_;}
|
| -
|
| - private:
|
| bool inited_; // True if CSSM_Init has been called successfully.
|
| bool loaded_; // True if CSSM_ModuleLoad has been called successfully.
|
| CSSM_CSP_HANDLE csp_handle_;
|
| @@ -84,7 +86,7 @@ void EnsureCSSMInit() {
|
| }
|
|
|
| CSSM_CSP_HANDLE GetSharedCSPHandle() {
|
| - return Singleton<CSSMInitSingleton>::get()->csp_handle();
|
| + return LeakySingleton<CSSMInitSingleton>::get()->csp_handle();
|
| }
|
|
|
| void* CSSMMalloc(CSSM_SIZE size, void *alloc_ref) {
|
|
|