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));
 


Reply via email to