--- a/src/Logger.cc Tue Dec 09 04:31:39 2008 +0000
+++ b/src/Logger.cc Tue Dec 09 04:33:53 2008 +0000
@@ -1,7 +1,9 @@
#include "Logger.hh"
-Logger::Logger (std::ostream &stream, enum LogLevel level, const char *module) : stream(stream), level(level), module(module) {
+Logger::Logger (std::ostream &stream, enum LogLevel level, const char *module) :
+ stream(stream), level(level), module(module)
+{
const char *l;
switch (level) {
@@ -13,11 +15,15 @@
default: l = "???"; break;
};
+#ifndef NDEBUG
stream << l << " [" << module << "] ";
+#endif
}
Logger::~Logger (void) {
+#ifndef NDEBUG
stream << std::endl;
+#endif
}
std::ostream& operator<< (std::ostream &s, CL_NetComputer &c) {
--- a/src/Logger.hh Tue Dec 09 04:31:39 2008 +0000
+++ b/src/Logger.hh Tue Dec 09 04:33:53 2008 +0000
@@ -33,7 +33,11 @@
Logger (std::ostream &stream, enum LogLevel level, const char *module);
template <typename T> Logger& operator<< (const T val) {
+#ifndef NDEBUG
stream << val;
+#else
+ (void) val;
+#endif
return *this;
}
--- a/src/Network/Buffer.hh Tue Dec 09 04:31:39 2008 +0000
+++ b/src/Network/Buffer.hh Tue Dec 09 04:33:53 2008 +0000
@@ -171,7 +171,8 @@
PrefixType prefix;
// we *must* have a valid prefix
- assert(peek_prefix(prefix));
+ if (!peek_prefix(prefix))
+ assert(false);
// trim the bytes out
trim(sizeof(PrefixType) + prefix);
--- a/src/Network/Packet.cc Tue Dec 09 04:31:39 2008 +0000
+++ b/src/Network/Packet.cc Tue Dec 09 04:33:53 2008 +0000
@@ -4,6 +4,8 @@
#include "Packet.hh"
+// XXX: assumes that sizeof(float32) == sizeof(int32);
+
/*
* NetworkPacketInput
*/
@@ -43,8 +45,13 @@
float NetworkPacketInput::read_float32 (void) {
int32_t ival = read_int32();
+ float fval;
+
+ assert(sizeof(ival) == sizeof(fval));
- return *((float *) &ival);
+ memcpy(&fval, &ival, sizeof(float));
+
+ return fval;
}
Vector NetworkPacketInput::read_vector (void) {
@@ -87,8 +94,14 @@
write_val<int8_t>(val);
}
-void NetworkPacketOutput::write_float32 (float val) {
- write_int32(*((int32_t *) &val));
+void NetworkPacketOutput::write_float32 (float fval) {
+ int32_t ival;
+
+ assert(sizeof(ival) == sizeof(fval));
+
+ memcpy(&ival, &fval, sizeof(int32_t));
+
+ write_int32(ival);
}
void NetworkPacketOutput::write_vector (const Vector &vec) {