static int RunDormantCmd(ClientData cd, Tcl_Interp *interp, int argc, char *argv[]) { #ifdef _WIN32 Interpreter *i = (Interpreter *)cd; symbolArr roots; symbolArr scope; if(i->ParseArgString((char *)argv[1], roots)!=0) return TCL_ERROR; if(i->ParseArgString((char *)argv[2], scope)!=0) return TCL_ERROR; // Find all projnodes in input and set them up as domain for(int ii = roots.size() - 1; ii >= 0; ii--){ symbolPtr sym = roots[ii]; if(sym.get_kind() == DD_PROJECT){ Relational *rp = (Relational *)sym; projNode *pn = (projNode *)rp; if(pn){ projList::domain_add(pn->get_name()); } roots.remove(sym); } } setupdefaults(); decomposer *d = new decomposer; d->go_deadcode_only(roots, defaultweights, NWEIGHTS, TRUE, &scope); Tcl_SetResult(i->interp, "", TCL_VOLATILE); #endif return TCL_OK; }