From 94f01bdd2fda575769f01f8072689fa6936af8f4 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 25 Jun 2010 15:37:07 +0000 Subject: cleaning argz mess --- src/util/crypto_crc.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/util/crypto_crc.c') diff --git a/src/util/crypto_crc.c b/src/util/crypto_crc.c index a89b059c5..8f5cfc800 100644 --- a/src/util/crypto_crc.c +++ b/src/util/crypto_crc.c @@ -52,10 +52,16 @@ static uLong crc_table[256]; * with the ccorrect final value. Thus, it is safe to call * even on a table that someone else is using concurrently. */ -void __attribute__ ((constructor)) GNUNET_CRYPTO_crc_init () +static void +crc_init () { + static int once; unsigned int i, j; uLong h = 1; + + if (once) + return; + once = 1; crc_table[0] = 0; for (i = 128; i; i >>= 1) { @@ -79,6 +85,7 @@ void __attribute__ ((constructor)) GNUNET_CRYPTO_crc_init () static uLong crc32 (uLong crc, const char *buf, size_t len) { + crc_init (); GNUNET_assert (crc_table[255] != 0); crc ^= 0xffffffff; while (len--) -- cgit v1.2.3