Author: rinrab
Date: Tue May 27 12:14:25 2025
New Revision: 1925865

URL: http://svn.apache.org/viewvc?rev=1925865&view=rev
Log:
On the 'utf8-cmdline-prototype' branch: Allocate exact amount of nelts
needed for targets array in svn_client_args_to_target_array() family,
and drop SVN_CLIENT__CMDLINE_DEFAULT_ARRAY_SIZE constant.

* subversion/libsvn_client/client.h
  (SVN_CLIENT__CMDLINE_DEFAULT_ARRAY_SIZE): remove.
* subversion/libsvn_client/cmdline.c
  (svn_client__process_target_array): ditto for input_targets and
   output_targets. Allocate reserved_names for one item, because in most
   cases it wouldn't contain that many items, since it is needed to throw
   an error.
  (svn_client_args_to_target_array3): ditto and format code.
* subversion/libsvn_client/deprecated.c
  (svn_client_args_to_target_array2): ditto.

Modified:
    subversion/branches/utf8-cmdline-prototype/subversion/libsvn_client/client.h
    
subversion/branches/utf8-cmdline-prototype/subversion/libsvn_client/cmdline.c
    
subversion/branches/utf8-cmdline-prototype/subversion/libsvn_client/deprecated.c

Modified: 
subversion/branches/utf8-cmdline-prototype/subversion/libsvn_client/client.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/utf8-cmdline-prototype/subversion/libsvn_client/client.h?rev=1925865&r1=1925864&r2=1925865&view=diff
==============================================================================
--- 
subversion/branches/utf8-cmdline-prototype/subversion/libsvn_client/client.h 
(original)
+++ 
subversion/branches/utf8-cmdline-prototype/subversion/libsvn_client/client.h 
Tue May 27 12:14:25 2025
@@ -1280,8 +1280,6 @@ svn_client__textbase_sync(svn_ra_session
 const svn_version_t *
 svn_client__compatible_wc_version_optional_pristine(apr_pool_t *result_pool);
 
-#define SVN_CLIENT__CMDLINE_DEFAULT_ARRAY_SIZE 5
-
 /* Helper for svn_client_args_to_target_array2 and
  * svn_client_args_to_target_array3.
  */

Modified: 
subversion/branches/utf8-cmdline-prototype/subversion/libsvn_client/cmdline.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/utf8-cmdline-prototype/subversion/libsvn_client/cmdline.c?rev=1925865&r1=1925864&r2=1925865&view=diff
==============================================================================
--- 
subversion/branches/utf8-cmdline-prototype/subversion/libsvn_client/cmdline.c 
(original)
+++ 
subversion/branches/utf8-cmdline-prototype/subversion/libsvn_client/cmdline.c 
Tue May 27 12:14:25 2025
@@ -122,9 +122,9 @@ svn_client__process_target_array(apr_arr
   svn_boolean_t rel_url_found = FALSE;
   const char *root_url = NULL;
   apr_array_header_t *input_targets = apr_array_make(
-      pool, SVN_CLIENT__CMDLINE_DEFAULT_ARRAY_SIZE, sizeof(const char *));
+    pool, utf8_targets->nelts, sizeof(const char *));
   apr_array_header_t *output_targets = apr_array_make(
-      pool, SVN_CLIENT__CMDLINE_DEFAULT_ARRAY_SIZE, sizeof(const char *));
+    pool, utf8_targets->nelts, sizeof(const char *));
   apr_array_header_t *reserved_names = NULL;
 
   /* Step 1:  create a master array of targets that are in UTF-8
@@ -271,9 +271,8 @@ svn_client__process_target_array(apr_arr
               if (svn_wc_is_adm_dir(base_name, pool))
                 {
                   if (!reserved_names)
-                    reserved_names = apr_array_make(
-                        pool, SVN_CLIENT__CMDLINE_DEFAULT_ARRAY_SIZE,
-                        sizeof(const char *));
+                    reserved_names = apr_array_make(pool, 1,
+                                                    sizeof(const char *));
 
                   APR_ARRAY_PUSH(reserved_names, const char *) = utf8_target;
 
@@ -374,14 +373,14 @@ svn_client_args_to_target_array3(apr_arr
                                  apr_pool_t *pool)
 {
   apr_array_header_t *utf8_input_targets = apr_array_make(
-      pool, SVN_CLIENT__CMDLINE_DEFAULT_ARRAY_SIZE, sizeof(const char *));
+    pool, os->argc - os->ind, sizeof(const char *));
 
   for (; os->ind < os->argc; os->ind++)
     {
       APR_ARRAY_PUSH(utf8_input_targets, const char *) = os->argv[os->ind];
     }
 
-  return svn_error_trace(
-      svn_client__process_target_array(targets_p, utf8_input_targets, 
known_targets, ctx,
-                           keep_last_origpath_on_truepath_collision, pool));
+  return svn_error_trace(svn_client__process_target_array(
+      targets_p, utf8_input_targets, known_targets, ctx,
+      keep_last_origpath_on_truepath_collision, pool));
 }

Modified: 
subversion/branches/utf8-cmdline-prototype/subversion/libsvn_client/deprecated.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/utf8-cmdline-prototype/subversion/libsvn_client/deprecated.c?rev=1925865&r1=1925864&r2=1925865&view=diff
==============================================================================
--- 
subversion/branches/utf8-cmdline-prototype/subversion/libsvn_client/deprecated.c
 (original)
+++ 
subversion/branches/utf8-cmdline-prototype/subversion/libsvn_client/deprecated.c
 Tue May 27 12:14:25 2025
@@ -451,7 +451,7 @@ svn_client_args_to_target_array2(apr_arr
                                  apr_pool_t *pool)
 {
   apr_array_header_t *utf8_input_targets = apr_array_make(
-      pool, SVN_CLIENT__CMDLINE_DEFAULT_ARRAY_SIZE, sizeof(const char *));
+    pool, os->argc - os->ind, sizeof(const char *));
 
   for (; os->ind < os->argc; os->ind++)
     {


Reply via email to