};
union mail_index_transaction_module_context {
+ struct mail_index_transaction_vfuncs super;
struct mail_index_module_register *reg;
};
int refcount;
enum mail_index_transaction_flags flags;
- struct mail_index_transaction_vfuncs v;
+ struct mail_index_transaction_vfuncs v, *vlast;
struct mail_index_view *view;
struct mail_index_view *latest_view;
#include "lib.h"
#include "ioloop.h"
#include "array.h"
+#include "hook-build.h"
#include "bsearch-insert-pos.h"
#include "llist.h"
#include "mail-index-private.h"
DLLIST_PREPEND(&view->transactions_list, t);
if (array_is_created(&hook_mail_index_transaction_created)) {
+ struct hook_build_context *ctx =
+ hook_build_init((void *)&t->v, sizeof(t->v));
const hook_mail_index_transaction_created_t *const *ptr;
array_foreach(&hook_mail_index_transaction_created, ptr) {
(*ptr)(t);
+ hook_build_update(ctx, t->vlast);
}
+ t->vlast = NULL;
+ hook_build_deinit(&ctx);
}
return t;
}