Listing 3: Checking data structure validity
enum
{
kEnterOperation,
kEnterMethod,
kExitMethod,
...
kDispatchGlue,
kNUM_ENTRIES
};
class CodeGenerator
{
...
static char* NamesTable[ kNUM_ENTRIES ];
static void InitNames( void );
};
void CodeGenerator::InitNames( void )
{
int i;
for( i = 0; i < kNUM_ENTRIES; ++i )
NamesTable[ i ] = NULL;
NamesTable[ kEnterOperation ] = "EnterOperation";
NamesTable[ kEnterMethod ] = "EnterMethod";
NamesTable[ kExitMethod ] = "ExitMethod";
...
NamesTable[ kDispatchGlue ] = "DispatchGlue";
for( i = 0; i < kNUM_ENTRIES; ++i )
assert( NamesTable[ i] != NULL );
}
//End of File