You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2012/06/13 23:22:25 UTC

svn commit: r1350021 - in /subversion/trunk/subversion: libsvn_subr/adler32.c libsvn_subr/cache-membuffer.c libsvn_subr/cache.c libsvn_subr/string.c mod_authz_svn/mod_authz_svn.c svnserve/main.c

Author: stefan2
Date: Wed Jun 13 21:22:24 2012
New Revision: 1350021

URL: http://svn.apache.org/viewvc?rev=1350021&view=rev
Log:
Silence more GCC conversion warnings (-Wconversion).

* subversion/libsvn_subr/adler32.c
  (svn__adler32): adler32 returns always 32 bits
* subversion/libsvn_subr/cache.c
  (svn_cache__format_info): do all calculations in double
* subversion/libsvn_subr/cache-membuffer.c
  (is_group_initialized, initialize_group): explicitly cast to bytes
  (svn_cache__membuffer_cache_create): test for overflow before casting
* subversion/libsvn_subr/string.c
  (svn__ui64toa): result of % will fit into 32 bits
* subversion/mod_authz_svn/mod_authz_svn.c
  (convert_case): explicitly cast back to char

Modified:
    subversion/trunk/subversion/libsvn_subr/adler32.c
    subversion/trunk/subversion/libsvn_subr/cache-membuffer.c
    subversion/trunk/subversion/libsvn_subr/cache.c
    subversion/trunk/subversion/libsvn_subr/string.c
    subversion/trunk/subversion/mod_authz_svn/mod_authz_svn.c
    subversion/trunk/subversion/svnserve/main.c

