]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/util/pointer.h
Move basic, non-numeric macros from util/numeric.h to basicmacros.h
[dragonfireclient.git] / src / util / pointer.h
index f656833328f716a57aefd8d36fb80ded147ec94b..7f6654787814527f2c38e715a2e8f1f9744e7724 100644 (file)
@@ -178,6 +178,14 @@ class Buffer
        unsigned int m_size;
 };
 
+/************************************************
+ *           !!!  W A R N I N G  !!!            *
+ *           !!!  A C H T U N G  !!!            *
+ *                                              *
+ * This smart pointer class is NOT thread safe. *
+ * ONLY use in a single-threaded context!       *
+ *                                              *
+ ************************************************/
 template <typename T>
 class SharedBuffer
 {
@@ -197,6 +205,7 @@ class SharedBuffer
                else
                        data = NULL;
                refcount = new unsigned int;
+               memset(data,0,sizeof(T)*m_size);
                (*refcount) = 1;
        }
        SharedBuffer(const SharedBuffer &buffer)
@@ -257,7 +266,7 @@ class SharedBuffer
        }
        T & operator[](unsigned int i) const
        {
-               //assert(i < m_size)
+               assert(i < m_size);
                return data[i];
        }
        T * operator*() const