if (circ) {
/* Clear the circuit's mux for this direction */
if (to_remove->muxinfo.direction == CELL_DIRECTION_OUT) {
- /* Clear n_mux */
- circ->n_mux = NULL;
/*
* Update active_circuits et al.; this does policy notifies, so
* comes before freeing policy data
*/
circuitmux_make_circuit_inactive(cmux, circ, CELL_DIRECTION_OUT);
+ /* Clear n_mux */
+ circ->n_mux = NULL;
} else if (circ->magic == OR_CIRCUIT_MAGIC) {
- /*
- * It has a sensible p_chan and direction == CELL_DIRECTION_IN,
- * so clear p_mux.
- */
- TO_OR_CIRCUIT(circ)->p_mux = NULL;
/*
* Update active_circuits et al.; this does policy notifies, so
* comes before freeing policy data
*/
circuitmux_make_circuit_inactive(cmux, circ, CELL_DIRECTION_IN);
+ /*
+ * It has a sensible p_chan and direction == CELL_DIRECTION_IN,
+ * so clear p_mux.
+ */
+ TO_OR_CIRCUIT(circ)->p_mux = NULL;
} else {
/* Complain and move on */
log_warn(LD_CIRC,