Modified: subversion/trunk/subversion/libsvn_subr/adler32.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/adler32.c?rev=1350021&r1=1350020&r2=1350021&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/adler32.c (original)
+++ subversion/trunk/subversion/libsvn_subr/adler32.c Wed Jun 13 21:22:24 2012
@@ -61,7 +61,9 @@ svn__adler32(apr_uint32_t checksum, cons
        * optimized code. Also, new zlib versions will come with
        * SIMD code for x86 and x64.
        */
-      return adler32(checksum, (const Bytef *)data, (uInt)len);
+      return (apr_uint32_t)adler32(checksum,
+                                   (const Bytef *)data,
+                                   (uInt)len);
     }
   else
     {

Modified: subversion/trunk/subversion/libsvn_subr/cache-membuffer.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/cache-membuffer.c?rev=1350021&r1=1350020&r2=1350021&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/cache-membuffer.c (original)
+++ subversion/trunk/subversion/libsvn_subr/cache-membuffer.c Wed Jun 13 21:22:24 2012
@@ -700,9 +700,11 @@ let_entry_age(svn_membuffer_t *cache, en
 static APR_INLINE unsigned char
 is_group_initialized(svn_membuffer_t *cache, apr_uint32_t group_index)
 {
-  unsigned char flags = cache->group_initialized
-                          [group_index / (8 * GROUP_INIT_GRANULARITY)];
-  unsigned char bit_mask = 1 << ((group_index / GROUP_INIT_GRANULARITY) % 8);
+  unsigned char flags
+    = cache->group_initialized[group_index / (8 * GROUP_INIT_GRANULARITY)];
+  unsigned char bit_mask
+    = (unsigned char)(1 << ((group_index / GROUP_INIT_GRANULARITY) % 8));
+
   return flags & bit_mask;
 }
 
@@ -726,7 +728,8 @@ initialize_group(svn_membuffer_t *cache,
         cache->directory[i][j].offset = NO_OFFSET;
 
   /* set the "initialized" bit for these groups */
-  bit_mask = 1 << ((group_index / GROUP_INIT_GRANULARITY) % 8);
+  bit_mask
+    = (unsigned char)(1 << ((group_index / GROUP_INIT_GRANULARITY) % 8));
   cache->group_initialized[group_index / (8 * GROUP_INIT_GRANULARITY)]
     |= bit_mask;
 }
@@ -1075,11 +1078,10 @@ svn_cache__membuffer_cache_create(svn_me
    * Note, that this limit could only be exceeded in a very
    * theoretical setup with about 1EB of cache.
    */
-  group_count = directory_size / sizeof(entry_group_t);
-  if (group_count >= (APR_UINT32_MAX / GROUP_SIZE))
-    {
-      group_count = (APR_UINT32_MAX / GROUP_SIZE) - 1;
-    }
+  group_count = directory_size / sizeof(entry_group_t)
+                    >= (APR_UINT32_MAX / GROUP_SIZE)
+              ? (APR_UINT32_MAX / GROUP_SIZE) - 1
+              : (apr_uint32_t)(directory_size / sizeof(entry_group_t));
 
   group_init_size = 1 + group_count / (8 * GROUP_INIT_GRANULARITY);
   for (seg = 0; seg < segment_count; ++seg)

Modified: subversion/trunk/subversion/libsvn_subr/cache.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/cache.c?rev=1350021&r1=1350020&r2=1350021&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/cache.c (original)
+++ subversion/trunk/subversion/libsvn_subr/cache.c Wed Jun 13 21:22:24 2012
@@ -212,14 +212,14 @@ svn_cache__format_info(const svn_cache__
   enum { _1MB = 1024 * 1024 };
 
   apr_uint64_t misses = info->gets - info->hits;
-  double hit_rate = (100.0 * info->hits)
-                  / (info->gets ? info->gets : 1);
-  double write_rate = (100.0 * info->sets)
-                    / (misses ? misses : 1);
-  double data_usage_rate = (100.0 * info->used_size)
-                         / (info->data_size ? info->data_size : 1);
-  double data_entry_rate = (100.0 * info->used_entries)
-                         / (info->total_entries ? info->total_entries : 1);
+  double hit_rate = (100.0 * (double)info->hits)
+                  / (double)(info->gets ? info->gets : 1);
+  double write_rate = (100.0 * (double)info->sets)
+                    / (double)(misses ? misses : 1);
+  double data_usage_rate = (100.0 * (double)info->used_size)
+                         / (double)(info->data_size ? info->data_size : 1);
+  double data_entry_rate = (100.0 * (double)info->used_entries)
+                 / (double)(info->total_entries ? info->total_entries : 1);
 
   return svn_string_createf(result_pool,
 

Modified: subversion/trunk/subversion/libsvn_subr/string.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/string.c?rev=1350021&r1=1350020&r2=1350021&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/string.c (original)
+++ subversion/trunk/subversion/libsvn_subr/string.c Wed Jun 13 21:22:24 2012
@@ -976,7 +976,7 @@ svn__ui64toa(char * dest, apr_uint64_t n
       /* Number is larger than 100^4, i.e. we can write 4x2 chars.
        * Also, use 32 bit DIVs as these are about twice as fast.
        */
-      reduced = number % 100000000;
+      reduced = (apr_uint32_t)(number % 100000000);
       number /= 100000000;
 
       COPY_TWO_BYTES(target - 0, decimal_table[reduced % 100]);

Modified: subversion/trunk/subversion/mod_authz_svn/mod_authz_svn.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/mod_authz_svn/mod_authz_svn.c?rev=1350021&r1=1350020&r2=1350021&view=diff
==============================================================================
--- subversion/trunk/subversion/mod_authz_svn/mod_authz_svn.c (original)
+++ subversion/trunk/subversion/mod_authz_svn/mod_authz_svn.c Wed Jun 13 21:22:24 2012
@@ -235,7 +235,7 @@ convert_case(char *text, svn_boolean_t t
   char *c = text;
   while (*c)
     {
-      *c = (to_uppercase ? apr_toupper(*c) : apr_tolower(*c));
+      *c = (char)(to_uppercase ? apr_toupper(*c) : apr_tolower(*c));
       ++c;
     }
 }

Modified: subversion/trunk/subversion/svnserve/main.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnserve/main.c?rev=1350021&r1=1350020&r2=1350021&view=diff
==============================================================================
--- subversion/trunk/subversion/svnserve/main.c (original)
+++ subversion/trunk/subversion/svnserve/main.c Wed Jun 13 21:22:24 2012
@@ -898,6 +898,60 @@ int main(int argc, const char *argv[])
   apr_signal(SIGXFSZ, SIG_IGN);
 #endif
 
+#ifdef SIGUSR1
+  /* Disable SIGPIPE generation for the platforms that have it. */
+  apr_signal(SIGUSR1, SIG_IGN);
+/*
+#ifdef WIN32
+LRESULT CALLBACK ipc_window_proc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+  switch (message)
+  {
+    case WM_USER:  ipc_recv(0);
+    break;
+    default:  return DefWindowProc(hWnd, message, wParam, lParam);
+    break;
+    
+  }
+  return 0;
+}
+#endif
+void ipc_init()
+{
+  string cdir = config_dir();
+  db_path = cdir + "/dropbox.xdf";
+  sig_path = cdir + "/sig";
+#ifndef WIN32
+  signal(SIGUSR1, ipc_recv);
+#else
+  //welcome to hell
+  HINSTANCE inst = (HINSTANCE)GetWindowLong((HWND)GDK_WINDOW_HWND(get_mainwin()->window), GWL_HINSTANCE);
+  WNDCLASSEX wcex;
+  wcex.cbSize = sizeof(WNDCLASSEX);
+  wcex.style = 0;
+  wcex.lpfnWndProc = ipc_window_proc;
+  wcex.cbClsExtra = 0;
+  wcex.cbWndExtra = 0;
+  wcex.hCursor = 0;
+  wcex.hbrBackground = 0;
+  wcex.hIcon = 0;
+  wcex.hIconSm = 0;
+  wcex.hInstance = inst;
+  wcex.lpszMenuName = NULL;
+  wcex.lpszClassName = "MyApp Messages";
+  if(!RegisterClassEx(&wcex))
+    cerr << "Cannot register IPC window class!" << endl;
+  ipc_window = CreateWindow(wcex.lpszClassName, "MyApp IPC", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,  500, 100, HWND_MESSAGE, NULL, inst, NULL);
+  if(!ipc_window)
+    cerr << "Cannot create IPC window (" << (int)GetLastError() << ")" << endl;
+#endif
+  ofstream out(sig_path.c_str());
+  out << getpid() << endl;
+  out.close();
+}
+*/
+#endif
+
   if (pid_filename)
     SVN_INT_ERR(write_pid_file(pid_filename, pool));
 



Re: svn commit: r1350021 - in /subversion/trunk/subversion: libsvn_subr/adler32.c libsvn_subr/cache-membuffer.c libsvn_subr/cache.c libsvn_subr/string.c mod_authz_svn/mod_authz_svn.c svnserve/main.c

Posted by Stefan Fuhrmann <eq...@web.de>.
On 06/14/2012 08:16 AM, Greg Stein wrote:
>
> Adjust the log message to note the incorrect main change, and the 
> revision where it was reverted?
>
Done.

> On Jun 13, 2012 11:22 PM, <stefan2@apache.org 
> <ma...@apache.org>> wrote:
>
>     Author: stefan2
>     Date: Wed Jun 13 21:22:24 2012
>     New Revision: 1350021
>
>     URL: http://svn.apache.org/viewvc?rev=1350021&view=rev
>     <http://svn.apache.org/viewvc?rev=1350021&view=rev>
>     Log:
>     Silence more GCC conversion warnings (-Wconversion).
>
>     * subversion/libsvn_subr/adler32.c
>      (svn__adler32): adler32 returns always 32 bits
>     * subversion/libsvn_subr/cache.c
>      (svn_cache__format_info): do all calculations in double
>     * subversion/libsvn_subr/cache-membuffer.c
>      (is_group_initialized, initialize_group): explicitly cast to bytes
>      (svn_cache__membuffer_cache_create): test for overflow before casting
>     * subversion/libsvn_subr/string.c
>      (svn__ui64toa): result of % will fit into 32 bits
>     * subversion/mod_authz_svn/mod_authz_svn.c
>      (convert_case): explicitly cast back to char
>
[snip]

Re: svn commit: r1350021 - in /subversion/trunk/subversion: libsvn_subr/adler32.c libsvn_subr/cache-membuffer.c libsvn_subr/cache.c libsvn_subr/string.c mod_authz_svn/mod_authz_svn.c svnserve/main.c

Posted by Greg Stein <gs...@gmail.com>.
Adjust the log message to note the incorrect main change, and the revision
where it was reverted?
On Jun 13, 2012 11:22 PM, <st...@apache.org> wrote:

> Author: stefan2
> Date: Wed Jun 13 21:22:24 2012
> New Revision: 1350021
>
> URL: http://svn.apache.org/viewvc?rev=1350021&view=rev
> Log:
> Silence more GCC conversion warnings (-Wconversion).
>
> * subversion/libsvn_subr/adler32.c
>  (svn__adler32): adler32 returns always 32 bits
> * subversion/libsvn_subr/cache.c
>  (svn_cache__format_info): do all calculations in double
> * subversion/libsvn_subr/cache-membuffer.c
>  (is_group_initialized, initialize_group): explicitly cast to bytes
>  (svn_cache__membuffer_cache_create): test for overflow before casting
> * subversion/libsvn_subr/string.c
>  (svn__ui64toa): result of % will fit into 32 bits
> * subversion/mod_authz_svn/mod_authz_svn.c
>  (convert_case): explicitly cast back to char
>
> Modified:
>    subversion/trunk/subversion/libsvn_subr/adler32.c
>    subversion/trunk/subversion/libsvn_subr/cache-membuffer.c
>    subversion/trunk/subversion/libsvn_subr/cache.c
>    subversion/trunk/subversion/libsvn_subr/string.c
>    subversion/trunk/subversion/mod_authz_svn/mod_authz_svn.c
>    subversion/trunk/subversion/svnserve/main.c
>
> Modified: subversion/trunk/subversion/libsvn_subr/adler32.c
> URL:
> http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/adler32.c?rev=1350021&r1=1350020&r2=1350021&view=diff
>
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_subr/adler32.c (original)
> +++ subversion/trunk/subversion/libsvn_subr/adler32.c Wed Jun 13 21:22:24
> 2012
> @@ -61,7 +61,9 @@ svn__adler32(apr_uint32_t checksum, cons
>        * optimized code. Also, new zlib versions will come with
>        * SIMD code for x86 and x64.
>        */
> -      return adler32(checksum, (const Bytef *)data, (uInt)len);
> +      return (apr_uint32_t)adler32(checksum,
> +                                   (const Bytef *)data,
> +                                   (uInt)len);
>     }
>   else
>     {
>
> Modified: subversion/trunk/subversion/libsvn_subr/cache-membuffer.c
> URL:
> http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/cache-membuffer.c?rev=1350021&r1=1350020&r2=1350021&view=diff
>
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_subr/cache-membuffer.c (original)
> +++ subversion/trunk/subversion/libsvn_subr/cache-membuffer.c Wed Jun 13
> 21:22:24 2012
> @@ -700,9 +700,11 @@ let_entry_age(svn_membuffer_t *cache, en
>  static APR_INLINE unsigned char
>  is_group_initialized(svn_membuffer_t *cache, apr_uint32_t group_index)
>  {
> -  unsigned char flags = cache->group_initialized
> -                          [group_index / (8 * GROUP_INIT_GRANULARITY)];
> -  unsigned char bit_mask = 1 << ((group_index / GROUP_INIT_GRANULARITY) %
> 8);
> +  unsigned char flags
> +    = cache->group_initialized[group_index / (8 *
> GROUP_INIT_GRANULARITY)];
> +  unsigned char bit_mask
> +    = (unsigned char)(1 << ((group_index / GROUP_INIT_GRANULARITY) % 8));
> +
>   return flags & bit_mask;
>  }
>
> @@ -726,7 +728,8 @@ initialize_group(svn_membuffer_t *cache,
>         cache->directory[i][j].offset = NO_OFFSET;
>
>   /* set the "initialized" bit for these groups */
> -  bit_mask = 1 << ((group_index / GROUP_INIT_GRANULARITY) % 8);
> +  bit_mask
> +    = (unsigned char)(1 << ((group_index / GROUP_INIT_GRANULARITY) % 8));
>   cache->group_initialized[group_index / (8 * GROUP_INIT_GRANULARITY)]
>     |= bit_mask;
>  }
> @@ -1075,11 +1078,10 @@ svn_cache__membuffer_cache_create(svn_me
>    * Note, that this limit could only be exceeded in a very
>    * theoretical setup with about 1EB of cache.
>    */
> -  group_count = directory_size / sizeof(entry_group_t);
> -  if (group_count >= (APR_UINT32_MAX / GROUP_SIZE))
> -    {
> -      group_count = (APR_UINT32_MAX / GROUP_SIZE) - 1;
> -    }
> +  group_count = directory_size / sizeof(entry_group_t)
> +                    >= (APR_UINT32_MAX / GROUP_SIZE)
> +              ? (APR_UINT32_MAX / GROUP_SIZE) - 1
> +              : (apr_uint32_t)(directory_size / sizeof(entry_group_t));
>
>   group_init_size = 1 + group_count / (8 * GROUP_INIT_GRANULARITY);
>   for (seg = 0; seg < segment_count; ++seg)
>
> Modified: subversion/trunk/subversion/libsvn_subr/cache.c
> URL:
> http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/cache.c?rev=1350021&r1=1350020&r2=1350021&view=diff
>
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_subr/cache.c (original)
> +++ subversion/trunk/subversion/libsvn_subr/cache.c Wed Jun 13 21:22:24
> 2012
> @@ -212,14 +212,14 @@ svn_cache__format_info(const svn_cache__
>   enum { _1MB = 1024 * 1024 };
>
>   apr_uint64_t misses = info->gets - info->hits;
> -  double hit_rate = (100.0 * info->hits)
> -                  / (info->gets ? info->gets : 1);
> -  double write_rate = (100.0 * info->sets)
> -                    / (misses ? misses : 1);
> -  double data_usage_rate = (100.0 * info->used_size)
> -                         / (info->data_size ? info->data_size : 1);
> -  double data_entry_rate = (100.0 * info->used_entries)
> -                         / (info->total_entries ? info->total_entries :
> 1);
> +  double hit_rate = (100.0 * (double)info->hits)
> +                  / (double)(info->gets ? info->gets : 1);
> +  double write_rate = (100.0 * (double)info->sets)
> +                    / (double)(misses ? misses : 1);
> +  double data_usage_rate = (100.0 * (double)info->used_size)
> +                         / (double)(info->data_size ? info->data_size :
> 1);
> +  double data_entry_rate = (100.0 * (double)info->used_entries)
> +                 / (double)(info->total_entries ? info->total_entries :
> 1);
>
>   return svn_string_createf(result_pool,
>
>
> Modified: subversion/trunk/subversion/libsvn_subr/string.c
> URL:
> http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/string.c?rev=1350021&r1=1350020&r2=1350021&view=diff
>
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_subr/string.c (original)
> +++ subversion/trunk/subversion/libsvn_subr/string.c Wed Jun 13 21:22:24
> 2012
> @@ -976,7 +976,7 @@ svn__ui64toa(char * dest, apr_uint64_t n
>       /* Number is larger than 100^4, i.e. we can write 4x2 chars.
>        * Also, use 32 bit DIVs as these are about twice as fast.
>        */
> -      reduced = number % 100000000;
> +      reduced = (apr_uint32_t)(number % 100000000);
>       number /= 100000000;
>
>       COPY_TWO_BYTES(target - 0, decimal_table[reduced % 100]);
>
> Modified: subversion/trunk/subversion/mod_authz_svn/mod_authz_svn.c
> URL:
> http://svn.apache.org/viewvc/subversion/trunk/subversion/mod_authz_svn/mod_authz_svn.c?rev=1350021&r1=1350020&r2=1350021&view=diff
>
> ==============================================================================
> --- subversion/trunk/subversion/mod_authz_svn/mod_authz_svn.c (original)
> +++ subversion/trunk/subversion/mod_authz_svn/mod_authz_svn.c Wed Jun 13
> 21:22:24 2012
> @@ -235,7 +235,7 @@ convert_case(char *text, svn_boolean_t t
>   char *c = text;
>   while (*c)
>     {
> -      *c = (to_uppercase ? apr_toupper(*c) : apr_tolower(*c));
> +      *c = (char)(to_uppercase ? apr_toupper(*c) : apr_tolower(*c));
>       ++c;
>     }
>  }
>
> Modified: subversion/trunk/subversion/svnserve/main.c
> URL:
> http://svn.apache.org/viewvc/subversion/trunk/subversion/svnserve/main.c?rev=1350021&r1=1350020&r2=1350021&view=diff
>
> ==============================================================================
> --- subversion/trunk/subversion/svnserve/main.c (original)
> +++ subversion/trunk/subversion/svnserve/main.c Wed Jun 13 21:22:24 2012
> @@ -898,6 +898,60 @@ int main(int argc, const char *argv[])
>   apr_signal(SIGXFSZ, SIG_IGN);
>  #endif
>
> +#ifdef SIGUSR1
> +  /* Disable SIGPIPE generation for the platforms that have it. */
> +  apr_signal(SIGUSR1, SIG_IGN);
> +/*
> +#ifdef WIN32
> +LRESULT CALLBACK ipc_window_proc(HWND hWnd, UINT message, WPARAM wParam,
> LPARAM lParam)
> +{
> +  switch (message)
> +  {
> +    case WM_USER:  ipc_recv(0);
> +    break;
> +    default:  return DefWindowProc(hWnd, message, wParam, lParam);
> +    break;
> +
> +  }
> +  return 0;
> +}
> +#endif
> +void ipc_init()
> +{
> +  string cdir = config_dir();
> +  db_path = cdir + "/dropbox.xdf";
> +  sig_path = cdir + "/sig";
> +#ifndef WIN32
> +  signal(SIGUSR1, ipc_recv);
> +#else
> +  //welcome to hell
> +  HINSTANCE inst =
> (HINSTANCE)GetWindowLong((HWND)GDK_WINDOW_HWND(get_mainwin()->window),
> GWL_HINSTANCE);
> +  WNDCLASSEX wcex;
> +  wcex.cbSize = sizeof(WNDCLASSEX);
> +  wcex.style = 0;
> +  wcex.lpfnWndProc = ipc_window_proc;
> +  wcex.cbClsExtra = 0;
> +  wcex.cbWndExtra = 0;
> +  wcex.hCursor = 0;
> +  wcex.hbrBackground = 0;
> +  wcex.hIcon = 0;
> +  wcex.hIconSm = 0;
> +  wcex.hInstance = inst;
> +  wcex.lpszMenuName = NULL;
> +  wcex.lpszClassName = "MyApp Messages";
> +  if(!RegisterClassEx(&wcex))
> +    cerr << "Cannot register IPC window class!" << endl;
> +  ipc_window = CreateWindow(wcex.lpszClassName, "MyApp IPC",
> WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,  500, 100, HWND_MESSAGE,
> NULL, inst, NULL);
> +  if(!ipc_window)
> +    cerr << "Cannot create IPC window (" << (int)GetLastError() << ")" <<
> endl;
> +#endif
> +  ofstream out(sig_path.c_str());
> +  out << getpid() << endl;
> +  out.close();
> +}
> +*/
> +#endif
> +
>   if (pid_filename)
>     SVN_INT_ERR(write_pid_file(pid_filename, pool));
>
>
>
>