rem: if (Ns_CheckStack() != NS_OK) { interp->result =  "danger: stack grown too large (recursive adp?)"; itPtr->adp.exception = ADP_OVERFLOW; return TCL_ERROR; }
context: EvalBlocks(NsInterp *itPtr, Block *blockPtr){    Tcl_Interp *interp = itPtr->interp;    int chunk, code;    if (Ns_CheckStack() != NS_OK) {        interp->result =  "danger: stack grown too large (recursive adp?)";	itPtr->adp.exception = ADP_OVERFLOW;        return TCL_ERROR;    }    chunk = 0;    code = TCL_OK;    while (blockPtr != NULL && itPtr->adp.exception == ADP_OK) {	if (blockPtr->scriptObjPtr == NULL) {	    Ns_DStringNAppend(itPtr->adp.outputPtr, blockPtr->text, blockPtr->length);	} else {    	    code = Tcl_EvalObjEx(interp, blockPtr->scriptObjPtr, 0);	    if (code != TCL_OK && code != TCL_RETURN && itPtr->adp.exception == ADP_OK) {    	    	LogError(itPtr, chunk);	    }	    ++chunk;	}	blockPtr = blockPtr->nextPtr;	NsAdpFlush(itPtr);    }    /*     * Tcl8x: ADP_RETURN should not unroll all the callers.     */    if (itPtr->adp.exception == ADP_RETURN) {	itPtr->adp.exception = ADP_OK;	code = TCL_OK;    }    NsAdpFlush(itPtr);    return code;}