]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/error.cc
Merge remote-tracking branch 'mvo/feature/dpkg-progress-fancy' into debian/sid
[apt.git] / apt-pkg / contrib / error.cc
index fe50e606b6fd2a33e45716d8e0962dd06447d053..d457781c3e70e16c60c7c50b83a45c6bb5b48680 100644 (file)
@@ -13,6 +13,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/error.h>
 
 #include <iostream>
 #include <apt-pkg/error.h>
 
 #include <iostream>
@@ -24,8 +26,7 @@
 #include <string>
 #include <cstring>
 
 #include <string>
 #include <cstring>
 
-#include "config.h"
-                                                                       /*}}}*/
+                                                                       /*}}}*/
 
 // Global Error Object                                                 /*{{{*/
 /* If the implementation supports posix threads then the accessor function
 
 // Global Error Object                                                 /*{{{*/
 /* If the implementation supports posix threads then the accessor function
@@ -66,9 +67,10 @@ bool GlobalError::NAME (const char *Function, const char *Description,...) { \
        int const errsv = errno; \
        while (true) { \
                va_start(args,Description); \
        int const errsv = errno; \
        while (true) { \
                va_start(args,Description); \
-               if (InsertErrno(TYPE, Function, Description, args, errsv, msgSize) == false) \
-                       break; \
+               bool const retry = InsertErrno(TYPE, Function, Description, args, errsv, msgSize); \
                va_end(args); \
                va_end(args); \
+               if (retry == false) \
+                       break; \
        } \
        return false; \
 }
        } \
        return false; \
 }
@@ -87,9 +89,10 @@ bool GlobalError::InsertErrno(MsgType const &type, const char *Function,
        int const errsv = errno;
        while (true) {
                va_start(args,Description);
        int const errsv = errno;
        while (true) {
                va_start(args,Description);
-               if (InsertErrno(type, Function, Description, args, errsv, msgSize) == false)
-                       break;
+               bool const retry = InsertErrno(type, Function, Description, args, errsv, msgSize);
                va_end(args);
                va_end(args);
+               if (retry == false)
+                  break;
        }
        return false;
 }
        }
        return false;
 }
@@ -107,6 +110,7 @@ bool GlobalError::InsertErrno(MsgType type, const char* Function,
                        msgSize = n + 1;
                else
                        msgSize *= 2;
                        msgSize = n + 1;
                else
                        msgSize *= 2;
+               free(S);
                return true;
        }
 
                return true;
        }
 
@@ -160,6 +164,7 @@ bool GlobalError::Insert(MsgType type, const char* Description,
                        msgSize = n + 1;
                else
                        msgSize *= 2;
                        msgSize = n + 1;
                else
                        msgSize *= 2;
+               free(S);
                return true;
        }
 
                return true;
        }
 
@@ -191,7 +196,7 @@ bool GlobalError::PopMessage(std::string &Text) {
 
        // check if another error message is pending
        for (std::list<Item>::const_iterator m = Messages.begin();
 
        // check if another error message is pending
        for (std::list<Item>::const_iterator m = Messages.begin();
-            m != Messages.end(); m++)
+            m != Messages.end(); ++m)
                if (m->Type == ERROR || m->Type == FATAL)
                        return Ret;
 
                if (m->Type == ERROR || m->Type == FATAL)
                        return Ret;
 
@@ -208,7 +213,7 @@ void GlobalError::DumpErrors(std::ostream &out, MsgType const &threshold,
                        Messages.insert(Messages.begin(), s->Messages.begin(), s->Messages.end());
 
        for (std::list<Item>::const_iterator m = Messages.begin();
                        Messages.insert(Messages.begin(), s->Messages.begin(), s->Messages.end());
 
        for (std::list<Item>::const_iterator m = Messages.begin();
-            m != Messages.end(); m++)
+            m != Messages.end(); ++m)
                if (m->Type >= threshold)
                        out << (*m) << std::endl;
        Discard();
                if (m->Type >= threshold)
                        out << (*m) << std::endl;
        Discard();
@@ -229,7 +234,7 @@ bool GlobalError::empty(MsgType const &trashhold) const {
                return true;
 
        for (std::list<Item>::const_iterator m = Messages.begin();
                return true;
 
        for (std::list<Item>::const_iterator m = Messages.begin();
-            m != Messages.end(); m++)
+            m != Messages.end(); ++m)
                if (m->Type >= trashhold)
                        return false;
 
                if (m->Type >= trashhold)
                        return false;