Welcome! Log In Create A New Profile

Advanced

[nginx] Handling of ngx_int_t != intptr_t case.

Maxim Dounin
September 04, 2013 01:38PM
details: http://hg.nginx.org/nginx/rev/79b9101cecf4
branches:
changeset: 5362:79b9101cecf4
user: Maxim Dounin <mdounin@mdounin.ru>
date: Wed Sep 04 21:16:59 2013 +0400
description:
Handling of ngx_int_t != intptr_t case.

Casts between pointers and integers produce warnings on size mismatch. To
silence them, cast to (u)intptr_t should be used. Prevoiusly, casts to
ngx_(u)int_t were used in some cases, and several ngx_int_t expressions had
no casts.

As of now it's mostly style as ngx_int_t is defined as intptr_t.

diffstat:

src/core/ngx_slab.c | 3 ++-
src/http/modules/ngx_http_map_module.c | 6 +++---
src/http/modules/perl/ngx_http_perl_module.c | 4 ++--
3 files changed, 7 insertions(+), 6 deletions(-)

diffs (64 lines):

diff --git a/src/core/ngx_slab.c b/src/core/ngx_slab.c
--- a/src/core/ngx_slab.c
+++ b/src/core/ngx_slab.c
@@ -440,7 +440,8 @@ ngx_slab_free_locked(ngx_slab_pool_t *po
n = ((uintptr_t) p & (ngx_pagesize - 1)) >> shift;
m = (uintptr_t) 1 << (n & (sizeof(uintptr_t) * 8 - 1));
n /= (sizeof(uintptr_t) * 8);
- bitmap = (uintptr_t *) ((uintptr_t) p & ~(ngx_pagesize - 1));
+ bitmap = (uintptr_t *)
+ ((uintptr_t) p & ~((uintptr_t) ngx_pagesize - 1));

if (bitmap[n] & m) {

diff --git a/src/http/modules/ngx_http_map_module.c b/src/http/modules/ngx_http_map_module.c
--- a/src/http/modules/ngx_http_map_module.c
+++ b/src/http/modules/ngx_http_map_module.c
@@ -131,7 +131,7 @@ ngx_http_map_variable(ngx_http_request_t
}

if (!value->valid) {
- value = ngx_http_get_flushed_variable(r, (ngx_uint_t) value->data);
+ value = ngx_http_get_flushed_variable(r, (uintptr_t) value->data);

if (value == NULL || value->not_found) {
value = &ngx_http_variable_null_value;
@@ -414,7 +414,7 @@ ngx_http_map(ngx_conf_t *cf, ngx_command
var = ctx->var_values.elts;

for (i = 0; i < ctx->var_values.nelts; i++) {
- if (index == (ngx_int_t) var[i].data) {
+ if (index == (intptr_t) var[i].data) {
var = &var[i];
goto found;
}
@@ -429,7 +429,7 @@ ngx_http_map(ngx_conf_t *cf, ngx_command
var->no_cacheable = 0;
var->not_found = 0;
var->len = 0;
- var->data = (u_char *) index;
+ var->data = (u_char *) (intptr_t) index;

goto found;
}
diff --git a/src/http/modules/perl/ngx_http_perl_module.c b/src/http/modules/perl/ngx_http_perl_module.c
--- a/src/http/modules/perl/ngx_http_perl_module.c
+++ b/src/http/modules/perl/ngx_http_perl_module.c
@@ -421,7 +421,7 @@ ngx_http_perl_ssi(ngx_http_request_t *r,
return NGX_ERROR;
}

- asv[0] = (SV *) i;
+ asv[0] = (SV *) (uintptr_t) i;

for (i = 0; args[i]; i++) {
asv[i + 1] = newSVpvn((char *) args[i]->data, args[i]->len);
@@ -692,7 +692,7 @@ ngx_http_perl_call_handler(pTHX_ ngx_htt
if (args) {
EXTEND(sp, (intptr_t) args[0]);

- for (i = 1; i <= (ngx_uint_t) args[0]; i++) {
+ for (i = 1; i <= (uintptr_t) args[0]; i++) {
PUSHs(sv_2mortal(args[i]));
}
}

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

[nginx] Handling of ngx_int_t != intptr_t case.

Maxim Dounin 822 September 04, 2013 01:38PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 304
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