Maxim Dounin
February 06, 2010 04:48PM
Hello!

On Sat, Feb 06, 2010 at 02:20:36PM -0500, double wrote:

> Hello,
>
> In "ngx_slab.c":
>
>
> static ngx_uint_t ngx_slab_max_size;
> [...]
> void ngx_slab_init(ngx_slab_pool_t *pool)
> {
> if (ngx_slab_max_size == 0) {
>
>
> Could one be sure, that "ngx_slab_max_size" is always "0"?
> Maybe better:
>
>
> static ngx_uint_t ngx_slab_max_size = 0;

Here is the explication from ISO C standard (6.7.8 Initialization):

% 10. If an object that has automatic storage duration is not initialized
% explicitly, its value is indeterminate. If an object that has static storage
% duration is not initialized explicitly, then:
%
% — if it has pointer type, it is initialized to a null pointer;
% — if it has arithmetic type, it is initialized to (positive or unsigned)
% zero;
% — if it is an aggregate, every member is initialized (recursively) according
% to these rules;
% — if it is a union, the first named member is initialized (recursively)
% according to these rules.

Guess which storage duration ngx_slab_max_size has? If in doubt,
refer to "6.2.4 Storage durations of objects" chapter of the same
standard.

Maxim Dounin

_______________________________________________
nginx mailing list
nginx@nginx.org
http://nginx.org/mailman/listinfo/nginx
Subject Author Posted

Bug in ngx_slab.c ?

double February 06, 2010 02:20PM

Re: Bug in ngx_slab.c ?

Maxim Dounin February 06, 2010 04:48PM

Re: Bug in ngx_slab.c ?

double February 07, 2010 03:40AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 169
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready