aboutsummaryrefslogtreecommitdiffstats
path: root/ui-stats.c
diff options
context:
space:
mode:
authorJason A. Donenfeld2016-02-08 14:35:47 +0100
committerJason A. Donenfeld2016-02-08 14:35:47 +0100
commita8b9ef8c1c68fbb9c89db2d8c12dca38c15e2bfd (patch)
tree98b544c76efa726e4059bf7f3dd1e8d815633def /ui-stats.c
parent85ec9f0211a0c83d6cca744e6e40d73daf4050fc (diff)
downloadcgit-a8b9ef8c1c68fbb9c89db2d8c12dca38c15e2bfd.tar.gz
cgit-a8b9ef8c1c68fbb9c89db2d8c12dca38c15e2bfd.tar.bz2
cgit-a8b9ef8c1c68fbb9c89db2d8c12dca38c15e2bfd.zip
ui-stats: if we're going to abuse void*, do it safely
Diffstat (limited to 'ui-stats.c')
-rw-r--r--ui-stats.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/ui-stats.c b/ui-stats.c
index 74ce0f7..a9c13fd 100644
--- a/ui-stats.c
+++ b/ui-stats.c
@@ -3,12 +3,6 @@
3#include "html.h" 3#include "html.h"
4#include "ui-shared.h" 4#include "ui-shared.h"
5 5
6#ifdef NO_C99_FORMAT
7#define SZ_FMT "%u"
8#else
9#define SZ_FMT "%zu"
10#endif
11
12struct authorstat { 6struct authorstat {
13 long total; 7 long total;
14 struct string_list list; 8 struct string_list list;
@@ -174,6 +168,7 @@ static void add_commit(struct string_list *authors, struct commit *commit,
174 char *tmp; 168 char *tmp;
175 struct tm *date; 169 struct tm *date;
176 time_t t; 170 time_t t;
171 uintptr_t *counter;
177 172
178 info = cgit_parse_commit(commit); 173 info = cgit_parse_commit(commit);
179 tmp = xstrdup(info->author); 174 tmp = xstrdup(info->author);
@@ -191,7 +186,9 @@ static void add_commit(struct string_list *authors, struct commit *commit,
191 item = string_list_insert(items, tmp); 186 item = string_list_insert(items, tmp);
192 if (item->util) 187 if (item->util)
193 free(tmp); 188 free(tmp);
194 item->util++; 189 counter = (uintptr_t *)&item->util;
190 (*counter)++;
191
195 authorstat->total++; 192 authorstat->total++;
196 cgit_free_commitinfo(info); 193 cgit_free_commitinfo(info);
197} 194}
@@ -286,7 +283,7 @@ static void print_combined_authorrow(struct string_list *authors, int from,
286 items = &authorstat->list; 283 items = &authorstat->list;
287 date = string_list_lookup(items, tmp); 284 date = string_list_lookup(items, tmp);
288 if (date) 285 if (date)
289 subtotal += (size_t)date->util; 286 subtotal += (uintptr_t)date->util;
290 } 287 }
291 htmlf("<td class='%s'>%ld</td>", centerclass, subtotal); 288 htmlf("<td class='%s'>%ld</td>", centerclass, subtotal);
292 total += subtotal; 289 total += subtotal;
@@ -340,8 +337,8 @@ static void print_authors(struct string_list *authors, int top,
340 if (!date) 337 if (!date)
341 html("<td>0</td>"); 338 html("<td>0</td>");
342 else { 339 else {
343 htmlf("<td>"SZ_FMT"</td>", (size_t)date->util); 340 htmlf("<td>%lu</td>", (uintptr_t)date->util);
344 total += (size_t)date->util; 341 total += (uintptr_t)date->util;
345 } 342 }
346 } 343 }
347 htmlf("<td class='sum'>%ld</td></tr>", total); 344 htmlf("<td class='sum'>%ld</td></tr>", total);