public void MakeDefault()
{
if(this.Disposed == true)
{
throw new ObjectDisposedException(this.GetType().Name);
}
_state = DeclState.Defaulted;
idE.DeclManager.MediaPrint("DEFAULTED");
string defaultText = this.DefaultDefinition;
// a parse error inside a DefaultDefinition() string could
// cause an infinite loop, but normal default definitions could
// still reference other default definitions, so we can't
// just dump out on the first recursion.
if(++_recursionLevel > 100)
{
idConsole.FatalError("make default: bad defaultDefinition(): {0}", defaultText);
return;
}
// always free data before parsing
ClearData();
// parse
Parse(defaultText);
// we could still eventually hit the recursion if we have enough Error() calls inside Parse...
_recursionLevel--;
}