Author: julianfoad
Date: Thu Apr 12 10:19:01 2012
New Revision: 1325187
URL: http://svn.apache.org/viewvc?rev=1325187&view=rev
Log:
Add a 'const' in a serialization function input parameter, and so avoid
having to cast away 'const' in some calls to it. Avoids three warnings in
compiling temp_serializer.c (for me, with GCC).
* subversion/include/private/svn_temp_serializer.h,
subversion/libsvn_subr/svn_temp_serializer.c
(svn_temp_deserializer__ptr): Add 'const' to the second input pointer. Fix
a doc string typo.
* subversion/libsvn_fs_fs/temp_serializer.c
(find_entry, svn_fs_fs__extract_dir_entry, svn_fs_fs__replace_dir_entry):
Adjust the casts in all callers.
Modified:
subversion/trunk/subversion/include/private/svn_temp_serializer.h
subversion/trunk/subversion/libsvn_fs_fs/temp_serializer.c
subversion/trunk/subversion/libsvn_subr/svn_temp_serializer.c
Modified: subversion/trunk/subversion/include/private/svn_temp_serializer.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_temp_serializer.h?rev=1325187&r1=1325186&r2=1325187&view=diff
==============================================================================
--- subversion/trunk/subversion/include/private/svn_temp_serializer.h (original)
+++ subversion/trunk/subversion/include/private/svn_temp_serializer.h Thu Apr
12 10:19:01 2012
@@ -188,10 +188,10 @@ svn_temp_deserializer__resolve(void *buf
/**
* Similar to svn_temp_deserializer__resolve() but instead of modifying
* the buffer content, the resulting pointer is passed back to the caller
- * a the return value.
+ * as the return value.
*/
const void *
-svn_temp_deserializer__ptr(const void *buffer, const void **ptr);
+svn_temp_deserializer__ptr(const void *buffer, const void *const *ptr);
#ifdef __cplusplus
}
Modified: subversion/trunk/subversion/libsvn_fs_fs/temp_serializer.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/temp_serializer.c?rev=1325187&r1=1325186&r2=1325187&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/temp_serializer.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/temp_serializer.c Thu Apr 12
10:19:01 2012
@@ -879,9 +879,9 @@ find_entry(svn_fs_dirent_t **entries,
for (middle = upper / 2; lower < upper; middle = (upper + lower) / 2)
{
const svn_fs_dirent_t *entry =
- svn_temp_deserializer__ptr(entries, (const void **)&entries[middle]);
+ svn_temp_deserializer__ptr(entries, (const void *const
*)&entries[middle]);
const char* entry_name =
- svn_temp_deserializer__ptr(entry, (const void **)&entry->name);
+ svn_temp_deserializer__ptr(entry, (const void *const *)&entry->name);
int diff = strcmp(entry_name, name);
if (diff < 0)
@@ -895,9 +895,9 @@ find_entry(svn_fs_dirent_t **entries,
if (lower < count)
{
const svn_fs_dirent_t *entry =
- svn_temp_deserializer__ptr(entries, (const void **)&entries[lower]);
+ svn_temp_deserializer__ptr(entries, (const void *const
*)&entries[lower]);
const char* entry_name =
- svn_temp_deserializer__ptr(entry, (const void **)&entry->name);
+ svn_temp_deserializer__ptr(entry, (const void *const *)&entry->name);
if (strcmp(entry_name, name) == 0)
*found = TRUE;
@@ -919,11 +919,11 @@ svn_fs_fs__extract_dir_entry(void **out,
/* resolve the reference to the entries array */
const svn_fs_dirent_t * const *entries =
- svn_temp_deserializer__ptr(data, (const void **)&hash_data->entries);
+ svn_temp_deserializer__ptr(data, (const void *const *)&hash_data->entries);
/* resolve the reference to the lengths array */
const apr_uint32_t *lengths =
- svn_temp_deserializer__ptr(data, (const void **)&hash_data->lengths);
+ svn_temp_deserializer__ptr(data, (const void *const *)&hash_data->lengths);
/* binary search for the desired entry by name */
apr_size_t pos = find_entry((svn_fs_dirent_t **)entries,
@@ -936,7 +936,7 @@ svn_fs_fs__extract_dir_entry(void **out,
if (found)
{
const svn_fs_dirent_t *source =
- svn_temp_deserializer__ptr(entries, (const void **)&entries[pos]);
+ svn_temp_deserializer__ptr(entries, (const void *const
*)&entries[pos]);
/* Entries have been serialized one-by-one, each time including all
* nestes structures and strings. Therefore, they occupy a single
@@ -1007,12 +1007,12 @@ svn_fs_fs__replace_dir_entry(void **data
/* resolve the reference to the entries array */
entries = (svn_fs_dirent_t **)
svn_temp_deserializer__ptr((const char *)hash_data,
- (const void **)&hash_data->entries);
+ (const void *const *)&hash_data->entries);
/* resolve the reference to the lengths array */
lengths = (apr_uint32_t *)
svn_temp_deserializer__ptr((const char *)hash_data,
- (const void **)&hash_data->lengths);
+ (const void *const *)&hash_data->lengths);
/* binary search for the desired entry by name */
pos = find_entry(entries, replace_baton->name, hash_data->count, &found);
@@ -1081,7 +1081,7 @@ svn_fs_fs__replace_dir_entry(void **data
hash_data = (hash_data_t *)*data;
lengths = (apr_uint32_t *)
svn_temp_deserializer__ptr((const char *)hash_data,
- (const void **)&hash_data->lengths);
+ (const void *const *)&hash_data->lengths);
lengths[pos] = length;
return SVN_NO_ERROR;
Modified: subversion/trunk/subversion/libsvn_subr/svn_temp_serializer.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/svn_temp_serializer.c?rev=1325187&r1=1325186&r2=1325187&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/svn_temp_serializer.c (original)
+++ subversion/trunk/subversion/libsvn_subr/svn_temp_serializer.c Thu Apr 12
10:19:01 2012
@@ -352,7 +352,7 @@ svn_temp_deserializer__resolve(void *buf
}
const void *
-svn_temp_deserializer__ptr(const void *buffer, const void **ptr)
+svn_temp_deserializer__ptr(const void *buffer, const void *const *ptr)
{
return (apr_size_t)*ptr == 0
? NULL