|
@@ -926,12 +926,16 @@ circuit_clear_testing_cell_stats(circuit_t *circ)
|
|
STATIC void
|
|
STATIC void
|
|
circuit_free(circuit_t *circ)
|
|
circuit_free(circuit_t *circ)
|
|
{
|
|
{
|
|
|
|
+ circid_t n_circ_id = 0;
|
|
void *mem;
|
|
void *mem;
|
|
size_t memlen;
|
|
size_t memlen;
|
|
int should_free = 1;
|
|
int should_free = 1;
|
|
if (!circ)
|
|
if (!circ)
|
|
return;
|
|
return;
|
|
|
|
|
|
|
|
+ /* We keep a copy of this so we can log its value before it gets unset. */
|
|
|
|
+ n_circ_id = circ->n_circ_id;
|
|
|
|
+
|
|
circuit_clear_testing_cell_stats(circ);
|
|
circuit_clear_testing_cell_stats(circ);
|
|
|
|
|
|
if (CIRCUIT_IS_ORIGIN(circ)) {
|
|
if (CIRCUIT_IS_ORIGIN(circ)) {
|
|
@@ -1028,7 +1032,7 @@ circuit_free(circuit_t *circ)
|
|
cell_queue_clear(&circ->n_chan_cells);
|
|
cell_queue_clear(&circ->n_chan_cells);
|
|
|
|
|
|
log_info(LD_CIRC, "Circuit %u (id: %" PRIu32 ") has been freed.",
|
|
log_info(LD_CIRC, "Circuit %u (id: %" PRIu32 ") has been freed.",
|
|
- circ->n_circ_id,
|
|
|
|
|
|
+ n_circ_id,
|
|
CIRCUIT_IS_ORIGIN(circ) ?
|
|
CIRCUIT_IS_ORIGIN(circ) ?
|
|
TO_ORIGIN_CIRCUIT(circ)->global_identifier : 0);
|
|
TO_ORIGIN_CIRCUIT(circ)->global_identifier : 0);
|
|
|
|
|