+ // builtins may cause ED_Alloc() to be called, update cached variables
+ cached_edictsfields = prog->edictsfields;
+ cached_entityfields = prog->entityfields;
+ cached_entityfields_3 = prog->entityfields - 3;
+ cached_entityfieldsarea = prog->entityfieldsarea;
+ cached_entityfieldsarea_entityfields = prog->entityfieldsarea - prog->entityfields;
+ cached_entityfieldsarea_3 = prog->entityfieldsarea - 3;
+ cached_entityfieldsarea_entityfields_3 = prog->entityfieldsarea - prog->entityfields - 3;
+ cached_max_edicts = prog->max_edicts;
+ // these do not change
+ //cached_statements = prog->statements;
+ //cached_allowworldwrites = prog->allowworldwrites;
+ //cached_flag = prog->flag;
+ // if prog->trace changed we need to change interpreter path
+ if (prog->trace != cachedpr_trace)
+ goto chooseexecprogram;