You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2011/05/14 18:45:34 UTC
svn commit: r1103157 - /subversion/trunk/subversion/libsvn_wc/wc_db.c
Author: hwright
Date: Sat May 14 16:45:34 2011
New Revision: 1103157
URL: http://svn.apache.org/viewvc?rev=1103157&view=rev
Log:
Update the finalize functionality within wc_db to allow a full function,
not just a single statement.
* subversion/libsvn_wc/wc_db.c
(finalize_callback_t, run_final_query): New.
(with_finalization): Take a finalizer function and baton, and run them.
(svn_wc__db_op_set_changelist, svn_wc__db_op_delete): Update callers.
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=1103157&r1=1103156&r2=1103157&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.c Sat May 14 16:45:34 2011
@@ -2456,6 +2456,22 @@ typedef svn_error_t * (*work_callback_t)
void *notify_baton,
apr_pool_t *scratch_pool);
+typedef svn_error_t * (*finalize_callback_t)(
+ void *baton,
+ svn_wc__db_wcroot_t *wcroot,
+ apr_pool_t *scratch_pool);
+
+static svn_error_t *
+run_final_query(void *baton,
+ svn_wc__db_wcroot_t *wcroot,
+ apr_pool_t *scratch_pool)
+{
+ int *finalize_idx = baton;
+
+ return svn_error_return(svn_sqlite__exec_statements(wcroot->sdb,
+ *finalize_idx));
+}
+
static svn_error_t *
with_finalization(void *baton,
svn_wc__db_wcroot_t *wcroot,
@@ -2468,7 +2484,8 @@ with_finalization(void *baton,
void *cancel_baton,
svn_wc_notify_func2_t notify_func,
void *notify_baton,
- int finalize_idx,
+ finalize_callback_t finalize_func,
+ void *finalize_baton,
apr_pool_t *scratch_pool)
{
svn_error_t *err1;
@@ -2486,7 +2503,7 @@ with_finalization(void *baton,
err1 = svn_error_compose_create(err1, err2);
}
- err2 = svn_sqlite__exec_statements(wcroot->sdb, finalize_idx);
+ err2 = finalize_func(finalize_baton, wcroot, scratch_pool);
return svn_error_return(svn_error_compose_create(err1, err2));
}
@@ -5094,6 +5111,7 @@ svn_wc__db_op_set_changelist(svn_wc__db_
svn_wc__db_wcroot_t *wcroot;
const char *local_relpath;
struct set_changelist_baton_t scb = { new_changelist, changelist_filter };
+ int final_query = STMT_DROP_CHANGELIST_LIST;
SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
SVN_ERR_ASSERT(depth == svn_depth_empty);
@@ -5118,7 +5136,7 @@ svn_wc__db_op_set_changelist(svn_wc__db_
do_changelist_notify, NULL,
cancel_func, cancel_baton,
notify_func, notify_baton,
- STMT_DROP_CHANGELIST_LIST,
+ run_final_query, &final_query,
scratch_pool));
}
@@ -6279,6 +6297,7 @@ svn_wc__db_op_delete(svn_wc__db_t *db,
svn_wc__db_wcroot_t *wcroot;
const char *local_relpath;
struct op_delete_baton_t odb;
+ int final_query = STMT_DROP_DELETE_LIST;
SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
@@ -6301,7 +6320,7 @@ svn_wc__db_op_delete(svn_wc__db_t *db,
do_delete_notify, NULL,
cancel_func, cancel_baton,
notify_func, notify_baton,
- STMT_DROP_DELETE_LIST,
+ run_final_query, &final_query,
scratch_pool));
}