if (firstReorder == 0)
if (numReorder == 0)
    int bdd_appex(int l, int r, int opr, int var) {        int res;        firstReorder = 1;        CHECKa(l, bddfalse);        CHECKa(r, bddfalse);        CHECKa(var, bddfalse);        if (opr < 0 || opr > bddop_invimp) {            bdd_error(BDD_OP);            return bddfalse;        }        if (var < 2) /* Empty set */            return bdd_apply(l, r, opr);        if (applycache == null) applycache = BddCacheI_init(cachesize);        if (appexcache == null) appexcache = BddCacheI_init(cachesize);        if (quantcache == null) quantcache = BddCacheI_init(cachesize);                again : for (;;) {            if (varset2vartable(var) < 0)                return bddfalse;            try {                INITREF();                applyop = bddop_or;                appexop = opr;                appexid = (var << 5) | (appexop << 1); /* FIXME: range! */                quantid = (appexid << 3) | CACHEID_APPEX;                if (firstReorder == 0)                    bdd_disable_reorder();                res = opr == bddop_and ? relprod_rec(l, r) : appquant_rec(l, r);                if (firstReorder == 0)                    bdd_enable_reorder();            } catch (ReorderException x) {                bdd_checkreorder();                if (firstReorder-- == 1)                    continue again;                res = BDDZERO;                /* avoid warning about res being uninitialized */            }            break;        }        checkresize();        return res;    }