The new table implementation will have a single Table class that will represent a table entry for a single code and will serve as the base class to all of the derived table entry classes. Global table information (name to entry map, alternate code map, etc.) will be static members of this class. This is equivalent to the current since table instance.
Currently the Table class and Table Entry structure are separate definitions, but eventually the table entry members will be members of the new base table class. The current table class has many access functions where their first argument is a code enumerator (which is currently used as an index). There are also many access functions that have a token pointer as their first argument, but this is mostly used to get the code from the token.
The new table model will access the table entries by a pointer to the entry instead of be a code enumerator used as an index. The code argument access functions will become simply access functions to the table entry. The next step in this transition to the new table model will be to use pointers to table entries instead of code enumerators. The token code member will become a table entry pointer.
To start this transition, the Table Entry structure was moved from the table source file to the table header file. The members were also renamed with the member (m_) prefix except for the function pointer members (which will be replaced with virtual functions in the new table model).
[branch table commit 94decad26c]
Sunday, December 21, 2014
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
All comments and feedback welcomed, whether positive or negative.
(Anonymous comments are allowed, but comments with URL links or unrelated comments will be removed.)