diff --git a/src/frontend/outitf.c b/src/frontend/outitf.c index ab5109a06..2c5e190de 100644 --- a/src/frontend/outitf.c +++ b/src/frontend/outitf.c @@ -466,6 +466,54 @@ addSpecialDesc(runDesc *run, char *name, char *devname, char *param, int depind) } +static void +OUTpD_memory(runDesc *run, IFvalue *refValue, IFvalue *valuePtr) +{ + int i; + + for (i = 0; i < run->numData; i++) { + +#ifdef TCL_MODULE + /*Locks the blt vector to stop access*/ + blt_lockvec(i); +#endif + + if (run->data[i].outIndex == -1) { + if (run->data[i].type == IF_REAL) + plotAddRealValue(&run->data[i], refValue->rValue); + else if (run->data[i].type == IF_COMPLEX) + plotAddComplexValue(&run->data[i], refValue->cValue); + } else if (run->data[i].regular) { + if (run->data[i].type == IF_REAL) + plotAddRealValue(&run->data[i], + valuePtr->v.vec.rVec[run->data[i].outIndex]); + else if (run->data[i].type == IF_COMPLEX) + plotAddComplexValue(&run->data[i], + valuePtr->v.vec.cVec[run->data[i].outIndex]); + } else { + IFvalue val; + + /* should pre-check instance */ + if (!getSpecial(&run->data[i], run, &val)) + continue; + + if (run->data[i].type == IF_REAL) + plotAddRealValue(&run->data[i], val.rValue); + else if (run->data[i].type == IF_COMPLEX) + plotAddComplexValue(&run->data[i], val.cValue); + else + fprintf(stderr, "OUTpData: unsupported data type\n"); + } + +#ifdef TCL_MODULE + /*relinks and unlocks vector*/ + blt_relink(i, (run->data[i]).vec); +#endif + + } +} + + int OUTpData(runDesc *plotPtr, IFvalue *refValue, IFvalue *valuePtr) { @@ -616,44 +664,7 @@ OUTpData(runDesc *plotPtr, IFvalue *refValue, IFvalue *valuePtr) } #endif - for (i = 0; i < run->numData; i++) { - -#ifdef TCL_MODULE - /*Locks the blt vector to stop access*/ - blt_lockvec(i); -#endif - - if (run->data[i].outIndex == -1) { - if (run->data[i].type == IF_REAL) - plotAddRealValue(&run->data[i], refValue->rValue); - else if (run->data[i].type == IF_COMPLEX) - plotAddComplexValue(&run->data[i], refValue->cValue); - } else if (run->data[i].regular) { - if (run->data[i].type == IF_REAL) - plotAddRealValue(&run->data[i], - valuePtr->v.vec.rVec[run->data[i].outIndex]); - else if (run->data[i].type == IF_COMPLEX) - plotAddComplexValue(&run->data[i], - valuePtr->v.vec.cVec[run->data[i].outIndex]); - } else { - IFvalue val; - /* should pre-check instance */ - if (!getSpecial(&run->data[i], run, &val)) - continue; - if (run->data[i].type == IF_REAL) - plotAddRealValue(&run->data[i], val.rValue); - else if (run->data[i].type == IF_COMPLEX) - plotAddComplexValue(&run->data[i], val.cValue); - else - fprintf(stderr, "OUTpData: unsupported data type\n"); - } - -#ifdef TCL_MODULE - /*relinks and unlocks vector*/ - blt_relink(i, (run->data[i]).vec); -#endif - - } + OUTpD_memory(run, refValue, valuePtr); gr_iplot(run->runPlot); }