You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by vm...@apache.org on 2012/12/27 03:16:35 UTC

svn commit: r1426100 - in /subversion/branches/javahl-ra: ./ subversion/libsvn_client/ subversion/libsvn_delta/ subversion/libsvn_subr/ subversion/svndumpfilter/ tools/server-side/

Author: vmpn
Date: Thu Dec 27 02:16:35 2012
New Revision: 1426100

URL: http://svn.apache.org/viewvc?rev=1426100&view=rev
Log:
On the javahl-ra branch:

Bring up-to-date with trunk@1405528

Modified:
    subversion/branches/javahl-ra/   (props changed)
    subversion/branches/javahl-ra/subversion/libsvn_client/deprecated.c
    subversion/branches/javahl-ra/subversion/libsvn_delta/svndiff.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/config_win.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/dirent_uri.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/utf_width.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/win32_crashrpt.c
    subversion/branches/javahl-ra/subversion/svndumpfilter/main.c
    subversion/branches/javahl-ra/tools/server-side/fsfs-reorg.c

Propchange: subversion/branches/javahl-ra/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1405518-1405528

Modified: subversion/branches/javahl-ra/subversion/libsvn_client/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_client/deprecated.c?rev=1426100&r1=1426099&r2=1426100&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_client/deprecated.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_client/deprecated.c Thu Dec 27 02:16:35 2012
@@ -2385,7 +2385,7 @@ info_from_info2(svn_info_t **new_info,
   info->size64              = info2->size;
   if (info2->size == SVN_INVALID_FILESIZE)
     info->size               = SVN_INFO_SIZE_UNKNOWN;
-  else if (((apr_size_t)info->size64) == info->size64)
+  else if (((svn_filesize_t)(apr_size_t)info->size64) == info->size64)
     info->size               = (apr_size_t)info->size64;
   else /* >= 4GB */
     info->size               = SVN_INFO_SIZE_UNKNOWN;
@@ -2411,7 +2411,7 @@ info_from_info2(svn_info_t **new_info,
         info->depth = svn_depth_infinity;
 
       info->working_size64      = info2->wc_info->recorded_size;
-      if (((apr_size_t)info->working_size64) == info->working_size64)
+      if (((svn_filesize_t)(apr_size_t)info->working_size64) == info->working_size64)
         info->working_size       = (apr_size_t)info->working_size64;
       else /* >= 4GB */
         info->working_size       = SVN_INFO_SIZE_UNKNOWN;

Modified: subversion/branches/javahl-ra/subversion/libsvn_delta/svndiff.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_delta/svndiff.c?rev=1426100&r1=1426099&r2=1426100&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_delta/svndiff.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_delta/svndiff.c Thu Dec 27 02:16:35 2012
@@ -852,7 +852,7 @@ write_handler(void *baton,
       /* Check for integer overflow.  */
       if (sview_offset < 0 || inslen + newlen < inslen
           || sview_len + tview_len < sview_len
-          || sview_offset + sview_len < sview_offset)
+          || (apr_size_t)sview_offset + sview_len < (apr_size_t)sview_offset)
         return svn_error_create(SVN_ERR_SVNDIFF_CORRUPT_WINDOW, NULL,
                                 _("Svndiff contains corrupt window header"));
 
@@ -1016,7 +1016,7 @@ read_window_header(svn_stream_t *stream,
   /* Check for integer overflow.  */
   if (*sview_offset < 0 || *inslen + *newlen < *inslen
       || *sview_len + *tview_len < *sview_len
-      || *sview_offset + *sview_len < *sview_offset)
+      || (apr_size_t)*sview_offset + *sview_len < (apr_size_t)*sview_offset)
     return svn_error_create(SVN_ERR_SVNDIFF_CORRUPT_WINDOW, NULL,
                             _("Svndiff contains corrupt window header"));
 

Modified: subversion/branches/javahl-ra/subversion/libsvn_subr/config_win.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_subr/config_win.c?rev=1426100&r1=1426099&r2=1426100&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_subr/config_win.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_subr/config_win.c Thu Dec 27 02:16:35 2012
@@ -56,7 +56,7 @@ svn_config__win_config_path(const char *
                      | CSIDL_FLAG_CREATE);
 
   WCHAR folder_ucs2[MAX_PATH];
-  apr_size_t inwords, outbytes, outlength;
+  int inwords, outbytes, outlength;
   char *folder_utf8;
 
   if (S_OK != SHGetFolderPathW(NULL, csidl, NULL, SHGFP_TYPE_CURRENT,
@@ -109,7 +109,7 @@ parse_section(svn_config_t *cfg, HKEY hk
   svn_stringbuf_ensure(value, SVN_REG_DEFAULT_VALUE_SIZE);
   for (index = 0; ; ++index)
     {
-      option_len = option->blocksize;
+      option_len = (DWORD)option->blocksize;
       err = RegEnumValue(hkey, index, option->data, &option_len,
                          NULL, &type, NULL, NULL);
       if (err == ERROR_NO_MORE_ITEMS)
@@ -128,7 +128,7 @@ parse_section(svn_config_t *cfg, HKEY hk
          http://subversion.tigris.org/issues/show_bug.cgi?id=671 */
       if (type == REG_SZ && option->data[0] != '#')
         {
-          DWORD value_len = value->blocksize;
+          DWORD value_len = (DWORD)value->blocksize;
           err = RegQueryValueEx(hkey, option->data, NULL, NULL,
                                 (LPBYTE)value->data, &value_len);
           if (err == ERROR_MORE_DATA)
@@ -214,7 +214,7 @@ svn_config__parse_registry(svn_config_t 
   svn_stringbuf_ensure(section, SVN_REG_DEFAULT_NAME_SIZE);
   for (index = 0; ; ++index)
     {
-      DWORD section_len = section->blocksize;
+      DWORD section_len = (DWORD)section->blocksize;
       FILETIME last_write_time;
       HKEY sub_hkey;
 

Modified: subversion/branches/javahl-ra/subversion/libsvn_subr/dirent_uri.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_subr/dirent_uri.c?rev=1426100&r1=1426099&r2=1426100&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_subr/dirent_uri.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_subr/dirent_uri.c Thu Dec 27 02:16:35 2012
@@ -911,7 +911,7 @@ svn_dirent_is_root(const char *dirent, a
       && dirent[len - 1] != '/')
     {
       int segments = 0;
-      int i;
+      apr_size_t i;
       for (i = len; i >= 2; i--)
         {
           if (dirent[i] == '/')

Modified: subversion/branches/javahl-ra/subversion/libsvn_subr/utf_width.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_subr/utf_width.c?rev=1426100&r1=1426099&r2=1426100&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_subr/utf_width.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_subr/utf_width.c Thu Dec 27 02:16:35 2012
@@ -67,16 +67,16 @@
 #include "svn_private_config.h"
 
 struct interval {
-  int first;
-  int last;
+  apr_uint32_t first;
+  apr_uint32_t last;
 };
 
 /* auxiliary function for binary search in interval table */
 static int
-bisearch(apr_uint32_t ucs, const struct interval *table, int max)
+bisearch(apr_uint32_t ucs, const struct interval *table, apr_uint32_t max)
 {
-  int min = 0;
-  int mid;
+  apr_uint32_t min = 0;
+  apr_uint32_t mid;
 
   if (ucs < table[0].first || ucs > table[max].last)
     return 0;
@@ -85,7 +85,7 @@ bisearch(apr_uint32_t ucs, const struct 
     if (ucs > table[mid].last)
       min = mid + 1;
     else if (ucs < table[mid].first)
-      max = mid - 1;
+      max = mid - 1; /* this is safe because ucs >= table[0].first */
     else
       return 1;
   }

Modified: subversion/branches/javahl-ra/subversion/libsvn_subr/win32_crashrpt.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_subr/win32_crashrpt.c?rev=1426100&r1=1426099&r2=1426100&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_subr/win32_crashrpt.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_subr/win32_crashrpt.c Thu Dec 27 02:16:35 2012
@@ -46,6 +46,12 @@ HANDLE dbghelp_dll = INVALID_HANDLE_VALU
 
 #define LOGFILE_PREFIX "svn-crash-log"
 
+#if defined(_M_IX86)
+#define FORMAT_PTR "0x%08x"
+#elif defined(_M_X64)
+#define FORMAT_PTR "0x%016I64x"
+#endif
+
 /*** Code. ***/
 
 /* Convert a wide-character string to utf-8. This function will create a buffer
@@ -158,7 +164,7 @@ write_module_info_callback(void *data,
       MINIDUMP_MODULE_CALLBACK module = callback_input->Module;
 
       char *buf = convert_wbcs_to_utf8(module.FullPath);
-      fprintf(log_file, "0x%08x", module.BaseOfImage);
+      fprintf(log_file, FORMAT_PTR, module.BaseOfImage);
       fprintf(log_file, "  %s", buf);
       free(buf);
 
@@ -268,9 +274,9 @@ format_basic_type(char *buf, DWORD basic
             case 2:  /* btChar */
               {
                 if (!IsBadStringPtr(*(PSTR*)address, 32))
-                  sprintf(buf, "\"%.31s\"", *(unsigned long *)address);
+                  sprintf(buf, "\"%.31s\"", *(const char **)address);
                 else
-                  sprintf(buf, "0x%08x", (int)*(unsigned long *)address);
+                  sprintf(buf, FORMAT_PTR, *(DWORD_PTR *)address);
               }
             case 6:  /* btInt */
               sprintf(buf, "%d", *(int *)address);
@@ -279,7 +285,7 @@ format_basic_type(char *buf, DWORD basic
               sprintf(buf, "%f", *(float *)address);
               break;
             default:
-              sprintf(buf, "0x%08x", *(unsigned long *)address);
+              sprintf(buf, FORMAT_PTR, *(DWORD_PTR *)address);
               break;
           }
         break;
@@ -290,7 +296,8 @@ format_basic_type(char *buf, DWORD basic
           sprintf(buf, "0x%016I64X", *(unsigned __int64 *)address);
         break;
       default:
-        sprintf(buf, "[unhandled type 0x%08x of length 0x%08x]", basic_type, length);
+        sprintf(buf, "[unhandled type 0x%08x of length " FORMAT_PTR "]",
+                     basic_type, length);
         break;
     }
 }
@@ -328,14 +335,14 @@ format_value(char *value_str, DWORD64 mo
               LocalFree(type_name_wbcs);
 
               if (ptr == 0)
-                sprintf(value_str, "(%s) 0x%08x",
-                        type_name, (DWORD *)value_addr);
+                sprintf(value_str, "(%s) " FORMAT_PTR,
+                        type_name, (DWORD_PTR *)value_addr);
               else if (ptr == 1)
-                sprintf(value_str, "(%s *) 0x%08x",
-                        type_name, *(DWORD *)value_addr);
+                sprintf(value_str, "(%s *) " FORMAT_PTR,
+                        type_name, *(DWORD_PTR *)value_addr);
               else
-                sprintf(value_str, "(%s **) 0x%08x",
-                        type_name, *(DWORD *)value_addr);
+                sprintf(value_str, "(%s **) " FORMAT_PTR,
+                        type_name, *(DWORD_PTR *)value_addr);
 
               free(type_name);
             }
@@ -352,12 +359,12 @@ format_value(char *value_str, DWORD64 mo
           /* print a char * as a string */
           if (ptr == 1 && length == 1)
             {
-              sprintf(value_str, "0x%08x \"%s\"",
-                      *(DWORD *)value_addr, (char *)*(DWORD*)value_addr);
+              sprintf(value_str, FORMAT_PTR " \"%s\"",
+                      *(DWORD_PTR *)value_addr, *(const char **)value_addr);
             }
           else if (ptr >= 1)
             {
-              sprintf(value_str, "0x%08x", *(DWORD *)value_addr);
+              sprintf(value_str, FORMAT_PTR, *(DWORD_PTR *)value_addr);
             }
           else if (SymGetTypeInfo_(proc, mod_base, type, TI_GET_BASETYPE, &bt))
             {
@@ -366,10 +373,10 @@ format_value(char *value_str, DWORD64 mo
         }
         break;
       case 12: /* SymTagEnum */
-          sprintf(value_str, "%d", *(DWORD *)value_addr);
+          sprintf(value_str, "%d", *(DWORD_PTR *)value_addr);
           break;
       case 13: /* SymTagFunctionType */
-          sprintf(value_str, "0x%08x", *(DWORD *)value_addr);
+          sprintf(value_str, FORMAT_PTR, *(DWORD_PTR *)value_addr);
           break;
       default:
           sprintf(value_str, "[unhandled tag: %d]", tag);

Modified: subversion/branches/javahl-ra/subversion/svndumpfilter/main.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/svndumpfilter/main.c?rev=1426100&r1=1426099&r2=1426100&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/svndumpfilter/main.c (original)
+++ subversion/branches/javahl-ra/subversion/svndumpfilter/main.c Thu Dec 27 02:16:35 2012
@@ -45,7 +45,12 @@
 
 #include "private/svn_mergeinfo_private.h"
 
-
+#ifdef _WIN32
+typedef apr_status_t (__stdcall *open_fn_t)(apr_file_t **, apr_pool_t *);
+#else
+typedef apr_status_t (*open_fn_t)(apr_file_t **, apr_pool_t *);
+#endif
+
 /*** Code. ***/
 
 /* Helper to open stdio streams */
@@ -62,8 +67,7 @@
 */
 static svn_error_t *
 create_stdio_stream(svn_stream_t **stream,
-                    APR_DECLARE(apr_status_t) open_fn(apr_file_t **,
-                                                      apr_pool_t *),
+                    open_fn_t open_fn,
                     apr_pool_t *pool)
 {
   apr_file_t *stdio_file;

Modified: subversion/branches/javahl-ra/tools/server-side/fsfs-reorg.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/tools/server-side/fsfs-reorg.c?rev=1426100&r1=1426099&r2=1426100&view=diff
==============================================================================
--- subversion/branches/javahl-ra/tools/server-side/fsfs-reorg.c (original)
+++ subversion/branches/javahl-ra/tools/server-side/fsfs-reorg.c Thu Dec 27 02:16:35 2012
@@ -724,8 +724,13 @@ key_matches(svn_string_t *string, const 
 static int
 compare_noderev_offsets(const void *data, const void *key)
 {
-  return (*(const noderev_t **)data)->original.offset
-       - *(const apr_size_t *)key;
+  apr_ssize_t diff = (*(const noderev_t **)data)->original.offset
+                   - *(const apr_size_t *)key;
+
+  /* sizeof(int) may be < sizeof(ssize_t) */
+  if (diff < 0)
+    return -1;
+  return diff > 0 ? 1 : 0;
 }
 
 static svn_error_t *
@@ -800,8 +805,13 @@ parse_pred(noderev_t **result,
 static int
 compare_representation_offsets(const void *data, const void *key)
 {
-  return (*(const representation_t **)data)->original.offset
-       - *(const apr_size_t *)key;
+  apr_ssize_t diff = (*(const representation_t **)data)->original.offset
+                   - *(const apr_size_t *)key;
+
+  /* sizeof(int) may be < sizeof(ssize_t) */
+  if (diff < 0)
+    return -1;
+  return diff > 0 ? 1 : 0;
 }
 
 static representation_t *