On Mon, Dec 17 2012, david@tethera.net wrote: > From: David Bremner <bremner@debian.org> > > This code is no less correct than the previous version, since it does > not make sense for the array to live longer than the wrapping struct. > > By not relying on the context passed into tag_parse_line, we can allow > tag_op_list_t structures to live longer than that context. > --- The whole patch series looks good to me -- just that this comment gets a bit over my head... Tomi > notmuch-restore.c | 2 +- > tag-util.c | 9 ++++----- > tag-util.h | 3 +-- > 3 files changed, 6 insertions(+), 8 deletions(-) > > diff --git a/notmuch-restore.c b/notmuch-restore.c > index 5a02328..665373f 100644 > --- a/notmuch-restore.c > +++ b/notmuch-restore.c > @@ -105,7 +105,7 @@ parse_sup_line (void *ctx, char *line, > tok_len++; > } > > - if (tag_op_list_append (ctx, tag_ops, tok, FALSE)) > + if (tag_op_list_append (tag_ops, tok, FALSE)) > return -1; > } > > diff --git a/tag-util.c b/tag-util.c > index eab482f..705b7ba 100644 > --- a/tag-util.c > +++ b/tag-util.c > @@ -109,7 +109,7 @@ parse_tag_line (void *ctx, char *line, > goto DONE; > } > > - if (tag_op_list_append (ctx, tag_ops, tag, remove)) { > + if (tag_op_list_append (tag_ops, tag, remove)) { > ret = line_error (TAG_PARSE_OUT_OF_MEMORY, line_for_error, > "aborting"); > goto DONE; > @@ -294,7 +294,7 @@ tag_op_list_create (void *ctx) > list->size = TAG_OP_LIST_INITIAL_SIZE; > list->count = 0; > > - list->ops = talloc_array (ctx, tag_operation_t, list->size); > + list->ops = talloc_array (list, tag_operation_t, list->size); > if (list->ops == NULL) > return NULL; > > @@ -303,8 +303,7 @@ tag_op_list_create (void *ctx) > > > int > -tag_op_list_append (void *ctx, > - tag_op_list_t *list, > +tag_op_list_append (tag_op_list_t *list, > const char *tag, > notmuch_bool_t remove) > { > @@ -314,7 +313,7 @@ tag_op_list_append (void *ctx, > > if (list->count == list->size) { > list->size *= 2; > - list->ops = talloc_realloc (ctx, list->ops, tag_operation_t, > + list->ops = talloc_realloc (list, list->ops, tag_operation_t, > list->size); > if (list->ops == NULL) { > fprintf (stderr, "Out of memory.\n"); > diff --git a/tag-util.h b/tag-util.h > index 99b0fa0..c07bfde 100644 > --- a/tag-util.h > +++ b/tag-util.h > @@ -87,8 +87,7 @@ tag_op_list_create (void *ctx); > */ > > int > -tag_op_list_append (void *ctx, > - tag_op_list_t *list, > +tag_op_list_append (tag_op_list_t *list, > const char *tag, > notmuch_bool_t remove); > > -- > 1.7.10.4 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch