[tor-commits] [tor/master] Start converting circuitlist to smartlist.

nickm at torproject.org nickm at torproject.org
Wed Aug 20 18:53:38 UTC 2014


commit db2af2abb03a82e7c71581efa04a45869feba38a
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri Aug 15 15:42:14 2014 -0400

    Start converting circuitlist to smartlist.
---
 src/or/circuitlist.c |    9 +++++----
 src/or/circuitlist.h |    4 +---
 src/or/or.h          |    4 ++--
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c
index f3a8350..f351875 100644
--- a/src/or/circuitlist.c
+++ b/src/or/circuitlist.c
@@ -38,8 +38,7 @@
 /********* START VARIABLES **********/
 
 /** A global list of all circuits at this hop. */
-struct global_circuitlist_s global_circuitlist =
-  TOR_LIST_HEAD_INITIALIZER(global_circuitlist);
+static smartlist_t *global_circuitlist = NULL;
 
 /** A list of all the circuits in CIRCUIT_STATE_CHAN_WAIT. */
 static smartlist_t *circuits_pending_chans = NULL;
@@ -458,10 +457,12 @@ circuit_close_all_marked(void)
 }
 
 /** Return the head of the global linked list of circuits. */
-MOCK_IMPL(struct global_circuitlist_s *,
+MOCK_IMPL(smartlist_t *,
 circuit_get_global_list,(void))
 {
-  return &global_circuitlist;
+  if (NULL == global_circuitlist)
+    global_circuitlist = smartlist_new();
+  return global_circuitlist;
 }
 
 /** Function to make circ-\>state human-readable */
diff --git a/src/or/circuitlist.h b/src/or/circuitlist.h
index d48d7c3..03934f9 100644
--- a/src/or/circuitlist.h
+++ b/src/or/circuitlist.h
@@ -14,9 +14,7 @@
 
 #include "testsupport.h"
 
-TOR_LIST_HEAD(global_circuitlist_s, circuit_t);
-
-MOCK_DECL(struct global_circuitlist_s*, circuit_get_global_list, (void));
+MOCK_DECL(smartlist_t *, circuit_get_global_list, (void));
 const char *circuit_state_to_string(int state);
 const char *circuit_purpose_to_controller_string(uint8_t purpose);
 const char *circuit_purpose_to_controller_hs_state_string(uint8_t purpose);
diff --git a/src/or/or.h b/src/or/or.h
index 0419111..e106a74 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -2864,8 +2864,8 @@ typedef struct circuit_t {
   /** Unique ID for measuring tunneled network status requests. */
   uint64_t dirreq_id;
 
-  /** Next circuit in linked list of all circuits (global_circuitlist). */
-  TOR_LIST_ENTRY(circuit_t) head;
+  /** Index in smartlist of all circuits (global_circuitlist). */
+  int global_circuitlist_idx;
 
   /** Next circuit in the doubly-linked ring of circuits waiting to add
    * cells to n_conn.  NULL if we have no cells pending, or if we're not





More information about the tor-commits mailing list