Fixed performance (assert/branching/call overhead) issue with DataType.
git-svn-id: svn://localhost/ardour2/branches/midi@1776 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
c3e666867c
commit
5a1ca70f07
@ -48,15 +48,6 @@ public:
|
||||
*/
|
||||
static const size_t num_types = 2;
|
||||
|
||||
|
||||
/** Helper for collections that store typed things by index (BufferSet, PortList).
|
||||
* Guaranteed to be a valid index from 0 to (the number of available types - 1),
|
||||
* because NIL is not included. No, this isn't pretty - purely for speed.
|
||||
* See DataType::to_index().
|
||||
*/
|
||||
inline static size_t symbol_index(const Symbol symbol)
|
||||
{ return (size_t)symbol - 1; }
|
||||
|
||||
DataType(const Symbol& symbol)
|
||||
: _symbol(symbol)
|
||||
{}
|
||||
@ -95,8 +86,8 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
Symbol to_symbol() const { return _symbol; }
|
||||
inline size_t to_index() const { assert(_symbol != NIL); return symbol_index(_symbol); }
|
||||
//Symbol to_symbol() const { return _symbol; }
|
||||
inline size_t to_index() const { return (size_t)_symbol - 1; }
|
||||
|
||||
/** DataType iterator, for writing generic loops that iterate over all
|
||||
* available types.
|
||||
|
Loading…
Reference in New Issue
Block a user