Author: julianfoad
Date: Mon Jan 14 15:13:02 2019
New Revision: 1851265

URL: http://svn.apache.org/viewvc?rev=1851265&view=rev
Log:
Move misplaced parameters out of the blame callback.

The svn_client_blame_receiver4_t parameters "start_revnum" and "end_revnum"
do not really belong here because they are not per-line data. They are the
"resolved" versions of the input revnums to svn_client_blame6(). This patch
moves them to svn_client_blame6() output parameters.

* subversion/bindings/javahl/native/BlameCallback.h,
  subversion/bindings/javahl/native/BlameCallback.cpp
  (callback,
   singleLine): Drop the start/end parameters.

* subversion/bindings/javahl/native/SVNClient.cpp
  (blame): Adjust the call to svn_client_blame6(). Don't provide access to
    the start/end parameters here, as we weren't providing access to them
    through the callback. We could add them later.

* subversion/svn/blame-cmd.c
  (blame_receiver_xml,
   blame_receiver): Don't expect and process start/end revnums here.
  (svn_cl__blame): Handle them here instead.

Modified:
    subversion/trunk/subversion/bindings/javahl/native/BlameCallback.cpp
    subversion/trunk/subversion/bindings/javahl/native/BlameCallback.h
    subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp
    subversion/trunk/subversion/svn/blame-cmd.c

