diff options
| -rw-r--r-- | includes/BStream.h | 6 | ||||
| -rw-r--r-- | includes/Buffer.h | 8 | ||||
| -rw-r--r-- | includes/Exceptions.h | 6 | ||||
| -rw-r--r-- | includes/Handle.h | 15 | ||||
| -rw-r--r-- | includes/HttpServer.h | 8 | ||||
| -rw-r--r-- | includes/Local.h | 4 | ||||
| -rw-r--r-- | includes/LuaTask.h | 3 | ||||
| -rw-r--r-- | includes/Main.h | 3 | ||||
| -rw-r--r-- | includes/Printer.h | 3 | ||||
| -rw-r--r-- | includes/SimpleMustache.h | 9 | ||||
| -rw-r--r-- | includes/Socket.h | 7 | ||||
| -rw-r--r-- | includes/Task.h | 14 | ||||
| -rw-r--r-- | src/BRegex.cc | 3 | ||||
| -rw-r--r-- | src/Input.cc | 2 | ||||
| -rw-r--r-- | src/Output.cc | 2 | 
15 files changed, 64 insertions, 29 deletions
diff --git a/includes/BStream.h b/includes/BStream.h index d412782..2fa842e 100644 --- a/includes/BStream.h +++ b/includes/BStream.h @@ -20,13 +20,13 @@ class BStream : public Handle {      void detach() { m_detached = true; }    private:      IO<Handle> m_h; -    uint8_t * m_buffer; +    uint8_t * m_buffer = NULL;      size_t m_availBytes = 0;      size_t m_cursor = 0;      String m_name;      bool m_passThru = false; -    bool m_detached; -    bool m_closed; +    bool m_detached = false; +    bool m_closed = false;  };  }; diff --git a/includes/Buffer.h b/includes/Buffer.h index 6577c64..a903ec9 100644 --- a/includes/Buffer.h +++ b/includes/Buffer.h @@ -7,7 +7,7 @@ namespace Balau {  class Buffer : public SeekableHandle {    public:        Buffer(const uint8_t * buffer, size_t s) : m_buffer(const_cast<uint8_t *>(buffer)), m_bufSize(s), m_fromConst(true) { } -      Buffer() throw (GeneralException) : m_buffer(NULL), m_fromConst(false), m_bufSize(0), m_numBlocks(0) { } +      Buffer() throw (GeneralException) { }        virtual ~Buffer();      virtual void close() throw (GeneralException);      virtual ssize_t read(void * buf, size_t count) throw (GeneralException); @@ -22,9 +22,9 @@ class Buffer : public SeekableHandle {      void reset();      void rewind() { rseek(0); wseek(0); }    private: -    uint8_t * m_buffer; -    bool m_fromConst; -    off_t m_bufSize, m_numBlocks; +    uint8_t * m_buffer = NULL; +    bool m_fromConst = false; +    off_t m_bufSize = 0, m_numBlocks = 0;  };  }; diff --git a/includes/Exceptions.h b/includes/Exceptions.h index 962a869..2d452cc 100644 --- a/includes/Exceptions.h +++ b/includes/Exceptions.h @@ -34,13 +34,13 @@ class GeneralException {      const std::vector<String> getTrace() const { return m_trace; }    protected: -      GeneralException() : m_msg(NULL), m_details(NULL) { } +      GeneralException() { }      void setMsg(char * msg) { if (m_msg) free(m_msg); m_msg = msg; }      void genTrace();    private: -    mutable char * m_msg; -    char * m_details; +    mutable char * m_msg = NULL; +    char * m_details = NULL;      std::vector<String> m_trace;      void setDetails(const char * details) { diff --git a/includes/Handle.h b/includes/Handle.h index e12fab7..f501ab1 100644 --- a/includes/Handle.h +++ b/includes/Handle.h @@ -59,7 +59,7 @@ class Handle {      ssize_t forceWrite(const String & str) { return forceWrite(str.to_charp(), str.strlen()); }      uint8_t readU8() { uint8_t r; read(&r, 1); return r; }    protected: -      Handle() : m_refCount(0) { } +      Handle() { }    private:      void addRef() { Atomic::Increment(&m_refCount); }      void delRef() { @@ -73,7 +73,7 @@ class Handle {      template<class T>      friend class IO; -    volatile int m_refCount; +    volatile int m_refCount = 0;        Handle(const Handle &) = delete;      Handle & operator=(const Handle &) = delete; @@ -87,17 +87,17 @@ class HPrinter : public Handle {      virtual bool canWrite() { return true; }      virtual const char * getName() { return "HPrinter"; }      virtual ssize_t write(const void * buf, size_t count) throw (GeneralException) { -        Printer::print("%s", (const char *) buf); +        Printer::print("%*s", (int) count, (const char *) buf);          return count;      }  };  class IOBase { -  protected: -      IOBase() : m_h(NULL) { } +  private: +      IOBase() { }        ~IOBase() { if (m_h) m_h->delRef(); }      void setHandle(Handle * h) { m_h = h; if (m_h) m_h->addRef(); } -    Handle * m_h; +    Handle * m_h = NULL;      template<class T>      friend class IO;  }; @@ -108,8 +108,11 @@ class IO : public IOBase {        IO() { }        IO(T * h) { setHandle(h); }        IO(const IO<T> & io) { if (io.m_h) setHandle(io.m_h); } +      IO(IO<T> && io) { m_h = io.m_h; io.m_h = NULL; }        template<class U>        IO(const IO<U> & io) { if (io.m_h) setHandle(io.m_h); } +      template<class U> +      IO(IO<U> && io) { m_h = io.m_h; io.m_h = NULL; }      template<class U>      bool isA() { return !!dynamic_cast<U *>(m_h); }      template<class U> diff --git a/includes/HttpServer.h b/includes/HttpServer.h index 6c28910..55950cb 100644 --- a/includes/HttpServer.h +++ b/includes/HttpServer.h @@ -39,6 +39,9 @@ class HttpServer {          String m_type;          std::list<String> m_extraHeaders;          bool m_flushed; + +          Response(const Response &) = delete; +        Response & operator=(const Response &) = delete;      };      class Action { @@ -56,6 +59,8 @@ class HttpServer {        private:          const Regex m_regex, m_host;          volatile int m_refCount; +          Action(const Action &) = delete; +        Action & operator=(const Action &) = delete;      };        HttpServer() : m_started(false), m_listenerPtr(NULL), m_port(80) { } @@ -82,6 +87,9 @@ class HttpServer {      RWLock m_actionsLock;      friend class HttpWorker; + +      HttpServer(const HttpServer &) = delete; +    HttpServer & operator=(const HttpServer &) = delete;  };  }; diff --git a/includes/Local.h b/includes/Local.h index 9221384..d009de7 100644 --- a/includes/Local.h +++ b/includes/Local.h @@ -6,8 +6,12 @@ namespace Balau {  class TLSManager {    public: +      TLSManager() { }      virtual void * getTLS();      virtual void * setTLS(void * val); +  private: +      TLSManager(const TLSManager &) = delete; +    TLSManager & operator=(const TLSManager &) = delete;  };  class PThreadsTLSManager : public TLSManager { diff --git a/includes/LuaTask.h b/includes/LuaTask.h index 9c495e8..50226cd 100644 --- a/includes/LuaTask.h +++ b/includes/LuaTask.h @@ -24,6 +24,9 @@ class LuaExecCell {      bool m_detached = false;      bool m_gotError = false;      friend class LuaTask; + +      LuaExecCell(const LuaExecCell &) = delete; +    LuaExecCell & operator=(const LuaExecCell &) = delete;  };  class LuaExecString : public LuaExecCell { diff --git a/includes/Main.h b/includes/Main.h index 49afd35..10a27b7 100644 --- a/includes/Main.h +++ b/includes/Main.h @@ -43,6 +43,9 @@ class Main {    private:      Status m_status;      static Main * s_application; + +      Main(const Main &) = delete; +    Main & operator=(const Main &) = delete;  };  }; diff --git a/includes/Printer.h b/includes/Printer.h index 8fd3674..cc9be2c 100644 --- a/includes/Printer.h +++ b/includes/Printer.h @@ -77,6 +77,9 @@ class Printer {    private:      uint32_t m_verbosity = M_STATUS | M_WARNING | M_ERROR | M_ENGINE_DEBUG;      bool m_detailledLogs = false; + +      Printer(const Printer &) = delete; +    Printer & operator=(const Printer &) = delete;  };  }; diff --git a/includes/SimpleMustache.h b/includes/SimpleMustache.h index 28cb477..b01955b 100644 --- a/includes/SimpleMustache.h +++ b/includes/SimpleMustache.h @@ -17,7 +17,7 @@ class SimpleMustache {              Context & operator[](const char * str);            private:                Proxy(Context * parent, ssize_t idx) : m_parent(parent), m_idx(idx) { } -            Context * m_parent; +            Context * m_parent = NULL;              ssize_t m_idx;              friend class Context;          }; @@ -71,6 +71,9 @@ class SimpleMustache {          friend class Proxy;          friend class SimpleMustache; + +          Context(const Context &) = delete; +        Context & operator=(const Context &) = delete;      };      void setTemplate(IO<Handle> h); @@ -87,6 +90,7 @@ class SimpleMustache {      void render(IO<Handle> h, Context * ctx) const { AAssert(ctx, "Please pass on a context to render"); render_r(h, ctx, "", m_fragments.begin(), false, -1); }      void empty() { while (!m_fragments.empty()) { delete m_fragments.front(); m_fragments.pop_front(); } }      void checkTemplate() { Fragments::const_iterator end = checkTemplate_r(m_fragments.begin()); AAssert(end == m_fragments.end(), "The template wasn't fully checked; possibly mismatched sections"); } +      SimpleMustache() { }        ~SimpleMustache() { empty(); }    private:      struct Fragment { @@ -108,6 +112,9 @@ class SimpleMustache {      static String escape(const String & s);      Fragments::const_iterator checkTemplate_r(Fragments::const_iterator begin, const String & endSection = "") const; + +      SimpleMustache(const SimpleMustache &) = delete; +    SimpleMustache & operator=(const SimpleMustache &) = delete;  };  }; diff --git a/includes/Socket.h b/includes/Socket.h index 7972cb5..00dc2b4 100644 --- a/includes/Socket.h +++ b/includes/Socket.h @@ -19,7 +19,6 @@ struct DNSRequest;  class Socket : public Handle {    public: -        Socket() throw (GeneralException);      virtual void close() throw (GeneralException);      virtual ssize_t read(void * buf, size_t count) throw (GeneralException); @@ -49,7 +48,7 @@ class Socket : public Handle {          virtual void gotOwner(Task * task);          ev::io m_evt; -        Task * m_task; +        Task * m_task = NULL;      };      int m_fd; @@ -77,8 +76,8 @@ class ListenerBase : public StacklessTask {      Events::Async m_evt;      volatile bool m_stop;      String m_local; -    int m_port; -    void * m_opaque; +    int m_port = 0; +    void * m_opaque = NULL;  };  template<class Worker> diff --git a/includes/Task.h b/includes/Task.h index cb69ca3..6b9eff0 100644 --- a/includes/Task.h +++ b/includes/Task.h @@ -192,21 +192,23 @@ class Task {      void switchTo();      static void CALLBACK coroutineTrampoline(void *);      void coroutine(); -    void * m_stack; +    void * m_stack = NULL;  #ifndef _WIN32      coro_context m_ctx;  #else -    void * m_fiber; +    void * m_fiber = NULL;  #endif -    TaskMan * m_taskMan; -    Status m_status; -    void * m_tls; +    TaskMan * m_taskMan = NULL; +    Status m_status = STARTING; +    void * m_tls = NULL;      friend class TaskMan;      friend class Events::TaskEvent;      Lock m_eventLock;      typedef std::list<Events::TaskEvent *> waitedByList_t;      waitedByList_t m_waitedBy; -    bool m_okayToEAgain, m_stackless; +    bool m_okayToEAgain = false, m_stackless = false; +      Task(const Task &) = delete; +    Task & operator=(const Task &) = delete;  };  class QueueBase { diff --git a/src/BRegex.cc b/src/BRegex.cc index 1ada2f1..d755e04 100644 --- a/src/BRegex.cc +++ b/src/BRegex.cc @@ -35,10 +35,9 @@ Balau::String Balau::Regex::getError(int err) const {      char * t;      s = regerror(err, &m_regex, NULL, 0); -    t = (char *) malloc(s); +    t = (char *) alloca(s);      regerror(err, &m_regex, t, s);      String r(t, s - 1); -    free(t);      return r;  } diff --git a/src/Input.cc b/src/Input.cc index a86468e..ebcffb3 100644 --- a/src/Input.cc +++ b/src/Input.cc @@ -275,6 +275,8 @@ ssize_t Balau::Input::read(void * buf, size_t count) throw (GeneralException) {      }      IAssert(false, "Shouldn't end up there."); + +    return -1;  }  bool Balau::Input::isClosed() { diff --git a/src/Output.cc b/src/Output.cc index 9f5e370..3ca97b0 100644 --- a/src/Output.cc +++ b/src/Output.cc @@ -275,6 +275,8 @@ ssize_t Balau::Output::write(const void * buf, size_t count) throw (GeneralExcep      }      IAssert(false, "Shouldn't end up there."); + +    return -1;  }  bool Balau::Output::isClosed() {  | 
