aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/ngx_slab.c6
-rw-r--r--src/http/ngx_http_script.c4
-rw-r--r--src/http/ngx_http_script.h22
-rw-r--r--src/os/win32/ngx_win32_config.h10
4 files changed, 26 insertions, 16 deletions
diff --git a/src/core/ngx_slab.c b/src/core/ngx_slab.c
index 66faecc74..1d4ce2b67 100644
--- a/src/core/ngx_slab.c
+++ b/src/core/ngx_slab.c
@@ -101,7 +101,7 @@ ngx_slab_init(ngx_slab_pool_t *pool)
}
/**/
- pool->min_size = 1 << pool->min_shift;
+ pool->min_size = (size_t) 1 << pool->min_shift;
slots = ngx_slab_slots(pool);
@@ -473,7 +473,7 @@ ngx_slab_free_locked(ngx_slab_pool_t *pool, void *p)
case NGX_SLAB_SMALL:
shift = slab & NGX_SLAB_SHIFT_MASK;
- size = 1 << shift;
+ size = (size_t) 1 << shift;
if ((uintptr_t) p & (size - 1)) {
goto wrong_chunk;
@@ -568,7 +568,7 @@ ngx_slab_free_locked(ngx_slab_pool_t *pool, void *p)
case NGX_SLAB_BIG:
shift = slab & NGX_SLAB_SHIFT_MASK;
- size = 1 << shift;
+ size = (size_t) 1 << shift;
if ((uintptr_t) p & (size - 1)) {
goto wrong_chunk;
diff --git a/src/http/ngx_http_script.c b/src/http/ngx_http_script.c
index c2b165801..c1a0b4c56 100644
--- a/src/http/ngx_http_script.c
+++ b/src/http/ngx_http_script.c
@@ -356,11 +356,11 @@ ngx_http_script_compile(ngx_http_script_compile_t *sc)
n = sc->source->data[i] - '0';
- if (sc->captures_mask & (1 << n)) {
+ if (sc->captures_mask & ((ngx_uint_t) 1 << n)) {
sc->dup_capture = 1;
}
- sc->captures_mask |= 1 << n;
+ sc->captures_mask |= (ngx_uint_t) 1 << n;
if (ngx_http_script_add_capture_code(sc, n) != NGX_OK) {
return NGX_ERROR;
diff --git a/src/http/ngx_http_script.h b/src/http/ngx_http_script.h
index 46592ab01..a5116d747 100644
--- a/src/http/ngx_http_script.h
+++ b/src/http/ngx_http_script.h
@@ -121,16 +121,16 @@ typedef struct {
uintptr_t status;
uintptr_t next;
- uintptr_t test:1;
- uintptr_t negative_test:1;
- uintptr_t uri:1;
- uintptr_t args:1;
+ unsigned test:1;
+ unsigned negative_test:1;
+ unsigned uri:1;
+ unsigned args:1;
/* add the r->args to the new arguments */
- uintptr_t add_args:1;
+ unsigned add_args:1;
- uintptr_t redirect:1;
- uintptr_t break_cycle:1;
+ unsigned redirect:1;
+ unsigned break_cycle:1;
ngx_str_t name;
} ngx_http_script_regex_code_t;
@@ -139,13 +139,13 @@ typedef struct {
typedef struct {
ngx_http_script_code_pt code;
- uintptr_t uri:1;
- uintptr_t args:1;
+ unsigned uri:1;
+ unsigned args:1;
/* add the r->args to the new arguments */
- uintptr_t add_args:1;
+ unsigned add_args:1;
- uintptr_t redirect:1;
+ unsigned redirect:1;
} ngx_http_script_regex_end_code_t;
#endif
diff --git a/src/os/win32/ngx_win32_config.h b/src/os/win32/ngx_win32_config.h
index c5e26dcbd..3897730a1 100644
--- a/src/os/win32/ngx_win32_config.h
+++ b/src/os/win32/ngx_win32_config.h
@@ -94,6 +94,12 @@ typedef long time_t;
/* FD_SET() and FD_CLR(): conditional expression is constant */
#pragma warning(disable:4127)
+/* conversion from 'type1' to 'type2', possible loss of data */
+#pragma warning(disable:4244)
+
+/* conversion from 'size_t' to 'type', possible loss of data */
+#pragma warning(disable:4267)
+
/* array is too small to include a terminating null character */
#pragma warning(disable:4295)
@@ -189,8 +195,12 @@ typedef unsigned int ino_t;
#ifndef __GNUC__
+#ifdef _WIN64
+typedef __int64 ssize_t;
+#else
typedef int ssize_t;
#endif
+#endif
typedef uint32_t in_addr_t;