Author: stsp Date: Tue Mar 27 17:00:25 2012 New Revision: 1305903 URL: http://svn.apache.org/viewvc?rev=1305903&view=rev Log: Follow-up to r1305800: Fix get_info_for_copy() for callers passing NULL status.
* subversion/libsvn_wc/wc_db.c (get_info_for_copy): Store the node's status in a local variable so this function can do its job if the caller passes a NULL status output parameter. Suggested by: gstein Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=1305903&r1=1305902&r2=1305903&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_wc/wc_db.c (original) +++ subversion/trunk/subversion/libsvn_wc/wc_db.c Tue Mar 27 17:00:25 2012 @@ -3414,8 +3414,9 @@ get_info_for_copy(apr_int64_t *copyfrom_ { const char *repos_relpath; svn_revnum_t revision; + svn_wc__db_status_t node_status; - SVN_ERR(read_info(status, kind, &revision, &repos_relpath, copyfrom_id, + SVN_ERR(read_info(&node_status, kind, &revision, &repos_relpath, copyfrom_id, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, op_root, NULL, NULL, NULL /* have_base */, @@ -3423,7 +3424,7 @@ get_info_for_copy(apr_int64_t *copyfrom_ have_work, wcroot, local_relpath, result_pool, scratch_pool)); - if (status && *status == svn_wc__db_status_excluded) + if (node_status == svn_wc__db_status_excluded) { /* The parent cannot be excluded, so look at the parent and then adjust the relpath */ @@ -3439,11 +3440,11 @@ get_info_for_copy(apr_int64_t *copyfrom_ *copyfrom_relpath = svn_relpath_join(*copyfrom_relpath, base_name, result_pool); } - else if (status && *status == svn_wc__db_status_added) + else if (node_status == svn_wc__db_status_added) { const char *op_root_relpath; - SVN_ERR(scan_addition(status, &op_root_relpath, + SVN_ERR(scan_addition(&node_status, &op_root_relpath, NULL, NULL, /* repos_* */ copyfrom_relpath, copyfrom_id, copyfrom_rev, NULL, NULL, NULL, wcroot, local_relpath, @@ -3457,7 +3458,7 @@ get_info_for_copy(apr_int64_t *copyfrom_ result_pool); } } - else if (status && *status == svn_wc__db_status_deleted) + else if (node_status == svn_wc__db_status_deleted) { const char *base_del_relpath, *work_del_relpath; @@ -3501,6 +3502,9 @@ get_info_for_copy(apr_int64_t *copyfrom_ *copyfrom_rev = revision; } + if (status) + *status = node_status; + return SVN_NO_ERROR; }