On Friday 24 December 2010 03:46 PM, vijay wrote:
On Wednesday 22 December 2010 06:42 PM, Daniel Shahaf wrote:
Kamesh Jayachandran wrote on Wed, Dec 22, 2010 at 15:10:46 +0530:
On 12/22/2010 02:02 AM, vijay wrote:
Hi,

I have attached a patch that fixes few deprecation warnings while
compiling libsvn_client/log.c.
Attached log message also.

Thanks&  Regards,
Vijayaguru
Can you pass scratch_pool for the below call as 'iterpool' and move the
iterpool destruction down?

... presumably in order to save a bit of memory.

Daniel
(not disagreeing)

I used iterpool in place of scratch pool and moved the iterpool destruction down. There are two failures in log_tests.py:7 & 9 with the following error_trace.

<snip>
CMD: /home/vijayaguru/svn-sandbox/svn-trunk/vpath/subversion/svn/svn log svn-test-work/working_copies/log_tests-7/A/B/E/b...@8 --config-dir /home/vijayaguru/svn-sandbox/svn-trunk/vpath/subversion/tests/cmdline/svn-test-work/local_tmp/config --password rayjandom --no-auth-cache --username jrandom exited with 1
<TIME = 0.034555>
../subversion/svn/log-cmd.c:743: (apr_err=22)
../subversion/libsvn_client/log.c:486: (apr_err=22)
../subversion/libsvn_client/ra.c:482: (apr_err=22)
../subversion/libsvn_client/url.c:53: (apr_err=22)
../subversion/libsvn_subr/dirent_uri.c:1667: (apr_err=22)
../subversion/libsvn_subr/utf.c:837: (apr_err=22)
../subversion/libsvn_subr/utf.c:604: (apr_err=22)
svn: Valid UTF-8 data
(hex:)
followed by invalid UTF-8 sequence
(hex: e0 65 30 00)
Traceback (most recent call last):
File "/home/vijayaguru/svn-sandbox/svn-trunk/subversion/tests/cmdline/svntest/main.py", line 1212, in run
    rc = self.pred.run(sandbox)
File "/home/vijayaguru/svn-sandbox/svn-trunk/subversion/tests/cmdline/svntest/testcase.py", line 170, in run
    return self.func(sandbox)
File "/home/vijayaguru/svn-sandbox/svn-trunk/subversion/tests/cmdline/log_tests.py", line 762, in log_wc_with_peg_revision
    'log', my_path)
File "/home/vijayaguru/svn-sandbox/svn-trunk/subversion/tests/cmdline/svntest/actions.py", line 264, in run_and_verify_svn
    expected_exit, *varargs)
File "/home/vijayaguru/svn-sandbox/svn-trunk/subversion/tests/cmdline/svntest/actions.py", line 302, in run_and_verify_svn2
    exit_code, out, err = main.run_svn(want_err, *varargs)
File "/home/vijayaguru/svn-sandbox/svn-trunk/subversion/tests/cmdline/svntest/main.py", line 580, in run_svn
    *(_with_auth(_with_config_dir(varargs))))
File "/home/vijayaguru/svn-sandbox/svn-trunk/subversion/tests/cmdline/svntest/main.py", line 338, in run_command
    None, *varargs)
File "/home/vijayaguru/svn-sandbox/svn-trunk/subversion/tests/cmdline/svntest/main.py", line 513, in run_command_stdin
    raise Failure
Failure
FAIL:  log_tests.py 7: 'svn log wc_tar...@n'
<snip>

The following function 'svn_uri_condense_targets()' stores its return value of 'url_or_path' in scratch pool(here iterpool) which should not be the case.

SVN_ERR(svn_uri_condense_targets(&url_or_path, &condensed_targets,
                                 target_urls, TRUE, pool, iterpool));

We have to copy the return value from scratch pool to result pool before exiting from the function, right? I will send a patch to fix it in dirent_uri.c: svn_uri_condense_targets().

Thanks & Regards,
vijayaguru

The above mentioned bug is fixed in r1052505. Attaching the updated patch and log message.

Thanks & Regards,
Vijayaguru
+      SVN_ERR(svn_uri_condense_targets(&url_or_path,&condensed_targets,
+ target_urls, TRUE, pool, pool));




With regards
Kamesh Jayachandran


[[[
Reslove some deprecation warnings using uri/dirent functions in its respective
places.

* subversion/libsvn_client/log.c:
  (svn_client_log5): Use 'svn_uri_condense_targets()' and
    'svn_dirent_condense_targets()'

* subversion/svn/commit-cmd.c:
  (svn_cl__commit): Use 'svn_dirent_condense_targets()'
                    
Patch by: Vijayaguru G <vijay{_AT_}collab.net>
Suggested by: kameshj
              Noorul Islam K M
]]]
Index: subversion/libsvn_client/log.c
===================================================================
--- subversion/libsvn_client/log.c      (revision 1052459)
+++ subversion/libsvn_client/log.c      (working copy)
@@ -452,15 +452,14 @@
           APR_ARRAY_PUSH(target_urls, const char *) = url;
           APR_ARRAY_PUSH(real_targets, const char *) = target;
         }
-      svn_pool_destroy(iterpool);
 
       /* if we have no valid target_urls, just exit. */
       if (target_urls->nelts == 0)
         return SVN_NO_ERROR;
 
       /* Find the base URL and condensed targets relative to it. */
-      SVN_ERR(svn_path_condense_targets(&url_or_path, &condensed_targets,
-                                        target_urls, TRUE, pool));
+      SVN_ERR(svn_uri_condense_targets(&url_or_path, &condensed_targets,
+                                       target_urls, TRUE, pool, iterpool));
 
       if (condensed_targets->nelts == 0)
         APR_ARRAY_PUSH(condensed_targets, const char *) = "";
@@ -468,6 +467,7 @@
       /* 'targets' now becomes 'real_targets', which has bogus,
          unversioned things removed from it. */
       targets = real_targets;
+      svn_pool_destroy(iterpool);
     }
 
 
@@ -476,7 +476,8 @@
      * we use our initial target path to figure out where to root the RA
      * session, otherwise we use our URL. */
     if (SVN_CLIENT__REVKIND_NEEDS_WC(peg_rev.kind))
-      SVN_ERR(svn_path_condense_targets(&ra_target, NULL, targets, TRUE, 
pool));
+      SVN_ERR(svn_dirent_condense_targets(&ra_target, NULL, targets,
+                                          TRUE, pool, pool));
     else
       ra_target = url_or_path;
 
Index: subversion/svn/commit-cmd.c
===================================================================
--- subversion/svn/commit-cmd.c (revision 1052459)
+++ subversion/svn/commit-cmd.c (working copy)
@@ -34,6 +34,7 @@
 #include "svn_wc.h"
 #include "svn_client.h"
 #include "svn_path.h"
+#include "svn_dirent_uri.h"
 #include "svn_error.h"
 #include "svn_config.h"
 #include "cl.h"
@@ -78,11 +79,8 @@
   SVN_ERR(svn_cl__eat_peg_revisions(&targets, targets, pool));
 
   /* Condense the targets (like commit does)... */
-  SVN_ERR(svn_path_condense_targets(&base_dir,
-                                    &condensed_targets,
-                                    targets,
-                                    TRUE,
-                                    pool));
+  SVN_ERR(svn_dirent_condense_targets(&base_dir, &condensed_targets, targets,
+                                      TRUE, pool, pool));
 
   if ((! condensed_targets) || (! condensed_targets->nelts))
     {

Reply via email to