r2844 - in trunk/libmutil: include/libmutil source
erik at minisip.org
erik at minisip.org
Tue Oct 17 21:52:25 CEST 2006
Author: erik
Date: 2006-10-17 21:52:24 +0200 (Tue, 17 Oct 2006)
New Revision: 2844
Modified:
trunk/libmutil/include/libmutil/CircularBuffer.h
trunk/libmutil/include/libmutil/IString.h
trunk/libmutil/source/CircularBuffer.cxx
trunk/libmutil/source/IString.cxx
trunk/libmutil/source/MessageRouter.cxx
trunk/libmutil/source/Timestamp.cxx
Log:
* Bug fix: Fixed the copy constructors for CircularBuffer, IString and MessageRouter
Modified: trunk/libmutil/include/libmutil/CircularBuffer.h
===================================================================
--- trunk/libmutil/include/libmutil/CircularBuffer.h 2006-10-17 19:50:20 UTC (rev 2843)
+++ trunk/libmutil/include/libmutil/CircularBuffer.h 2006-10-17 19:52:24 UTC (rev 2844)
@@ -40,6 +40,7 @@
class LIBMUTIL_API CircularBuffer {
public:
CircularBuffer(int size);
+ CircularBuffer(const CircularBuffer &);
virtual ~CircularBuffer();
/**
Modified: trunk/libmutil/include/libmutil/IString.h
===================================================================
--- trunk/libmutil/include/libmutil/IString.h 2006-10-17 19:50:20 UTC (rev 2843)
+++ trunk/libmutil/include/libmutil/IString.h 2006-10-17 19:52:24 UTC (rev 2844)
@@ -60,6 +60,8 @@
*/
StringAtom(char *buf, int n);
+ StringAtom(const StringAtom &);
+
/**
* Avoid using this constructor if possible
*/
Modified: trunk/libmutil/source/CircularBuffer.cxx
===================================================================
--- trunk/libmutil/source/CircularBuffer.cxx 2006-10-17 19:50:20 UTC (rev 2843)
+++ trunk/libmutil/source/CircularBuffer.cxx 2006-10-17 19:52:24 UTC (rev 2844)
@@ -38,6 +38,18 @@
buf = new short[size];
}
+CircularBuffer::CircularBuffer(const CircularBuffer &b):
+ maxSize(b->maxSize),
+ size(b->size),
+ readIdx(b->readIdx),
+ writeIdx(b->writeIdx),
+ byteCounter(b->byteCounter) {
+
+ buf = new short[size];
+ memcpy(buf,d->buf,size*sizeof(short));
+}
+
+
CircularBuffer::~CircularBuffer()
{
if( buf != NULL ) {
Modified: trunk/libmutil/source/IString.cxx
===================================================================
--- trunk/libmutil/source/IString.cxx 2006-10-17 19:50:20 UTC (rev 2843)
+++ trunk/libmutil/source/IString.cxx 2006-10-17 19:52:24 UTC (rev 2844)
@@ -37,6 +37,11 @@
n = (int)s.length();
}
+StringAtom::StringAtom(const StringAtom &a):n(a.n){
+ buf = new char[n];
+ memcpy(buf,a.buf,n);
+}
+
StringAtom::~StringAtom(){
massert(buf);
delete []buf;
Modified: trunk/libmutil/source/MessageRouter.cxx
===================================================================
--- trunk/libmutil/source/MessageRouter.cxx 2006-10-17 19:50:20 UTC (rev 2843)
+++ trunk/libmutil/source/MessageRouter.cxx 2006-10-17 19:52:24 UTC (rev 2844)
@@ -41,6 +41,10 @@
internal = new MessageRouterInternal;
}
+MessageRouter::MessageRouter(const MessageRouter &mr){
+ internal = new MessageRouterInternal(*mr.internal);
+}
+
MessageRouter::~MessageRouter(){
delete internal;
}
Modified: trunk/libmutil/source/Timestamp.cxx
===================================================================
--- trunk/libmutil/source/Timestamp.cxx 2006-10-17 19:50:20 UTC (rev 2843)
+++ trunk/libmutil/source/Timestamp.cxx 2006-10-17 19:52:24 UTC (rev 2844)
@@ -35,6 +35,7 @@
#ifdef WIN32
Timestamp::Timestamp(){}
+ Timestamp::Timestamp(const Timestamp &){}
#else
Timestamp::Timestamp(){
tz = new struct timezone;
@@ -44,6 +45,26 @@
index = 0;
auto_id=-1;
}
+ Timestamp::Timestamp(const Timestamp &t):
+ index(t.index),
+ auto_id(t.auto_id),
+ startTime(t.startTime),
+ stopTime(t.stopTime),
+ filename(t.filename)
+ {
+ tz = new struct timezone;
+ memcpy(tz, t.tz, sizeof(struct timezone) );
+
+ values = new struct timeval[ MAX_TIMESTAMPS ];
+ memcpy(values, t.values, MAX_TIMESTAMPS* sizeof(struct timeval) );
+
+ strings = new string[ MAX_TIMESTAMPS + 1];
+ for (int i=0; i<MAX_TIMESTAMPS; i++)
+ strings[i]=t.strings[i];
+
+ ids = new int32_t[MAX_TIMESTAMPS];
+ memcpy(ids, t.ids, MAX_TIMESTAMPS*sizeof(int32_t) );
+ }
#endif
#ifdef WIN32
More information about the Minisip-devel
mailing list