On Wed, Apr 3, 2019 at 2:30 PM Steffen <i...@apachelounge.com> wrote: > > Warnings :
Thanks Steffen, better with the attached patch applied?
Index: atomic/win32/apr_atomic64.c =================================================================== --- atomic/win32/apr_atomic64.c (revision 1856873) +++ atomic/win32/apr_atomic64.c (working copy) @@ -18,55 +18,35 @@ #include "apr_atomic.h" #include "apr_thread_mutex.h" -APR_DECLARE(apr_uint64_t) apr_atomic_add64(volatile apr_uint64_t *mem, apr_uint64_t val) -{ -#if (defined(_M_IA64) || defined(_M_AMD64)) - return InterlockedExchangeAdd64(mem, val); -#else - return InterlockedExchangeAdd64((long *)mem, val); -#endif -} - /* Of course we want the 2's compliment of the unsigned value, val */ #ifdef _MSC_VER #pragma warning(disable: 4146) #endif +APR_DECLARE(apr_uint64_t) apr_atomic_add64(volatile apr_uint64_t *mem, apr_uint64_t val) +{ + return InterlockedExchangeAdd64((volatile LONG64 *)mem, val); +} + APR_DECLARE(void) apr_atomic_sub64(volatile apr_uint64_t *mem, apr_uint64_t val) { -#if (defined(_M_IA64) || defined(_M_AMD64)) - InterlockedExchangeAdd64(mem, -val); -#else - InterlockedExchangeAdd64((long *)mem, -val); -#endif + InterlockedExchangeAdd64((volatile LONG64 *)mem, -val); } APR_DECLARE(apr_uint64_t) apr_atomic_inc64(volatile apr_uint64_t *mem) { /* we return old value, win64 returns new value :( */ -#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED) - return InterlockedIncrement64(mem) - 1; -#else - return InterlockedIncrement64((long *)mem) - 1; -#endif + return InterlockedIncrement64((volatile LONG64 *)mem) - 1; } APR_DECLARE(int) apr_atomic_dec64(volatile apr_uint64_t *mem) { -#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED) - return InterlockedDecrement64(mem); -#else - return InterlockedDecrement64((long *)mem); -#endif + return !!InterlockedDecrement64((volatile LONG64 *)mem); } APR_DECLARE(void) apr_atomic_set64(volatile apr_uint64_t *mem, apr_uint64_t val) { -#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED) - InterlockedExchange64(mem, val); -#else - InterlockedExchange64((long*)mem, val); -#endif + InterlockedExchange64((volatile LONG64 *)mem, val); } APR_DECLARE(apr_uint64_t) apr_atomic_read64(volatile apr_uint64_t *mem) @@ -77,18 +57,10 @@ APR_DECLARE(apr_uint64_t) apr_atomic_read64(volati APR_DECLARE(apr_uint64_t) apr_atomic_cas64(volatile apr_uint64_t *mem, apr_uint64_t with, apr_uint64_t cmp) { -#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED) - return InterlockedCompareExchange64(mem, with, cmp); -#else - return InterlockedCompareExchange64((long*)mem, with, cmp); -#endif + return InterlockedCompareExchange64((volatile LONG64 *)mem, with, cmp); } APR_DECLARE(apr_uint64_t) apr_atomic_xchg64(volatile apr_uint64_t *mem, apr_uint64_t val) { -#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED) - return InterlockedExchange64(mem, val); -#else - return InterlockedExchange64((long *)mem, val); -#endif + return InterlockedExchange64((volatile LONG64 *)mem, val); } Index: encoding/apr_encode.c =================================================================== --- encoding/apr_encode.c (revision 1856873) +++ encoding/apr_encode.c (working copy) @@ -1062,7 +1062,7 @@ APR_DECLARE(apr_status_t) apr_encode_base16(char * const char *src, apr_ssize_t slen, int flags, apr_size_t * len) { const char *in = src; - apr_size_t size; + apr_ssize_t size; if (!src) { return APR_NOTFOUND; @@ -1115,7 +1115,7 @@ APR_DECLARE(apr_status_t) apr_encode_base16_binary const unsigned char *src, apr_ssize_t slen, int flags, apr_size_t * len) { const unsigned char *in = src; - apr_size_t size; + apr_ssize_t size; if (!src) { return APR_NOTFOUND; Index: file_io/win32/seek.c =================================================================== --- file_io/win32/seek.c (revision 1856873) +++ file_io/win32/seek.c (working copy) @@ -170,7 +170,7 @@ APR_DECLARE(apr_status_t) apr_file_trunc(apr_file_ thefile->bufpos = 0; } else if (offset < thefile->filePtr + (apr_off_t)thefile->bufpos) { - thefile->bufpos = offset - thefile->filePtr; + thefile->bufpos = (apr_size_t)(offset - thefile->filePtr); } if (thefile->bufpos != 0) { Index: memory/unix/apr_pools.c =================================================================== --- memory/unix/apr_pools.c (revision 1856873) +++ memory/unix/apr_pools.c (working copy) @@ -419,7 +419,7 @@ apr_memnode_t *allocator_alloc(apr_allocator_t *al return NULL; } #endif - node->index = index; + node->index = (apr_uint32_t)index; node->endp = (char *)node + size; have_node: @@ -870,7 +870,7 @@ APR_DECLARE(void *) apr_palloc(apr_pool_t *pool, a free_index = (APR_ALIGN(active->endp - active->first_avail + 1, BOUNDARY_SIZE) - BOUNDARY_SIZE) >> BOUNDARY_INDEX; - active->free_index = free_index; + active->free_index = (apr_uint32_t)free_index; node = active->next; if (free_index >= node->free_index) goto have_mem; @@ -1286,7 +1286,7 @@ static int psprintf_flush(apr_vformatter_buff_t *v free_index = (APR_ALIGN(active->endp - active->first_avail + 1, BOUNDARY_SIZE) - BOUNDARY_SIZE) >> BOUNDARY_INDEX; - active->free_index = free_index; + active->free_index = (apr_uint32_t)free_index; node = active->next; if (free_index < node->free_index) { do { @@ -1442,7 +1442,7 @@ APR_DECLARE(char *) apr_pvsprintf(apr_pool_t *pool free_index = (APR_ALIGN(active->endp - active->first_avail + 1, BOUNDARY_SIZE) - BOUNDARY_SIZE) >> BOUNDARY_INDEX; - active->free_index = free_index; + active->free_index = (apr_uint32_t)free_index; node = active->next; if (free_index >= node->free_index) { Index: . =================================================================== --- . (revision 1856873) +++ . (working copy) Property changes on: . ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /apr/apr/trunk:r1856873