> -----Original Message-----
> From: stef...@apache.org [mailto:stef...@apache.org]
> Sent: donderdag 14 februari 2013 11:58
> To: comm...@subversion.apache.org
> Subject: svn commit: r1446113 - /subversion/branches/fsfs-
> format7/subversion/libsvn_fs_fs/index.c
> 
> Author: stefan2
> Date: Thu Feb 14 10:58:15 2013
> New Revision: 1446113
> 
> URL: http://svn.apache.org/r1446113
> Log:
> On the fsfs-format7 branch:  Prevent the packed number stream from
> prefetching across block boundaries.
> 
> * subversion/libsvn_fs_fs/index.c
>   (stream_error_create): new error construction utility
>   (packed_stream_read): limit the prefetch close to block boundaries
> 
> Modified:
>     subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/index.c
> 
> Modified: subversion/branches/fsfs-
> format7/subversion/libsvn_fs_fs/index.c
> URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-
> format7/subversion/libsvn_fs_fs/index.c?rev=1446113&r1=1446112&r2=144
> 6113&view=diff
> ==========================================================
> ====================
> --- subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/index.c
> (original)
> +++ subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/index.c Thu
> Feb 14 10:58:15 2013
> @@ -170,6 +170,23 @@ typedef struct packed_number_stream_t
>    value_position_pair_t buffer[MAX_NUMBER_PREFETCH];
>  } packed_number_stream_t;
> 
> +/* Return an svn_error_t * object for error ERR on STREAM with the given
> + * MESSAGE string.  The latter must have a placeholder for the index file
> + * name ("%s") and the current read offset (e.g. "%lx").
> + */
> +static svn_error_t *
> +stream_error_create(packed_number_stream_t *stream,
> +                    apr_status_t err,
> +                    const char *message)
> +{
> +  const char *file_name;
> +  apr_off_t offset = 0;
> +  SVN_ERR(svn_io_file_name_get(&file_name, stream->file,
> +                               stream->pool));
> +  SVN_ERR(svn_io_file_seek(stream->file, SEEK_CUR, &offset, stream-
> >pool));
> +  return svn_error_createf(err, NULL, message, file_name, offset);
> +}

%lx handles 32 bit on Windows x86 and x64 as long is 32 bit there, while 
apr_off_t is 64 bit on these platforms.
(Or is this special cased in apr or svn?)

And I would recommend using 0x%<something> to make it obvious for readers of 
the message that the value is hexadecimal, without having to check the 
sourcecode.

        Bert

Reply via email to