diff options
author | Thomas Grill <xovo@users.sourceforge.net> | 2005-12-15 23:04:06 +0000 |
---|---|---|
committer | Thomas Grill <xovo@users.sourceforge.net> | 2005-12-15 23:04:06 +0000 |
commit | ec54f5e49b24dc57e389b7bce58f967ee69a4b01 (patch) | |
tree | 15d495973fa6053835fd03b50e3f64dc6717815e /externals | |
parent | 90d5b8b4a064420d74678654e94ea4755b377f21 (diff) |
new flext::CopyAtoms function
fixed dangerous spot (also memory leak) with message queuing
flext::Forward has more incarnations now
added message bundles (flext::MsgBundle)
fixes for gcc 3.3, changing FLEXT_USECMEM to FLEXT_USE_CMEMw
fixed initialization of message bundle items
svn path=/trunk/; revision=4228
Diffstat (limited to 'externals')
-rw-r--r-- | externals/grill/flext/changes.txt | 2 | ||||
-rwxr-xr-x | externals/grill/flext/source/flqueue.cpp | 17 | ||||
-rw-r--r-- | externals/grill/flext/source/flsupport.cpp | 10 | ||||
-rw-r--r-- | externals/grill/flext/source/flsupport.h | 10 |
4 files changed, 20 insertions, 19 deletions
diff --git a/externals/grill/flext/changes.txt b/externals/grill/flext/changes.txt index 65826efc..38320249 100644 --- a/externals/grill/flext/changes.txt +++ b/externals/grill/flext/changes.txt @@ -22,7 +22,7 @@ Version history: - cleaned up internals (like Max/MSP typedefs) - fixed coexistence of message and signal objects in Max/MSP object libraries - fixes for pthreads version 2 -- deprecated FLEXT_GLOBALNEW in favor of FLEXT_USECMEM (either global new/delete operators or C library memory allocation) +- deprecated FLEXT_NOGLOBALNEW in favor of FLEXT_USE_CMEM (either global new/delete operators or C library memory allocation) - fixing uninitialized pointer (first inlet pointer) - added message bundle functionality (to send more messages over the thread boundary to arrive at the same logical time) - fixed dangerous spot (also memory leak) with message queuing diff --git a/externals/grill/flext/source/flqueue.cpp b/externals/grill/flext/source/flqueue.cpp index efd6fd51..b1adfb24 100755 --- a/externals/grill/flext/source/flqueue.cpp +++ b/externals/grill/flext/source/flqueue.cpp @@ -49,14 +49,8 @@ class Queue: { public: inline bool Empty() const { return Size() == 0; } - - inline void Push(MsgBundle *m) - { - if(m) { - Put(m); - Trigger(); - } - } + + inline void Push(MsgBundle *m); // defined after MsgBundle (gcc 3.3. won't take it otherwise...) }; static Queue queue; @@ -266,6 +260,13 @@ private: } }; +inline void Queue::Push(MsgBundle *m) +{ + if(m) { + Put(m); + Trigger(); + } +} #if FLEXT_QMODE == 2 static flext::ThrCond qthrcond; diff --git a/externals/grill/flext/source/flsupport.cpp b/externals/grill/flext/source/flsupport.cpp index 929de35e..eaa27a60 100644 --- a/externals/grill/flext/source/flsupport.cpp +++ b/externals/grill/flext/source/flsupport.cpp @@ -106,7 +106,7 @@ void flext::Setup() #define LARGEALLOC 32000 -#ifndef FLEXT_USECMEM +#ifndef FLEXT_USE_CMEM #ifdef FLEXT_DEBUGMEM static const size_t memtest = 0x12345678L; @@ -131,7 +131,7 @@ void *flext_root::operator new(size_t bytes) //! We need system locking here for secondary threads! SYSLOCK(); -#if defined(FLEXT_USECMEM) +#if defined(FLEXT_USE_CMEM) blk = (char *)::malloc(bytes); #else blk = (char *)::getbytes(bytes); @@ -175,7 +175,7 @@ void flext_root::operator delete(void *blk) //! We need system locking here for secondary threads! SYSLOCK(); -#if defined(FLEXT_USECMEM) +#if defined(FLEXT_USE_CMEM) ::free(ori); #else ::freebytes(ori,bytes); @@ -217,7 +217,7 @@ void *flext_root::NewAligned(size_t bytes,int bitalign) //! We need system locking here for secondary threads! SYSLOCK(); -#if defined(FLEXT_USECMEM) +#if defined(FLEXT_USE_CMEM) blk = (char *)::malloc(bytes); #else blk = (char *)::getbytes(bytes); @@ -251,7 +251,7 @@ void flext_root::FreeAligned(void *blk) //! We need system locking here for secondary threads! SYSLOCK(); -#if defined(FLEXT_USECMEM) +#if defined(FLEXT_USE_CMEM) ::free(ori); #else ::freebytes(ori,bytes); diff --git a/externals/grill/flext/source/flsupport.h b/externals/grill/flext/source/flsupport.h index 2a1b7a6d..526a60af 100644 --- a/externals/grill/flext/source/flsupport.h +++ b/externals/grill/flext/source/flsupport.h @@ -47,11 +47,11 @@ public: */ #ifdef FLEXT_NOGLOBALNEW -#error FLEXT_NOGLOBALNEW is deprecated, define FLEXT_USECMEM instead -#define FLEXT_USECMEM +#error FLEXT_NOGLOBALNEW is deprecated, define FLEXT_USE_CMEM instead +#define FLEXT_USE_CMEM #endif -#ifdef FLEXT_USECMEM +#ifdef FLEXT_USE_CMEM inline void *operator new(size_t bytes) { return ::operator new(bytes); } inline void operator delete(void *blk) { ::operator delete(blk); } @@ -104,7 +104,7 @@ public: //! @} FLEXT_S_MEMORY }; -#ifndef FLEXT_USECMEM +#ifndef FLEXT_USE_CMEM /************************************************************************/ // MFC doesn't like global overloading of allocators // anyway, who likes MFC @@ -125,7 +125,7 @@ inline void *operator new[](size_t bytes) NEWTHROW { return flext_root::operator inline void operator delete[](void *blk) DELTHROW { flext_root::operator delete[](blk); } #endif -#endif // FLEXT_USECMEM +#endif // FLEXT_USE_CMEM /************************************************************************/ |