Nikolay Sivov : netstat: No need to allocate fixed length stats structs.

Alexandre Julliard julliard at winehq.org
Tue Apr 30 12:51:27 CDT 2013


Module: wine
Branch: master
Commit: 423d5f29e8d3cb9906d0663047c4dd51ed581f02
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=423d5f29e8d3cb9906d0663047c4dd51ed581f02

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Tue Apr 30 13:26:43 2013 +0400

netstat: No need to allocate fixed length stats structs.

---

 programs/netstat/netstat.c |   40 ++++++++++++++++------------------------
 1 files changed, 16 insertions(+), 24 deletions(-)

diff --git a/programs/netstat/netstat.c b/programs/netstat/netstat.c
index b7fee0e..23f2b40 100644
--- a/programs/netstat/netstat.c
+++ b/programs/netstat/netstat.c
@@ -274,25 +274,21 @@ static void NETSTAT_tcp_table(void)
 
 static void NETSTAT_tcp_stats(void)
 {
-    PMIB_TCPSTATS stats;
+    MIB_TCPSTATS stats;
 
-    stats = (PMIB_TCPSTATS)HeapAlloc(GetProcessHeap(), 0, sizeof(MIB_TCPSTATS));
-
-    if (GetTcpStatistics(stats) == NO_ERROR)
+    if (GetTcpStatistics(&stats) == NO_ERROR)
     {
         NETSTAT_wprintf(fmtnn, NETSTAT_load_message(IDS_TCP_STAT));
         NETSTAT_wprintf(fmtn);
-        NETSTAT_wprintf(fmttcpstat, NETSTAT_load_message(IDS_TCP_ACTIVE_OPEN), stats->dwActiveOpens);
-        NETSTAT_wprintf(fmttcpstat, NETSTAT_load_message(IDS_TCP_PASSIV_OPEN), stats->dwPassiveOpens);
-        NETSTAT_wprintf(fmttcpstat, NETSTAT_load_message(IDS_TCP_FAILED_CONN), stats->dwAttemptFails);
-        NETSTAT_wprintf(fmttcpstat, NETSTAT_load_message(IDS_TCP_RESET_CONN),  stats->dwEstabResets);
-        NETSTAT_wprintf(fmttcpstat, NETSTAT_load_message(IDS_TCP_CURR_CONN),   stats->dwCurrEstab);
-        NETSTAT_wprintf(fmttcpstat, NETSTAT_load_message(IDS_TCP_SEGM_RECV),   stats->dwInSegs);
-        NETSTAT_wprintf(fmttcpstat, NETSTAT_load_message(IDS_TCP_SEGM_SENT),   stats->dwOutSegs);
-        NETSTAT_wprintf(fmttcpstat, NETSTAT_load_message(IDS_TCP_SEGM_RETRAN), stats->dwRetransSegs);
+        NETSTAT_wprintf(fmttcpstat, NETSTAT_load_message(IDS_TCP_ACTIVE_OPEN), stats.dwActiveOpens);
+        NETSTAT_wprintf(fmttcpstat, NETSTAT_load_message(IDS_TCP_PASSIV_OPEN), stats.dwPassiveOpens);
+        NETSTAT_wprintf(fmttcpstat, NETSTAT_load_message(IDS_TCP_FAILED_CONN), stats.dwAttemptFails);
+        NETSTAT_wprintf(fmttcpstat, NETSTAT_load_message(IDS_TCP_RESET_CONN),  stats.dwEstabResets);
+        NETSTAT_wprintf(fmttcpstat, NETSTAT_load_message(IDS_TCP_CURR_CONN),   stats.dwCurrEstab);
+        NETSTAT_wprintf(fmttcpstat, NETSTAT_load_message(IDS_TCP_SEGM_RECV),   stats.dwInSegs);
+        NETSTAT_wprintf(fmttcpstat, NETSTAT_load_message(IDS_TCP_SEGM_SENT),   stats.dwOutSegs);
+        NETSTAT_wprintf(fmttcpstat, NETSTAT_load_message(IDS_TCP_SEGM_RETRAN), stats.dwRetransSegs);
     }
-
-    HeapFree(GetProcessHeap(), 0, stats);
 }
 
 static void NETSTAT_udp_table(void)
@@ -325,21 +321,17 @@ static void NETSTAT_udp_table(void)
 
 static void NETSTAT_udp_stats(void)
 {
-    PMIB_UDPSTATS stats;
+    MIB_UDPSTATS stats;
 
-    stats = (PMIB_UDPSTATS)HeapAlloc(GetProcessHeap(), 0, sizeof(MIB_UDPSTATS));
-
-    if (GetUdpStatistics(stats) == NO_ERROR)
+    if (GetUdpStatistics(&stats) == NO_ERROR)
     {
         NETSTAT_wprintf(fmtnn, NETSTAT_load_message(IDS_UDP_STAT));
         NETSTAT_wprintf(fmtn);
-        NETSTAT_wprintf(fmtudpstat, NETSTAT_load_message(IDS_UDP_DGRAMS_RECV), stats->dwInDatagrams);
-        NETSTAT_wprintf(fmtudpstat, NETSTAT_load_message(IDS_UDP_NO_PORTS), stats->dwNoPorts);
-        NETSTAT_wprintf(fmtudpstat, NETSTAT_load_message(IDS_UDP_RECV_ERRORS), stats->dwInErrors);
-        NETSTAT_wprintf(fmtudpstat, NETSTAT_load_message(IDS_UDP_DGRAMS_SENT),  stats->dwOutDatagrams);
+        NETSTAT_wprintf(fmtudpstat, NETSTAT_load_message(IDS_UDP_DGRAMS_RECV), stats.dwInDatagrams);
+        NETSTAT_wprintf(fmtudpstat, NETSTAT_load_message(IDS_UDP_NO_PORTS), stats.dwNoPorts);
+        NETSTAT_wprintf(fmtudpstat, NETSTAT_load_message(IDS_UDP_RECV_ERRORS), stats.dwInErrors);
+        NETSTAT_wprintf(fmtudpstat, NETSTAT_load_message(IDS_UDP_DGRAMS_SENT),  stats.dwOutDatagrams);
     }
-
-    HeapFree(GetProcessHeap(), 0, stats);
 }
 
 static NETSTATPROTOCOLS NETSTAT_get_protocol(WCHAR name[])




More information about the wine-cvs mailing list