Listing 8: Combining use of assertions and defensive programming
int ObjectToInt( C_object* InObject )
{
assert( InObject != NULL );
if( InObject == NULL )
return INT_MAX;
int IntValue;
switch( InObject->GetType() )
{
case kInteger:
case KReal:
IntValue = GetInteger( InObject );
break;
case kBoolean:
IntValue = GetBoolean( InObject );
break;
case kPointer:
IntValue = GetPointer( InObject );
break;
default:
assert( "Invalid type of object" == NULL );
IntValue = INT_MAX;
break;
}
return IntValue;
}
//End of File