while (1)
{
st++;
- if (++profile > 1000000) // LordHavoc: increased runaway loop limit 10x
+ if (++profile > 10000000) // LordHavoc: increased runaway loop limit 100x
{
pr_xstatement = st - pr_statements;
Host_Error ("runaway loop error");
if (newf->first_statement < 0)
{
// negative statements are built in functions
- if ((-newf->first_statement) >= pr_numbuiltins)
- Host_Error ("Bad builtin call number");
- pr_builtins[-newf->first_statement] ();
+ int builtinnumber = -newf->first_statement;
+ pr_xfunction->builtinsprofile++;
+ if (builtinnumber < pr_numbuiltins && pr_builtins[builtinnumber])
+ pr_builtins[builtinnumber] ();
+ else
+ Host_Error ("No such builtin #%i", builtinnumber);
}
else
st = pr_statements + PR_EnterFunction(newf);