fix optimization-related warnings
authorterom
Tue, 09 Dec 2008 04:33:53 +0000
changeset 365 65295dfbbf64
parent 364 033f8236241a
child 366 f14a61b2a2d1
fix optimization-related warnings
src/Logger.cc
src/Logger.hh
src/Network/Buffer.hh
src/Network/Packet.cc
--- 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) {