Modified: subversion/trunk/subversion/bindings/javahl/native/BlameCallback.cpp
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/BlameCallback.cpp?rev=1851265&r1=1851264&r2=1851265&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/BlameCallback.cpp 
(original)
+++ subversion/trunk/subversion/bindings/javahl/native/BlameCallback.cpp Mon 
Jan 14 15:13:02 2019
@@ -48,8 +48,6 @@ BlameCallback::~BlameCallback()
 /* implements svn_client_blame_receiver3_t */
 svn_error_t *
 BlameCallback::callback(void *baton,
-                        svn_revnum_t start_revnum,
-                        svn_revnum_t end_revnum,
                         apr_int64_t line_no,
                         svn_revnum_t revision,
                         apr_hash_t *rev_props,
@@ -61,8 +59,8 @@ BlameCallback::callback(void *baton,
                         apr_pool_t *pool)
 {
   if (baton)
-    return static_cast<BlameCallback *>(baton)->singleLine(start_revnum,
-        end_revnum, line_no, revision, rev_props, merged_revision,
+    return static_cast<BlameCallback *>(baton)->singleLine(
+        line_no, revision, rev_props, merged_revision,
         merged_rev_props, merged_path, line, local_change, pool);
 
   return SVN_NO_ERROR;
@@ -73,8 +71,7 @@ BlameCallback::callback(void *baton,
  * information was requested.  See the Java-doc for more information.
  */
 svn_error_t *
-BlameCallback::singleLine(svn_revnum_t start_revnum, svn_revnum_t end_revnum,
-                          apr_int64_t line_no, svn_revnum_t revision,
+BlameCallback::singleLine(apr_int64_t line_no, svn_revnum_t revision,
                           apr_hash_t *revProps, svn_revnum_t mergedRevision,
                           apr_hash_t *mergedRevProps, const char *mergedPath,
                           const svn_string_t *line, svn_boolean_t localChange,

Modified: subversion/trunk/subversion/bindings/javahl/native/BlameCallback.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/BlameCallback.h?rev=1851265&r1=1851264&r2=1851265&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/BlameCallback.h 
(original)
+++ subversion/trunk/subversion/bindings/javahl/native/BlameCallback.h Mon Jan 
14 15:13:02 2019
@@ -41,8 +41,6 @@ class BlameCallback
   ~BlameCallback();
 
   static svn_error_t *callback(void *baton,
-                               svn_revnum_t start_revnum,
-                               svn_revnum_t end_revnum,
                                apr_int64_t line_no,
                                svn_revnum_t revision,
                                apr_hash_t *rev_props,
@@ -54,9 +52,7 @@ class BlameCallback
                                apr_pool_t *pool);
 
  protected:
-  svn_error_t *singleLine(svn_revnum_t start_revnum,
-                          svn_revnum_t end_revnum,
-                          apr_int64_t line_no,
+  svn_error_t *singleLine(apr_int64_t line_no,
                           svn_revnum_t revision,
                           apr_hash_t *rev_props,
                           svn_revnum_t merged_revision,

Modified: subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp?rev=1851265&r1=1851264&r2=1851265&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp Mon Jan 14 
15:13:02 2019
@@ -1287,6 +1287,7 @@ void SVNClient::blame(const char *path,
     SVN_JNI_ERR(svn_client_blame6(
           intPath.c_str(), pegRevision.revision(), revisionStart.revision(),
           revisionEnd.revision(),
+          NULL, NULL,
           options.fileOptions(subPool), ignoreMimeType,
           includeMergedRevisions, BlameCallback::callback, callback, ctx,
           subPool.getPool()),

Modified: subversion/trunk/subversion/svn/blame-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/blame-cmd.c?rev=1851265&r1=1851264&r2=1851265&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/blame-cmd.c (original)
+++ subversion/trunk/subversion/svn/blame-cmd.c Mon Jan 14 15:13:02 2019
@@ -54,8 +54,6 @@ typedef struct blame_baton_t
    XML to stdout. */
 static svn_error_t *
 blame_receiver_xml(void *baton,
-                   svn_revnum_t start_revnum,
-                   svn_revnum_t end_revnum,
                    apr_int64_t line_no,
                    svn_revnum_t revision,
                    apr_hash_t *rev_props,
@@ -170,8 +168,6 @@ print_line_info(svn_stream_t *out,
 /* This implements the svn_client_blame_receiver3_t interface. */
 static svn_error_t *
 blame_receiver(void *baton,
-               svn_revnum_t start_revnum,
-               svn_revnum_t end_revnum,
                apr_int64_t line_no,
                svn_revnum_t revision,
                apr_hash_t *rev_props,
@@ -187,21 +183,6 @@ blame_receiver(void *baton,
   svn_stream_t *out = bb->out;
   svn_boolean_t use_merged = FALSE;
 
-  if (!bb->rev_maxlength)
-    {
-      svn_revnum_t max_revnum = MAX(start_revnum, end_revnum);
-      /* The standard column width for the revision number is 6 characters.
-         If the revision number can potentially be larger (i.e. if the 
end_revnum
-          is larger than 1000000), we increase the column width as needed. */
-
-      bb->rev_maxlength = 6;
-      while (max_revnum >= 1000000)
-        {
-          bb->rev_maxlength++;
-          max_revnum = max_revnum / 10;
-        }
-    }
-
   if (opt_state->use_merge_history)
     {
       /* Choose which revision to use.  If they aren't equal, prefer the
@@ -334,6 +315,7 @@ svn_cl__blame(apr_getopt_t *os,
       const char *truepath;
       svn_opt_revision_t peg_revision;
       svn_client_blame_receiver4_t receiver;
+      svn_revnum_t start_revnum, end_revnum;
 
       svn_pool_clear(subpool);
       SVN_ERR(svn_cl__check_cancel(ctx->cancel_baton));
@@ -372,6 +354,7 @@ svn_cl__blame(apr_getopt_t *os,
                               &peg_revision,
                               &opt_state->start_revision,
                               &opt_state->end_revision,
+                              &start_revnum, &end_revnum,
                               diff_options,
                               opt_state->force,
                               opt_state->use_merge_history,
@@ -379,6 +362,19 @@ svn_cl__blame(apr_getopt_t *os,
                               &bl,
                               ctx,
                               subpool);
+      {
+        svn_revnum_t max_revnum = MAX(start_revnum, end_revnum);
+        /* The standard column width for the revision number is 6 characters.
+           If the revision number can potentially be larger (i.e. if max revnum
+           is larger than 1000000), we increase the column width as needed. */
+
+        bl.rev_maxlength = 6;
+        while (max_revnum >= 1000000)
+          {
+            bl.rev_maxlength++;
+            max_revnum = max_revnum / 10;
+          }
+      }
 
       if (err)
         {


Reply via email to