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 2015/06/14 22:58:16 UTC
svn commit: r1685464 [16/43] - in /subversion/branches/fsx-1.10: ./ build/
build/ac-macros/ build/generator/ build/generator/templates/
contrib/client-side/svncopy/ doc/ notes/ subversion/bindings/javahl/
subversion/bindings/javahl/native/ subversion/b...
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/hash.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/hash.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/hash.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/hash.c Sun Jun 14 20:58:10 2015
@@ -31,10 +31,14 @@
#include <apr_hash.h>
#include <apr_file_io.h>
+#ifndef SVN_HASH__GETS_SETS
+#define SVN_HASH__GETS_SETS
+#endif
+#include "svn_hash.h"
+
#include "svn_types.h"
#include "svn_string.h"
#include "svn_error.h"
-#include "svn_hash.h"
#include "svn_sorts.h"
#include "svn_io.h"
#include "svn_pools.h"
@@ -45,7 +49,6 @@
#include "svn_private_config.h"
-
/*
@@ -132,7 +135,7 @@ svn_hash__read_entry(svn_hash__entry_t *
0, APR_SIZE_MAX, 10);
if (err)
return svn_error_create(SVN_ERR_MALFORMED_FILE, err,
- _("Serialized hash malformed"));
+ _("Serialized hash malformed key length"));
entry->keylen = (apr_size_t)ui64;
/* Now read that much into a buffer. */
@@ -145,19 +148,19 @@ svn_hash__read_entry(svn_hash__entry_t *
SVN_ERR(svn_stream_read_full(stream, &c, &len));
if (c != '\n')
return svn_error_create(SVN_ERR_MALFORMED_FILE, NULL,
- _("Serialized hash malformed"));
+ _("Serialized hash malformed key data"));
/* Read a val length line */
SVN_ERR(svn_stream_readline(stream, &buf, "\n", &eof, pool));
if ((buf->data[0] == 'V') && (buf->data[1] == ' '))
{
- /* Get the length of the key */
+ /* Get the length of the val */
err = svn_cstring_strtoui64(&ui64, buf->data + 2,
0, APR_SIZE_MAX, 10);
if (err)
return svn_error_create(SVN_ERR_MALFORMED_FILE, err,
- _("Serialized hash malformed"));
+ _("Serialized hash malformed value length"));
entry->vallen = (apr_size_t)ui64;
entry->val = apr_palloc(pool, entry->vallen + 1);
@@ -169,7 +172,7 @@ svn_hash__read_entry(svn_hash__entry_t *
SVN_ERR(svn_stream_read_full(stream, &c, &len));
if (c != '\n')
return svn_error_create(SVN_ERR_MALFORMED_FILE, NULL,
- _("Serialized hash malformed"));
+ _("Serialized hash malformed value data"));
}
else
return svn_error_create(SVN_ERR_MALFORMED_FILE, NULL,
@@ -183,7 +186,7 @@ svn_hash__read_entry(svn_hash__entry_t *
0, APR_SIZE_MAX, 10);
if (err)
return svn_error_create(SVN_ERR_MALFORMED_FILE, err,
- _("Serialized hash malformed"));
+ _("Serialized hash malformed key length"));
entry->keylen = (apr_size_t)ui64;
/* Now read that much into a buffer. */
@@ -196,7 +199,7 @@ svn_hash__read_entry(svn_hash__entry_t *
SVN_ERR(svn_stream_read_full(stream, &c, &len));
if (c != '\n')
return svn_error_create(SVN_ERR_MALFORMED_FILE, NULL,
- _("Serialized hash malformed"));
+ _("Serialized hash malformed key data"));
/* Remove this hash entry. */
entry->vallen = 0;
@@ -560,6 +563,20 @@ svn_hash_from_cstring_keys(apr_hash_t **
}
+void *
+svn_hash__gets(apr_hash_t *ht, const char *key)
+{
+ return apr_hash_get(ht, key, APR_HASH_KEY_STRING);
+}
+
+
+void
+svn_hash__sets(apr_hash_t *ht, const char *key, const void *val)
+{
+ apr_hash_set(ht, key, APR_HASH_KEY_STRING, val);
+}
+
+
/*** Specialized getter APIs ***/
@@ -597,14 +614,14 @@ svn_hash__get_bool(apr_hash_t *hash, con
/*** Optimized hash function ***/
-/* apr_hashfunc_t optimized for the key that we use in SVN: paths and
+/* apr_hashfunc_t optimized for the key that we use in SVN: paths and
* property names. Its primary goal is speed for keys of known length.
- *
+ *
* Since strings tend to spawn large value spaces (usually differ in many
* bits with differences spanning a larger section of the key), we can be
* quite sloppy extracting a hash value. The more keys there are in a
* hash container, the more bits of the value returned by this function
- * will be used. For a small number of string keys, choosing bits from any
+ * will be used. For a small number of string keys, choosing bits from any
* any fix location close to the tail of those keys would usually be good
* enough to prevent high collision rates.
*/
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/io.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/io.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/io.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/io.c Sun Jun 14 20:58:10 2015
@@ -1002,10 +1002,9 @@ svn_io_copy_perms(const char *src,
svn_error_clear(err);
else
{
- const char *message;
- message = apr_psprintf(pool, _("Can't set permissions on '%s'"),
- svn_dirent_local_style(dst, pool));
- return svn_error_quick_wrap(err, message);
+ return svn_error_quick_wrapf(
+ err, _("Can't set permissions on '%s'"),
+ svn_dirent_local_style(dst, pool));
}
}
}
@@ -1192,7 +1191,7 @@ svn_error_t *
svn_io_file_create_bytes(const char *file,
const void *contents,
apr_size_t length,
- apr_pool_t *pool)
+ apr_pool_t *scratch_pool)
{
apr_file_t *f;
apr_size_t written;
@@ -1201,13 +1200,14 @@ svn_io_file_create_bytes(const char *fil
SVN_ERR(svn_io_file_open(&f, file,
(APR_WRITE | APR_CREATE | APR_EXCL),
APR_OS_DEFAULT,
- pool));
+ scratch_pool));
if (length)
- err = svn_io_file_write_full(f, contents, length, &written, pool);
+ err = svn_io_file_write_full(f, contents, length, &written,
+ scratch_pool);
err = svn_error_compose_create(
err,
- svn_io_file_close(f, pool));
+ svn_io_file_close(f, scratch_pool));
if (err)
{
@@ -1217,7 +1217,7 @@ svn_io_file_create_bytes(const char *fil
return svn_error_trace(
svn_error_compose_create(
err,
- svn_io_remove_file2(file, TRUE, pool)));
+ svn_io_remove_file2(file, TRUE, scratch_pool)));
}
return SVN_NO_ERROR;
@@ -1236,9 +1236,10 @@ svn_io_file_create(const char *file,
svn_error_t *
svn_io_file_create_empty(const char *file,
- apr_pool_t *pool)
+ apr_pool_t *scratch_pool)
{
- return svn_error_trace(svn_io_file_create_bytes(file, NULL, 0, pool));
+ return svn_error_trace(svn_io_file_create_bytes(file, NULL, 0,
+ scratch_pool));
}
svn_error_t *
@@ -1855,7 +1856,7 @@ io_win_file_attrs_set(const char *fname,
_("Can't set attributes of file '%s'"),
svn_dirent_local_style(fname, pool));
- return SVN_NO_ERROR;;
+ return SVN_NO_ERROR;
}
static svn_error_t *win_init_dynamic_imports(void *baton, apr_pool_t *pool)
@@ -2387,7 +2388,7 @@ stringbuf_from_aprfile(svn_stringbuf_t *
res_initial_len, &res->len,
&eof, pool));
res->data[res->len] = 0;
-
+
*result = res;
return SVN_NO_ERROR;
}
@@ -2566,7 +2567,7 @@ svn_io_remove_dir2(const char *path, svn
If we need to bail out, do so early. */
if (cancel_func)
- SVN_ERR((*cancel_func)(cancel_baton));
+ SVN_ERR(cancel_func(cancel_baton));
subpool = svn_pool_create(pool);
@@ -2599,7 +2600,7 @@ svn_io_remove_dir2(const char *path, svn
else
{
if (cancel_func)
- SVN_ERR((*cancel_func)(cancel_baton));
+ SVN_ERR(cancel_func(cancel_baton));
err = svn_io_remove_file2(fullpath, FALSE, subpool);
if (err)
@@ -3581,6 +3582,16 @@ svn_io_file_info_get(apr_finfo_t *finfo,
pool);
}
+svn_error_t *
+svn_io_file_size_get(svn_filesize_t *filesize_p, apr_file_t *file,
+ apr_pool_t *pool)
+{
+ apr_finfo_t finfo;
+ SVN_ERR(svn_io_file_info_get(&finfo, APR_FINFO_SIZE, file, pool));
+
+ *filesize_p = finfo.size;
+ return SVN_NO_ERROR;
+}
svn_error_t *
svn_io_file_read(apr_file_t *file, void *buf,
@@ -3634,7 +3645,7 @@ svn_io_file_aligned_seek(apr_file_t *fil
apr_off_t block_size,
apr_off_t *buffer_start,
apr_off_t offset,
- apr_pool_t *pool)
+ apr_pool_t *scratch_pool)
{
const apr_size_t apr_default_buffer_size = 4096;
apr_size_t file_buffer_size = apr_default_buffer_size;
@@ -3684,7 +3695,7 @@ svn_io_file_aligned_seek(apr_file_t *fil
buffer and no I/O will actually happen in the FILL_BUFFER
section below.
*/
- SVN_ERR(svn_io_file_seek(file, APR_CUR, ¤t, pool));
+ SVN_ERR(svn_io_file_seek(file, APR_CUR, ¤t, scratch_pool));
fill_buffer = aligned_offset + file_buffer_size <= current
|| current <= aligned_offset;
}
@@ -3695,7 +3706,8 @@ svn_io_file_aligned_seek(apr_file_t *fil
apr_status_t status;
/* seek to the start of the block and cause APR to read 1 block */
- SVN_ERR(svn_io_file_seek(file, APR_SET, &aligned_offset, pool));
+ SVN_ERR(svn_io_file_seek(file, APR_SET, &aligned_offset,
+ scratch_pool));
status = apr_file_getc(&dummy, file);
/* read may fail if we seek to or behind EOF. That's ok then. */
@@ -3703,17 +3715,17 @@ svn_io_file_aligned_seek(apr_file_t *fil
return do_io_file_wrapper_cleanup(file, status,
N_("Can't read file '%s'"),
N_("Can't read stream"),
- pool);
+ scratch_pool);
}
/* finally, seek to the OFFSET the caller wants */
desired_offset = offset;
- SVN_ERR(svn_io_file_seek(file, APR_SET, &offset, pool));
+ SVN_ERR(svn_io_file_seek(file, APR_SET, &offset, scratch_pool));
if (desired_offset != offset)
return do_io_file_wrapper_cleanup(file, APR_EOF,
N_("Can't seek in file '%s'"),
N_("Can't seek in stream"),
- pool);
+ scratch_pool);
/* return the buffer start that we (probably) enforced */
if (buffer_start)
@@ -3866,11 +3878,10 @@ svn_io_write_atomic(const char *final_pa
scratch_pool));
}
-#ifdef __linux__
+#if SVN_ON_POSIX
{
- /* Linux has the unusual feature that fsync() on a file is not
- enough to ensure that a file's directory entries have been
- flushed to disk; you have to fsync the directory as well.
+ /* On POSIX, the file name is stored in the file's directory entry.
+ Hence, we need to fsync() that directory as well.
On other operating systems, we'd only be asking for trouble
by trying to open and fsync a directory. */
apr_file_t *file;
@@ -4044,7 +4055,8 @@ svn_error_t *
svn_io_file_move(const char *from_path, const char *to_path,
apr_pool_t *pool)
{
- svn_error_t *err = svn_io_file_rename(from_path, to_path, pool);
+ svn_error_t *err = svn_error_trace(svn_io_file_rename(from_path, to_path,
+ pool));
if (err && APR_STATUS_IS_EXDEV(err->apr_err))
{
@@ -4057,24 +4069,27 @@ svn_io_file_move(const char *from_path,
svn_io_file_del_none,
pool, pool));
- err = svn_io_copy_file(from_path, tmp_to_path, TRUE, pool);
+ err = svn_error_trace(svn_io_copy_file(from_path, tmp_to_path, TRUE,
+ pool));
if (err)
goto failed_tmp;
- err = svn_io_file_rename(tmp_to_path, to_path, pool);
+ err = svn_error_trace(svn_io_file_rename(tmp_to_path, to_path, pool));
if (err)
goto failed_tmp;
- err = svn_io_remove_file2(from_path, FALSE, pool);
+ err = svn_error_trace(svn_io_remove_file2(from_path, FALSE, pool));
if (! err)
return SVN_NO_ERROR;
- svn_error_clear(svn_io_remove_file2(to_path, FALSE, pool));
-
- return err;
+ return svn_error_compose_create(
+ err,
+ svn_error_trace(svn_io_remove_file2(to_path, FALSE, pool)));
failed_tmp:
- svn_error_clear(svn_io_remove_file2(tmp_to_path, FALSE, pool));
+ err = svn_error_compose_create(
+ err,
+ svn_error_trace(svn_io_remove_file2(tmp_to_path, FALSE, pool)));
}
return err;
@@ -5080,12 +5095,9 @@ svn_io_open_unique_file3(apr_file_t **fi
svn_error_clear(err);
else
{
- const char *message;
- message = apr_psprintf(scratch_pool,
- _("Can't set permissions on '%s'"),
- svn_dirent_local_style(tempname,
- scratch_pool));
- return svn_error_quick_wrap(err, message);
+ return svn_error_quick_wrapf(
+ err, _("Can't set permissions on '%s'"),
+ svn_dirent_local_style(tempname, scratch_pool));
}
}
}
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/mergeinfo.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/mergeinfo.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/mergeinfo.c Sun Jun 14 20:58:10 2015
@@ -2306,8 +2306,7 @@ svn_rangelist_dup(const svn_rangelist_t
svn_merge_range_t *
svn_merge_range_dup(const svn_merge_range_t *range, apr_pool_t *pool)
{
- svn_merge_range_t *new_range = apr_palloc(pool, sizeof(*new_range));
- memcpy(new_range, range, sizeof(*new_range));
+ svn_merge_range_t *new_range = apr_pmemdup(pool, range, sizeof(*new_range));
return new_range;
}
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/object_pool.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/object_pool.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/object_pool.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/object_pool.c Sun Jun 14 20:58:10 2015
@@ -85,7 +85,7 @@ struct svn_object_pool__t
/* the root pool owning this structure */
apr_pool_t *pool;
-
+
/* extractor and updater for the user object wrappers */
svn_object_pool__getter_t getter;
svn_object_pool__setter_t setter;
@@ -171,7 +171,7 @@ static void
add_object_ref(object_ref_t *object_ref,
apr_pool_t *pool)
{
- /* Update ref counter.
+ /* Update ref counter.
Note that this is racy with object_ref_cleanup; see comment there. */
if (svn_atomic_inc(&object_ref->ref_count) == 0)
svn_atomic_dec(&object_ref->object_pool->unused_count);
@@ -275,7 +275,7 @@ insert(void **object,
svn_atomic_inc(&object_pool->object_count);
/* the new entry is *not* in use yet.
- * add_object_ref will update counters again.
+ * add_object_ref will update counters again.
*/
svn_atomic_inc(&object_ref->object_pool->unused_count);
}
@@ -345,7 +345,7 @@ svn_object_pool__create(svn_object_pool_
*/
apr_pool_cleanup_register(pool, result, object_pool_cleanup,
apr_pool_cleanup_null);
-
+
*object_pool = result;
return SVN_NO_ERROR;
}
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/packed_data.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/packed_data.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/packed_data.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/packed_data.c Sun Jun 14 20:58:10 2015
@@ -39,7 +39,7 @@ typedef struct packed_int_private_t
{
/* First sub-stream, if any. NULL otherwise. */
svn_packed__int_stream_t *first_substream;
-
+
/* Last sub-stream, if any. NULL otherwise. */
svn_packed__int_stream_t *last_substream;
@@ -66,7 +66,7 @@ typedef struct packed_int_private_t
/* Deltify data before storing it in PACKED. */
svn_boolean_t diff;
-
+
/* Numbers are likely to contain negative values with small absolutes.
If TRUE, store the signed bit in LSB before encoding. */
svn_boolean_t is_signed;
@@ -141,7 +141,7 @@ svn_packed__data_create_root(apr_pool_t
{
svn_packed__data_root_t *root = apr_pcalloc(pool, sizeof(*root));
root->pool = pool;
-
+
return root;
}
@@ -160,7 +160,7 @@ svn_packed__create_int_stream(svn_packed
private_data->is_signed = signed_ints;
private_data->is_last = TRUE;
private_data->pool = root->pool;
-
+
stream->buffer_used = 0;
stream->private_data = private_data;
@@ -561,10 +561,10 @@ write_stream_data(svn_stream_t *stream,
svn_stringbuf_t *uncompressed,
svn_stringbuf_t *compressed)
{
- SVN_ERR(svn__compress(uncompressed,
+ SVN_ERR(svn__compress(uncompressed->data, uncompressed->len,
compressed,
SVN_DELTA_COMPRESSION_LEVEL_DEFAULT));
-
+
SVN_ERR(write_stream_uint(stream, compressed->len));
SVN_ERR(svn_stream_write(stream, compressed->data, &compressed->len));
@@ -587,7 +587,7 @@ svn_packed__data_write(svn_stream_t *str
= svn_stringbuf_create_ensure(1024, scratch_pool);
svn_stringbuf_t *uncompressed
= svn_stringbuf_create_ensure(1024, scratch_pool);
-
+
/* write tree structure */
svn_stringbuf_t *tree_struct
= svn_stringbuf_create_ensure(127, scratch_pool);
@@ -613,7 +613,7 @@ svn_packed__data_write(svn_stream_t *str
append_int_stream(int_stream, uncompressed);
SVN_ERR(write_stream_data(stream, uncompressed, compressed));
}
-
+
for (byte_stream = root->first_byte_stream;
byte_stream;
byte_stream = byte_stream->next)
@@ -849,7 +849,7 @@ svn_packed__data_fill_buffer(svn_packed_
private_data->item_count -= end;
}
-apr_uint64_t
+apr_uint64_t
svn_packed__get_uint(svn_packed__int_stream_t *stream)
{
if (stream->buffer_used == 0)
@@ -876,7 +876,7 @@ svn_packed__get_bytes(svn_packed__byte_s
/* advance packed buffer */
stream->packed->data += count;
- stream->packed->len -= count;
+ stream->packed->len -= count;
stream->packed->blocksize -= count;
*len = count;
@@ -963,7 +963,7 @@ read_stream_data(svn_stream_t *stream,
{
apr_uint64_t len;
apr_size_t compressed_len;
-
+
SVN_ERR(read_stream_uint(stream, &len));
compressed_len = (apr_size_t)len;
@@ -972,7 +972,8 @@ read_stream_data(svn_stream_t *stream,
SVN_ERR(svn_stream_read_full(stream, compressed->data, &compressed->len));
compressed->data[compressed_len] = '\0';
- SVN_ERR(svn__decompress(compressed, uncompressed, uncompressed_len));
+ SVN_ERR(svn__decompress(compressed->data, compressed->len,
+ uncompressed, uncompressed_len));
return SVN_NO_ERROR;
}
@@ -1033,11 +1034,11 @@ svn_packed__data_read(svn_packed__data_r
{
apr_uint64_t i;
apr_uint64_t count;
-
+
svn_packed__int_stream_t *int_stream;
svn_packed__byte_stream_t *byte_stream;
svn_packed__data_root_t *root = svn_packed__data_create_root(result_pool);
-
+
svn_stringbuf_t *compressed
= svn_stringbuf_create_ensure(1024, scratch_pool);
svn_stringbuf_t *uncompressed
@@ -1052,7 +1053,7 @@ svn_packed__data_read(svn_packed__data_r
tree_struct
= svn_stringbuf_create_ensure((apr_size_t)tree_struct_size, scratch_pool);
tree_struct->len = (apr_size_t)tree_struct_size;
-
+
SVN_ERR(svn_stream_read_full(stream, tree_struct->data, &tree_struct->len));
tree_struct->data[tree_struct->len] = '\0';
@@ -1066,7 +1067,7 @@ svn_packed__data_read(svn_packed__data_r
count = read_packed_uint(tree_struct);
for (i = 0; i < count; ++i)
- read_byte_stream_structure(tree_struct,
+ read_byte_stream_structure(tree_struct,
create_bytes_stream_body(root),
root->first_int_stream);
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/pool.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/pool.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/pool.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/pool.c Sun Jun 14 20:58:10 2015
@@ -26,12 +26,14 @@
#include <stdlib.h>
#include <stdio.h>
+#include <apr.h>
+#include <apr_version.h>
#include <apr_general.h>
#include <apr_pools.h>
-#include <apr_thread_mutex.h>
#include "svn_pools.h"
+#include "pools.h"
#if APR_POOL_DEBUG
/* file_line for the non-debug case. */
@@ -140,3 +142,24 @@ svn_pool_create_allocator(svn_boolean_t
return allocator;
}
+
+
+/*
+ * apr_pool_create_core_ex was introduced in APR 1.3.0, then
+ * deprecated and renamed to apr_pool_create_unmanaged_ex in 1.3.3.
+ * Since our minimum requirement is APR 1.3.0, one or the other of
+ * these functions will always be available.
+ */
+#if !APR_VERSION_AT_LEAST(1,3,3)
+#define apr_pool_create_unmanaged_ex apr_pool_create_core_ex
+#endif
+
+/* Private function that creates an unmanaged pool. */
+apr_pool_t *
+svn_pool__create_unmanaged(svn_boolean_t thread_safe)
+{
+ apr_pool_t *pool;
+ apr_pool_create_unmanaged_ex(&pool, abort_on_pool_failure,
+ svn_pool_create_allocator(thread_safe));
+ return pool;
+}
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/prefix_string.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/prefix_string.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/prefix_string.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/prefix_string.c Sun Jun 14 20:58:10 2015
@@ -69,7 +69,7 @@ struct node_t
* 0 for the root node. Only then will key.prefix be NULL. */
apr_uint32_t length;
- /* Number of entries used in SUB_NODES. */
+ /* Number of entries used in SUB_NODES. */
apr_uint32_t sub_node_count;
/* The sub-nodes, ordered by first char. node_t and svn_prefix_string__t
@@ -136,7 +136,7 @@ search_lower_bound(node_t **sub_nodes,
/* Binary search for the lowest position at which to insert KEY. */
while (lower <= upper)
{
- int current = lower + (upper - lower) / 2;
+ int current = lower + (upper - lower) / 2;
if ((unsigned char)sub_nodes[current]->key.data[0] < key)
lower = current + 1;
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/properties.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/properties.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/properties.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/properties.c Sun Jun 14 20:58:10 2015
@@ -131,7 +131,6 @@ svn_boolean_t
svn_prop_has_svn_prop(const apr_hash_t *props, apr_pool_t *pool)
{
apr_hash_index_t *hi;
- const void *prop_name;
if (! props)
return FALSE;
@@ -139,8 +138,9 @@ svn_prop_has_svn_prop(const apr_hash_t *
for (hi = apr_hash_first(pool, (apr_hash_t *)props); hi;
hi = apr_hash_next(hi))
{
- apr_hash_this(hi, &prop_name, NULL, NULL);
- if (svn_prop_is_svn_prop((const char *) prop_name))
+ const char *prop_name = apr_hash_this_key(hi);
+
+ if (svn_prop_is_svn_prop(prop_name))
return TRUE;
}
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/sorts.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/sorts.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/sorts.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/sorts.c Sun Jun 14 20:58:10 2015
@@ -268,10 +268,10 @@ svn_sort__array_lookup(const apr_array_h
/* Intend to insert at a position inside the array, i.e. not
* at one of the boundaries. The predecessor must be smaller
* and the current entry at IDX must be larger than KEY. */
- void *previous;
+ void *previous;
*hint = idx;
- previous = array->elts + (idx-1) * array->elt_size;
+ previous = array->elts + (idx-1) * array->elt_size;
result = array->elts + idx * array->elt_size;
if (compare_func(previous, key) && !compare_func(result, key))
return result;
@@ -484,7 +484,7 @@ svn_priority_queue__create(apr_array_hea
for (i = elements->nelts / 2; i >= 0; --i)
heap_bubble_up(queue, i);
-
+
return queue;
}
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/sqlite.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/sqlite.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/sqlite.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/sqlite.c Sun Jun 14 20:58:10 2015
@@ -879,7 +879,7 @@ internal_open(svn_sqlite__db_t *db, cons
/* Open the database. Note that a handle is returned, even when an error
occurs (except for out-of-memory); thus, we can safely use it to
extract an error message and construct an svn_error_t. SQLite always
- requires sqlite3_close() after sqlite3_open_v2() while Subversion
+ requires sqlite3_close() after sqlite3_open_v2() while Subversion
typically does not require close() after an open() that returns an
error. So we must ensure we close the handle if this function, or
the caller svn_sqlite__open, returns an error to the application. */
@@ -1171,7 +1171,8 @@ svn_sqlite__open(svn_sqlite__db_t **db,
affects application(read: Subversion) performance/behavior. */
"PRAGMA foreign_keys=OFF;" /* SQLITE_DEFAULT_FOREIGN_KEYS*/
"PRAGMA locking_mode = NORMAL;" /* SQLITE_DEFAULT_LOCKING_MODE */
- ),
+ "PRAGMA journal_mode = TRUNCATE;"
+ ),
*db);
#if defined(SVN_DEBUG)
@@ -1306,7 +1307,7 @@ svn_sqlite__finish_transaction(svn_sqlit
err2 = get_internal_statement(&stmt, db,
STMT_INTERNAL_ROLLBACK_TRANSACTION);
if (!err2)
- err2 = svn_sqlite__step_done(stmt);
+ err2 = svn_error_trace(svn_sqlite__step_done(stmt));
if (err2 && err2->apr_err == SVN_ERR_SQLITE_BUSY)
{
@@ -1329,14 +1330,14 @@ svn_sqlite__finish_transaction(svn_sqlit
help diagnosing the original error and help in finding where
a reset statement is missing. */
- err2 = reset_all_statements(db, err2);
+ err2 = svn_error_trace(reset_all_statements(db, err2));
err2 = svn_error_compose_create(
- svn_sqlite__step_done(stmt),
+ svn_error_trace(svn_sqlite__step_done(stmt)),
err2);
+
}
- return svn_error_compose_create(err,
- err2);
+ return svn_error_compose_create(err, err2);
}
SVN_ERR(get_internal_statement(&stmt, db, STMT_INTERNAL_COMMIT_TRANSACTION));
@@ -1357,7 +1358,7 @@ svn_sqlite__finish_savepoint(svn_sqlite_
STMT_INTERNAL_ROLLBACK_TO_SAVEPOINT_SVN);
if (!err2)
- err2 = svn_sqlite__step_done(stmt);
+ err2 = svn_error_trace(svn_sqlite__step_done(stmt));
if (err2 && err2->apr_err == SVN_ERR_SQLITE_BUSY)
{
@@ -1367,8 +1368,10 @@ svn_sqlite__finish_savepoint(svn_sqlite_
### See huge comment in svn_sqlite__finish_transaction for
further details */
- err2 = reset_all_statements(db, err2);
- err2 = svn_error_compose_create(svn_sqlite__step_done(stmt), err2);
+ err2 = svn_error_trace(reset_all_statements(db, err2));
+ err2 = svn_error_compose_create(
+ svn_error_trace(svn_sqlite__step_done(stmt)),
+ err2);
}
err = svn_error_compose_create(err, err2);
@@ -1376,9 +1379,9 @@ svn_sqlite__finish_savepoint(svn_sqlite_
STMT_INTERNAL_RELEASE_SAVEPOINT_SVN);
if (!err2)
- err2 = svn_sqlite__step_done(stmt);
+ err2 = svn_error_trace(svn_sqlite__step_done(stmt));
- return svn_error_trace(svn_error_compose_create(err, err2));
+ return svn_error_compose_create(err, err2);
}
SVN_ERR(get_internal_statement(&stmt, db,
@@ -1476,8 +1479,6 @@ struct function_wrapper_baton_t
{
svn_sqlite__func_t func;
void *baton;
-
- apr_pool_t *scratch_pool;
};
static void
@@ -1487,22 +1488,12 @@ wrapped_func(sqlite3_context *context,
{
struct function_wrapper_baton_t *fwb = sqlite3_user_data(context);
svn_sqlite__context_t sctx;
- svn_sqlite__value_t **local_vals =
- apr_palloc(fwb->scratch_pool,
- sizeof(svn_sqlite__value_t *) * argc);
svn_error_t *err;
- int i;
+ void *void_values = values;
sctx.context = context;
- for (i = 0; i < argc; i++)
- {
- local_vals[i] = apr_palloc(fwb->scratch_pool, sizeof(*local_vals[i]));
- local_vals[i]->value = values[i];
- }
-
- err = fwb->func(&sctx, argc, local_vals, fwb->scratch_pool);
- svn_pool_clear(fwb->scratch_pool);
+ err = fwb->func(&sctx, argc, void_values, fwb->baton);
if (err)
{
@@ -1514,6 +1505,7 @@ wrapped_func(sqlite3_context *context,
}
}
+
svn_error_t *
svn_sqlite__create_scalar_function(svn_sqlite__db_t *db,
const char *func_name,
@@ -1526,7 +1518,6 @@ svn_sqlite__create_scalar_function(svn_s
struct function_wrapper_baton_t *fwb = apr_pcalloc(db->state_pool,
sizeof(*fwb));
- fwb->scratch_pool = svn_pool_create(db->state_pool);
fwb->func = func;
fwb->baton = baton;
@@ -1544,13 +1535,15 @@ svn_sqlite__create_scalar_function(svn_s
int
svn_sqlite__value_type(svn_sqlite__value_t *val)
{
- return sqlite3_value_type(val->value);
+ void *v = val;
+ return sqlite3_value_type(v);
}
const char *
svn_sqlite__value_text(svn_sqlite__value_t *val)
{
- return (const char *) sqlite3_value_text(val->value);
+ void *v = val;
+ return (const char *) sqlite3_value_text(v);
}
void
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/sqlite3wrapper.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/sqlite3wrapper.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/sqlite3wrapper.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/sqlite3wrapper.c Sun Jun 14 20:58:10 2015
@@ -24,7 +24,7 @@
/* Include sqlite3 inline, making all symbols private. */
#ifdef SVN_SQLITE_INLINE
-# define SQLITE_OMIT_DEPRECATED
+# define SQLITE_OMIT_DEPRECATED 1
# define SQLITE_API static
# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)
# pragma GCC diagnostic ignored "-Wunreachable-code"
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/stream.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/stream.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/stream.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/stream.c Sun Jun 14 20:58:10 2015
@@ -1443,13 +1443,14 @@ svn_error_t *
svn_stringbuf_from_stream(svn_stringbuf_t **str,
svn_stream_t *stream,
apr_size_t len_hint,
- apr_pool_t *pool)
+ apr_pool_t *result_pool)
{
#define MIN_READ_SIZE 64
apr_size_t to_read = 0;
svn_stringbuf_t *text
- = svn_stringbuf_create_ensure(len_hint ? len_hint : MIN_READ_SIZE, pool);
+ = svn_stringbuf_create_ensure(len_hint ? len_hint : MIN_READ_SIZE,
+ result_pool);
do
{
@@ -2199,11 +2200,11 @@ svn_stream__install_stream(svn_stream_t
apr_os_file_get(&hFile, ib->baton_apr.file);
- SVN_ERR(svn_utf__win32_utf8_to_utf16(&w_final_abspath,
- svn_dirent_local_style(
+ SVN_ERR(svn_io__utf8_to_unicode_longpath(&w_final_abspath,
+ svn_dirent_local_style(
final_abspath,
scratch_pool),
- NULL, scratch_pool));
+ scratch_pool));
path_len = wcslen(w_final_abspath);
rename_size = sizeof(*rename_info) + sizeof(WCHAR) * path_len;
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/string.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/string.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/string.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/string.c Sun Jun 14 20:58:10 2015
@@ -1300,7 +1300,7 @@ svn__base36toui64(const char **next, con
}
-unsigned int
+apr_size_t
svn_cstring__similarity(const char *stra, const char *strb,
svn_membuf_t *buffer, apr_size_t *rlcs)
{
@@ -1312,7 +1312,7 @@ svn_cstring__similarity(const char *stra
return svn_string__similarity(&stringa, &stringb, buffer, rlcs);
}
-unsigned int
+apr_size_t
svn_string__similarity(const svn_string_t *stringa,
const svn_string_t *stringb,
svn_membuf_t *buffer, apr_size_t *rlcs)
@@ -1401,9 +1401,9 @@ svn_string__similarity(const svn_string_
/* Return similarity ratio rounded to 4 significant digits */
if (total)
- return(unsigned int)((2000 * lcs + total/2) / total);
+ return ((2 * SVN_STRING__SIM_RANGE_MAX * lcs + total/2) / total);
else
- return 1000;
+ return SVN_STRING__SIM_RANGE_MAX;
}
apr_size_t
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/subst.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/subst.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/subst.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/subst.c Sun Jun 14 20:58:10 2015
@@ -1150,7 +1150,7 @@ translate_chunk(svn_stream_t *dst,
const char *start = p + len;
const char *eol
= svn_eol__find_eol_start((char *)start, end - start);
-
+
/* EOL will be NULL if we did not find a line ending */
len += (eol ? eol : end) - start;
}
@@ -1972,7 +1972,7 @@ svn_subst_translate_string2(svn_string_t
return SVN_NO_ERROR;
}
- if (encoding && !strcmp(encoding, "UTF-8"))
+ if (encoding && !strcmp(encoding, "UTF-8"))
{
val_utf8 = value->data;
}
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/sysinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/sysinfo.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/sysinfo.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/sysinfo.c Sun Jun 14 20:58:10 2015
@@ -449,7 +449,7 @@ systemd_release(apr_pool_t *pool)
if (!strncmp(line->data, "PRETTY_NAME=", 12))
{
svn_stringbuf_t *release_name;
-
+
/* The value may or may not be enclosed by double quotes. We don't
* attempt to strip them. */
release_name = svn_stringbuf_create(line->data + 12, pool);
@@ -1032,7 +1032,7 @@ system_version_plist(svn_boolean_t *serv
write_stream = svn_stream_create(&resource, pool);
svn_stream_set_write(write_stream, write_to_cfmutabledata);
err = svn_stream_copy3(read_stream, write_stream, NULL, NULL, pool);
- if (err)
+ if (err)
{
svn_error_clear(err);
return NULL;
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/types.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/types.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/types.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/types.c Sun Jun 14 20:58:10 2015
@@ -62,14 +62,14 @@ svn_revnum_parse(svn_revnum_t *rev,
return svn_error_createf
(SVN_ERR_REVNUM_PARSE_FAILURE, NULL,
_("Revision number longer than 10 digits '%s'"), str);
-
+
/* we support 32 bit revision numbers only. check for overflows */
if (*str > '2' || (apr_uint32_t)result > APR_INT32_MAX)
return svn_error_createf
(SVN_ERR_REVNUM_PARSE_FAILURE, NULL,
_("Revision number too large '%s'"), str);
}
-
+
if (endptr)
*endptr = end;
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/utf.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/utf.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/utf.c (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/utf.c Sun Jun 14 20:58:10 2015
@@ -257,7 +257,7 @@ xlate_alloc_handle(xlate_handle_node_t *
later. APR_STRERR will be in the local encoding, not in UTF-8, though.
*/
svn_strerror(apr_err, apr_strerr, sizeof(apr_strerr));
- return svn_error_createf(SVN_ERR_PLUGIN_LOAD_FAILURE,
+ return svn_error_createf(SVN_ERR_PLUGIN_LOAD_FAILURE,
svn_error_create(apr_err, NULL, apr_strerr),
"%s%s", name, errstr);
}
Modified: subversion/branches/fsx-1.10/subversion/libsvn_subr/utf8proc/utf8proc.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_subr/utf8proc/utf8proc.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/libsvn_subr/utf8proc/utf8proc.h (original)
+++ subversion/branches/fsx-1.10/subversion/libsvn_subr/utf8proc/utf8proc.h Sun Jun 14 20:58:10 2015
@@ -71,18 +71,26 @@
#include <stdlib.h>
#include <sys/types.h>
#ifdef _MSC_VER
+# if _MSC_VER >= 1600
+# include <stdint.h>
+# else
typedef signed char int8_t;
typedef unsigned char uint8_t;
typedef short int16_t;
typedef unsigned short uint16_t;
typedef int int32_t;
-#ifdef _WIN64
-#define ssize_t __int64
-#else
-#define ssize_t int
-#endif
+# endif
+# if _MSC_VER >= 1800
+# include <stdbool.h>
+# else
typedef unsigned char bool;
enum {false, true};
+# endif
+# ifdef _WIN64
+# define ssize_t __int64
+# else
+# define ssize_t int
+# endif
#elif defined(HAVE_STDBOOL_H) && defined(HAVE_INTTYPES_H)
#include <stdbool.h>
#include <inttypes.h>