struct data { | |
int prio; | |
signed char status; | |
}; | |
struct base { | |
unsigned _num; | |
struct data vec[10]; | |
}; | |
static struct data *ix(struct base *base, unsigned i) | |
{ | |
return &base->vec[i]; | |
} | |
struct heap { | |
struct base base; | |
}; | |
struct heap *heap; | |
void increase_insn_priority (int *fld, int amount) | |
{ | |
if (ix(heap ? &heap->base : 0, *fld)->status > 0) | |
ix(heap ? &heap->base : 0, *fld)->prio += amount; | |
} |