Parcourir la source

[2275] valgrind fix: store singleton instance in auto_ptr

Jelte Jansen il y a 12 ans
Parent
commit
0c38d26f6a
1 fichiers modifiés avec 4 ajouts et 4 suppressions
  1. 4 4
      src/lib/acl/dns.cc

+ 4 - 4
src/lib/acl/dns.cc

@@ -106,10 +106,10 @@ internal::RequestCheckCreator::create(const string& name,
 
 RequestLoader&
 getRequestLoader() {
-    static RequestLoader* loader(NULL);
-    if (loader == NULL) {
+    static auto_ptr<RequestLoader> loader(NULL);
+    if (loader.get() == NULL) {
         // Creator registration may throw, so we first store the new loader
-        // in an auto pointer in order to provide the strong exception
+        // in a second auto pointer in order to provide the strong exception
         // guarantee.
         auto_ptr<RequestLoader> loader_ptr =
             auto_ptr<RequestLoader>(new RequestLoader(REJECT));
@@ -129,7 +129,7 @@ getRequestLoader() {
                 new LogicCreator<AllOfSpec, RequestContext>("ALL")));
 
         // From this point there shouldn't be any exception thrown
-        loader = loader_ptr.release();
+        loader.reset(loader_ptr.release());
     }
 
     return (*loader);