Update of /cvsroot/pure-data/externals/grill/flext/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3028/source
Modified Files: flclass.h flext.cpp flmap.h flmeth.cpp flmsg.cpp flsupport.h Log Message: static method map minor other things fixes for OSX fix for gcc
Index: flmap.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flmap.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** flmap.h 15 Mar 2005 04:56:36 -0000 1.6 --- flmap.h 16 Mar 2005 04:56:30 -0000 1.7 *************** *** 16,19 **** --- 16,21 ---- #define __FLMAP_H
+ #include "flprefix.h" + /*! \defgroup FLEXT_SUPPORT Flext support classes @{ *************** *** 79,83 **** #endif
! class TableAnyMap { protected: --- 81,85 ---- #endif
! class FLEXT_SHARE TableAnyMap { protected: *************** *** 102,106 **** int size() const;
! inline void insert(size_t k,void *t) { FLEXT_ASSERT(t); --- 104,108 ---- int size() const;
! void insert(size_t k,void *t) { FLEXT_ASSERT(t); *************** *** 109,117 **** }
! inline void *find(size_t k) { return n?_find(k):NULL; }
void clear();
! inline void _toleft(size_t k,void *t) { if(left) --- 111,119 ---- }
! void *find(size_t k) { return n?_find(k):NULL; }
void clear();
! void _toleft(size_t k,void *t) { if(left) *************** *** 124,128 **** }
! inline void _toright(size_t k,void *t) { if(right) --- 126,130 ---- }
! void _toright(size_t k,void *t) { if(right) *************** *** 135,140 **** }
! inline void _toleft(Data &v) { _toleft(v.key,v.value); } ! inline void _toright(Data &v) { _toright(v.key,v.value); }
void _set(size_t k,void *t); --- 137,142 ---- }
! void _toleft(Data &v) { _toleft(v.key,v.value); } ! void _toright(Data &v) { _toright(v.key,v.value); }
void _set(size_t k,void *t); *************** *** 151,157 **** { public: ! inline iterator(): map(NULL) {} ! inline iterator(TableAnyMap &m): map(&m),ix(0) { leftmost(); } ! inline iterator(iterator &it): map(it.map),ix(it.ix) {}
iterator &operator =(const iterator &it) { map = it.map,ix = it.ix; return *this; } --- 153,159 ---- { public: ! iterator(): map(NULL) {} ! iterator(TableAnyMap &m): map(&m),ix(0) { leftmost(); } ! iterator(iterator &it): map(it.map),ix(it.ix) {}
iterator &operator =(const iterator &it) { map = it.map,ix = it.ix; return *this; } *************** *** 182,186 ****
template <typename K,typename T,int N = 8,bool O = false> ! class TableMap : TableAnyMap { --- 184,188 ----
template <typename K,typename T,int N = 8,bool O = false> ! class FLEXT_SHARE TableMap : TableAnyMap { *************** *** 201,207 **** { public: ! inline iterator() {} ! inline iterator(TableMap &m): TableAnyMap::iterator(m) {} ! inline iterator(iterator &it): TableAnyMap::iterator(it) {}
inline iterator &operator =(const iterator &it) { TableAnyMap::operator =(it); return *this; } --- 203,209 ---- { public: ! iterator() {} ! iterator(TableMap &m): TableAnyMap::iterator(m) {} ! iterator(iterator &it): TableAnyMap::iterator(it) {}
inline iterator &operator =(const iterator &it) { TableAnyMap::operator =(it); return *this; } *************** *** 216,220 ****
protected: ! inline TableMap(TableAnyMap *p): TableAnyMap(p,N,slots,O) {}
virtual TableAnyMap *New(TableAnyMap *parent) { return new TableMap(parent); } --- 218,222 ----
protected: ! TableMap(TableAnyMap *p): TableAnyMap(p,N,slots,O) {}
virtual TableAnyMap *New(TableAnyMap *parent) { return new TableMap(parent); }
Index: flsupport.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flsupport.h,v retrieving revision 1.82 retrieving revision 1.83 diff -C2 -d -r1.82 -r1.83 *** flsupport.h 15 Mar 2005 04:56:36 -0000 1.82 --- flsupport.h 16 Mar 2005 04:56:38 -0000 1.83 *************** *** 647,650 **** --- 647,653 ---- //! Construct list AtomListStatic(const AtomList &a): AtomListStaticBase(PRE,pre) { operator =(a); } + + //! Set list by another AtomList + AtomListStatic &operator =(const AtomListStatic &a) { AtomListStaticBase::operator =(a); return *this; } protected: t_atom pre[PRE];
Index: flext.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flext.cpp,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** flext.cpp 13 Mar 2005 04:56:39 -0000 1.33 --- flext.cpp 16 Mar 2005 04:56:29 -0000 1.34 *************** *** 39,43 **** t_classid clid = thisClassId(); clmethhead = ClMeths(clid); - methhead = new ItemCont; bindhead = NULL;
--- 39,42 ---- *************** *** 63,67 **** #if FLEXT_SYS == FLEXT_SYS_MAX // according to David Z. one should do that first... ! if(insigs) dsp_free(thisHdr()); // if(insigs) dsp_freebox(thisHdr()); #endif --- 62,66 ---- #if FLEXT_SYS == FLEXT_SYS_MAX // according to David Z. one should do that first... ! if(insigs) dsp_free(thisHdr()); // if(insigs) dsp_freebox(thisHdr()); #endif *************** *** 75,79 ****
// delete message lists - if(methhead) delete methhead; if(bindhead) delete bindhead; // ATTENTION: the object must free all memory associated to bindings itself if(attrhead) delete attrhead; --- 74,77 ----
Index: flmsg.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flmsg.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** flmsg.cpp 13 Mar 2005 04:56:39 -0000 1.14 --- flmsg.cpp 16 Mar 2005 04:56:30 -0000 1.15 *************** *** 141,155 ****
// search for exactly matching tag ! if((lst = methhead->FindList(s,inlet)) != NULL && TryMethTag(lst,s,argc,argv)) return true; if((lst = clmethhead->FindList(s,inlet)) != NULL && TryMethTag(lst,s,argc,argv)) return true;
// if no list args, then search for pure symbol if(!argc) { ! if((lst = methhead->FindList(sym_symbol,inlet)) != NULL && TryMethSym(lst,s)) return true; if((lst = clmethhead->FindList(sym_symbol,inlet)) != NULL && TryMethSym(lst,s)) return true; }
// otherwise search for anything ! if((lst = methhead->FindList(sym_anything,inlet)) != NULL && TryMethAny(lst,s,argc,argv)) return true; if((lst = clmethhead->FindList(sym_anything,inlet)) != NULL && TryMethAny(lst,s,argc,argv)) return true;
--- 141,155 ----
// search for exactly matching tag ! if((lst = methhead.FindList(s,inlet)) != NULL && TryMethTag(lst,s,argc,argv)) return true; if((lst = clmethhead->FindList(s,inlet)) != NULL && TryMethTag(lst,s,argc,argv)) return true;
// if no list args, then search for pure symbol if(!argc) { ! if((lst = methhead.FindList(sym_symbol,inlet)) != NULL && TryMethSym(lst,s)) return true; if((lst = clmethhead->FindList(sym_symbol,inlet)) != NULL && TryMethSym(lst,s)) return true; }
// otherwise search for anything ! if((lst = methhead.FindList(sym_anything,inlet)) != NULL && TryMethAny(lst,s,argc,argv)) return true; if((lst = clmethhead->FindList(sym_anything,inlet)) != NULL && TryMethAny(lst,s,argc,argv)) return true;
Index: flmeth.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flmeth.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** flmeth.cpp 15 Mar 2005 04:56:36 -0000 1.15 --- flmeth.cpp 16 Mar 2005 04:56:30 -0000 1.16 *************** *** 18,24 **** #include "flinternal.h"
- #include <set> - - flext_base::MethItem::MethItem(AttrItem *conn): Item(conn),index(0), --- 18,21 ---- *************** *** 42,46 **** void flext_base::AddMethodDef(int inlet,const t_symbol *tag) { ! methhead->Add(new MethItem,tag,inlet); }
--- 39,43 ---- void flext_base::AddMethodDef(int inlet,const t_symbol *tag) { ! methhead.Add(new MethItem,tag,inlet); }
*************** *** 98,102 **** int i; for(i = 0; i <= 1; ++i) { ! ItemCont *a = i?methhead:clmethhead; if(a && a->Contained(inlet)) { ItemSet &ai = a->GetInlet(inlet); --- 95,99 ---- int i; for(i = 0; i <= 1; ++i) { ! ItemCont *a = i?&methhead:clmethhead; if(a && a->Contained(inlet)) { ItemSet &ai = a->GetInlet(inlet);
Index: flclass.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flclass.h,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** flclass.h 15 Mar 2005 04:56:35 -0000 1.53 --- flclass.h 16 Mar 2005 04:56:29 -0000 1.54 *************** *** 665,669 **** \note not thread-safe! */ ! class ItemCont { public: --- 665,669 ---- \note not thread-safe! */ ! class FLEXT_SHARE ItemCont { public: *************** *** 822,826 **** //! @} FLEXT_CLASS
! ItemCont *ThMeths() { return methhead; } static ItemCont *ClMeths(t_classid c) { return GetClassArr(c,0); }
--- 822,826 ---- //! @} FLEXT_CLASS
! ItemCont *ThMeths() { return &methhead; } static ItemCont *ClMeths(t_classid c) { return GetClassArr(c,0); }
*************** *** 871,875 **** static ItemCont *GetClassArr(t_classid,int ix);
! mutable ItemCont *methhead,*clmethhead; mutable ItemCont *bindhead; --- 871,875 ---- static ItemCont *GetClassArr(t_classid,int ix);
! mutable ItemCont methhead,*clmethhead; mutable ItemCont *bindhead;