[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Got a little present from glibc today

From: Justin Erenkrantz <justin_at_erenkrantz.com>
Date: 2007-12-05 21:29:56 CET

On Dec 5, 2007 12:02 PM, Lieven Govaerts <svnlgo@mobsol.be> wrote:
> the stress test script is meant to find out Mike's "double free" error
> during commit. Since you're already solving the switch issue, I'll have
> a look at a stress test script.

I think the patch below should fix it.

Anyone care to review before I commit? (I'll also write up a log msg too.)

Thanks. -- justin

Index: subversion/libsvn_ra_serf/update.c
===================================================================
--- subversion/libsvn_ra_serf/update.c (revision 28286)
+++ subversion/libsvn_ra_serf/update.c (working copy)
@@ -65,6 +65,9 @@
     NEED_PROP_NAME,
 } report_state_e;

+/* Forward-declare our report context. */
+typedef struct report_context_t report_context_t;
+
 /*
  * This structure represents the information for a directory.
  */
@@ -78,6 +81,9 @@

   apr_pool_t *pool;

+ /* Pointer back to our original report context. */
+ report_context_t *report_context;
+
   /* Our name sans any parents. */
   const char *base_name;

@@ -260,7 +266,7 @@
 /*
  * The master structure for a REPORT request and response.
  */
-typedef struct {
+struct report_context_t {
   apr_pool_t *pool;

   svn_ra_serf__session_t *sess;
@@ -317,7 +323,7 @@
   /* Are we done parsing the REPORT response? */
   svn_boolean_t done;

-} report_context_t;
+};

 
 /** Report state management helper **/
@@ -363,6 +369,7 @@
       /* Point to the update_editor */
       new_info->dir->update_editor = ctx->update_editor;
       new_info->dir->update_baton = ctx->update_baton;
+ new_info->dir->report_context = ctx;

       if (info)
         {
@@ -482,6 +489,15 @@
     {
       apr_pool_create(&dir->dir_baton_pool, dir->pool);

+ if (dir->report_context->destination &&
+ dir->report_context->sess->wc_callbacks->invalidate_wc_props)
+ {
+ SVN_ERR(dir->report_context->sess->wc_callbacks->invalidate_wc_props(
+ dir->report_context->sess->wc_callback_baton,
+ dir->report_context->update_target,
+ SVN_RA_SERF__WC_CHECKED_IN_URL, dir->pool));
+ }
+
       SVN_ERR(dir->update_editor->open_root(dir->update_baton, dir->base_rev,
                                             dir->dir_baton_pool,
                                             &dir->dir_baton));

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Dec 5 21:30:12 2007

This is an archived mail posted to the Subversion Dev mailing list.