summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/BStream.h6
-rw-r--r--includes/Buffer.h8
-rw-r--r--includes/Exceptions.h6
-rw-r--r--includes/Handle.h15
-rw-r--r--includes/HttpServer.h8
-rw-r--r--includes/Local.h4
-rw-r--r--includes/LuaTask.h3
-rw-r--r--includes/Main.h3
-rw-r--r--includes/Printer.h3
-rw-r--r--includes/SimpleMustache.h9
-rw-r--r--includes/Socket.h7
-rw-r--r--includes/Task.h14
-rw-r--r--src/BRegex.cc3
-rw-r--r--src/Input.cc2
-rw-r--r--src/Output.cc2
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() {