浏览代码

free some more memory at shutdown

svn:r3707
Roger Dingledine 20 年之前
父节点
当前提交
b3177d509e
共有 2 个文件被更改,包括 10 次插入0 次删除
  1. 2 0
      src/or/main.c
  2. 8 0
      src/or/rephist.c

+ 2 - 0
src/or/main.c

@@ -1265,6 +1265,8 @@ void tor_free_all(void)
   tor_tls_free_all();
   /* stuff in main.c */
   smartlist_free(closeable_connection_lst);
+
+  close_logs(); /* free log strings. do this last so logs keep working. */
 }
 
 /** Do whatever cleanup is necessary before shutting Tor down. */

+ 8 - 0
src/or/rephist.c

@@ -640,6 +640,13 @@ static void predicted_ports_init(void) {
   add_predicted_port(80, time(NULL)); /* add one to kickstart us */
 }
 
+static void predicted_ports_free(void) {
+  SMARTLIST_FOREACH(predicted_ports_list, char *, cp, tor_free(cp));
+  smartlist_free(predicted_ports_list);
+  SMARTLIST_FOREACH(predicted_ports_times, char *, cp, tor_free(cp));
+  smartlist_free(predicted_ports_times);
+}
+
 /** Remember that <b>port</b> has been asked for as of time <b>now</b>.
  * This is used for predicting what sorts of streams we'll make in the
  * future and making circuits to anticipate that.
@@ -736,4 +743,5 @@ void rep_hist_free_all(void)
   strmap_free(history_map, free_or_history);
   tor_free(read_array);
   tor_free(write_array);
+  predicted_ports_free();
 }