summaryrefslogtreecommitdiff
path: root/links-plain-to-binary.c
diff options
context:
space:
mode:
authornorly <ny-git@enpas.org>2019-07-14 14:21:58 +0200
committernorly <ny-git@enpas.org>2019-07-14 14:21:58 +0200
commit4023e389527f9102603c60dbecd1888d55e6b950 (patch)
tree7327055bc8f8f0d06b60e300da4a2546f0b52550 /links-plain-to-binary.c
parentd65a56c2382d31ede44a10cfe559f744660dbc99 (diff)
Move to __uint32_t from glibc's bits/types.c
This saves 50% of HDD space for the links on 64 bit platforms
Diffstat (limited to 'links-plain-to-binary.c')
-rw-r--r--links-plain-to-binary.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/links-plain-to-binary.c b/links-plain-to-binary.c
index 13ded29..005a496 100644
--- a/links-plain-to-binary.c
+++ b/links-plain-to-binary.c
@@ -3,6 +3,10 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <sys/types.h>
+
+
+typedef __uint32_t art_id;
static int
@@ -26,15 +30,15 @@ int main()
FILE *out_file;
char **title = NULL;
- size_t titles = 0;
- size_t titles_alloc = 0;
+ art_id titles = 0;
+ art_id titles_alloc = 0;
- size_t **link;
- size_t *links;
+ art_id **link;
+ art_id *links;
- size_t link_titles_done = 0;
+ art_id link_titles_done = 0;
- size_t i;
+ art_id i;
/*
@@ -73,8 +77,8 @@ int main()
- link = malloc(titles * sizeof(size_t*));
- links = malloc(titles * sizeof(size_t));
+ link = malloc(titles * sizeof(art_id*));
+ links = malloc(titles * sizeof(art_id));
in_file = fopen("enwiki-links-plain.txt", "r");
while (!feof(in_file)) {
@@ -131,7 +135,7 @@ int main()
}
links[i]++;
- link[i] = realloc(link[i], links[i] * sizeof(size_t));
+ link[i] = realloc(link[i], links[i] * sizeof(art_id));
link[i][links[i] - 1] = cur_link - title;
@@ -160,7 +164,7 @@ int main()
out_file = fopen("links-outgoing.bin", "wb");
fwrite(&titles, sizeof(titles), 1, out_file);
for (i = 0; i < titles; i++) {
- size_t j;
+ art_id j;
fwrite(&links[i], sizeof(links[i]), 1, out_file);