allocate aligned ngx_crc32_table_short globally
diff --git a/src/core/nginx.c b/src/core/nginx.c
index 83b088b..2de666a 100644
--- a/src/core/nginx.c
+++ b/src/core/nginx.c
@@ -252,6 +252,12 @@
return 1;
}
+ /* ngx_crc32_init() requires ngx_cacheline_size set in ngx_os_init() */
+
+ if (ngx_crc32_init() != NGX_OK) {
+ return 1;
+ }
+
if (ngx_add_inherited_sockets(&init_cycle) != NGX_OK) {
return 1;
}
@@ -283,10 +289,6 @@
ngx_os_status(cycle->log);
- if (ngx_crc32_init(cycle->pool) != NGX_OK) {
- return 1;
- }
-
ngx_cycle = cycle;
ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module);
diff --git a/src/core/ngx_crc32.c b/src/core/ngx_crc32.c
index ac375b0..4ad8ff3 100644
--- a/src/core/ngx_crc32.c
+++ b/src/core/ngx_crc32.c
@@ -102,7 +102,7 @@
ngx_int_t
-ngx_crc32_init(ngx_pool_t *pool)
+ngx_crc32_init(void)
{
void *p;
@@ -113,7 +113,7 @@
return NGX_OK;
}
- p = ngx_palloc(pool, 16 * sizeof(uint32_t) + ngx_cacheline_size);
+ p = ngx_alloc(16 * sizeof(uint32_t) + ngx_cacheline_size, ngx_cycle->log);
if (p == NULL) {
return NGX_ERROR;
}
diff --git a/src/core/ngx_crc32.h b/src/core/ngx_crc32.h
index 7c18279..7d5279d 100644
--- a/src/core/ngx_crc32.h
+++ b/src/core/ngx_crc32.h
@@ -49,7 +49,7 @@
}
-ngx_int_t ngx_crc32_init(ngx_pool_t *pool);
+ngx_int_t ngx_crc32_init(void);
#endif /* _NGX_CRC32_H_INCLUDED_ */