mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
CLI: centralize initialization in notmuch_client_init
Initially make sure gmime_filter_reply initialization is thread-safe (assuming notmuch_client_init is only called once). For tidyness, also put talloc initialization in the new function.
This commit is contained in:
parent
b1b6798588
commit
5a8d174f67
5 changed files with 29 additions and 27 deletions
|
@ -231,6 +231,7 @@ notmuch_client_srcs = \
|
||||||
gmime-filter-reply.c \
|
gmime-filter-reply.c \
|
||||||
hooks.c \
|
hooks.c \
|
||||||
notmuch.c \
|
notmuch.c \
|
||||||
|
notmuch-client-init.c \
|
||||||
notmuch-compact.c \
|
notmuch-compact.c \
|
||||||
notmuch-config.c \
|
notmuch-config.c \
|
||||||
notmuch-count.c \
|
notmuch-count.c \
|
||||||
|
|
|
@ -43,29 +43,31 @@ static void filter_reset (GMimeFilter *filter);
|
||||||
|
|
||||||
|
|
||||||
static GMimeFilterClass *parent_class = NULL;
|
static GMimeFilterClass *parent_class = NULL;
|
||||||
|
static GType type = 0;
|
||||||
|
static const GTypeInfo info = {
|
||||||
|
.class_size = sizeof (GMimeFilterReplyClass),
|
||||||
|
.base_init = NULL,
|
||||||
|
.base_finalize = NULL,
|
||||||
|
.class_init = (GClassInitFunc) g_mime_filter_reply_class_init,
|
||||||
|
.class_finalize = NULL,
|
||||||
|
.class_data = NULL,
|
||||||
|
.instance_size = sizeof (GMimeFilterReply),
|
||||||
|
.n_preallocs = 0,
|
||||||
|
.instance_init = (GInstanceInitFunc) g_mime_filter_reply_init,
|
||||||
|
.value_table = NULL,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
g_mime_filter_reply_module_init (void)
|
||||||
|
{
|
||||||
|
type = g_type_register_static (GMIME_TYPE_FILTER, "GMimeFilterReply", &info, (GTypeFlags) 0);
|
||||||
|
parent_class = (GMimeFilterClass *) g_type_class_ref (GMIME_TYPE_FILTER);
|
||||||
|
}
|
||||||
|
|
||||||
GType
|
GType
|
||||||
g_mime_filter_reply_get_type (void)
|
g_mime_filter_reply_get_type (void)
|
||||||
{
|
{
|
||||||
static GType type = 0;
|
|
||||||
|
|
||||||
if (! type) {
|
|
||||||
static const GTypeInfo info = {
|
|
||||||
.class_size = sizeof (GMimeFilterReplyClass),
|
|
||||||
.base_init = NULL,
|
|
||||||
.base_finalize = NULL,
|
|
||||||
.class_init = (GClassInitFunc) g_mime_filter_reply_class_init,
|
|
||||||
.class_finalize = NULL,
|
|
||||||
.class_data = NULL,
|
|
||||||
.instance_size = sizeof (GMimeFilterReply),
|
|
||||||
.n_preallocs = 0,
|
|
||||||
.instance_init = (GInstanceInitFunc) g_mime_filter_reply_init,
|
|
||||||
.value_table = NULL,
|
|
||||||
};
|
|
||||||
|
|
||||||
type = g_type_register_static (GMIME_TYPE_FILTER, "GMimeFilterReply", &info, (GTypeFlags) 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,8 +78,6 @@ g_mime_filter_reply_class_init (GMimeFilterReplyClass *klass, unused (void *clas
|
||||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||||
GMimeFilterClass *filter_class = GMIME_FILTER_CLASS (klass);
|
GMimeFilterClass *filter_class = GMIME_FILTER_CLASS (klass);
|
||||||
|
|
||||||
parent_class = (GMimeFilterClass *) g_type_class_ref (GMIME_TYPE_FILTER);
|
|
||||||
|
|
||||||
object_class->finalize = g_mime_filter_reply_finalize;
|
object_class->finalize = g_mime_filter_reply_finalize;
|
||||||
|
|
||||||
filter_class->copy = filter_copy;
|
filter_class->copy = filter_copy;
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
|
|
||||||
#include <gmime/gmime-filter.h>
|
#include <gmime/gmime-filter.h>
|
||||||
|
|
||||||
|
void g_mime_filter_reply_module_init (void);
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define GMIME_TYPE_FILTER_REPLY (g_mime_filter_reply_get_type ())
|
#define GMIME_TYPE_FILTER_REPLY (g_mime_filter_reply_get_type ())
|
||||||
|
|
|
@ -250,6 +250,10 @@ json_quote_chararray (const void *ctx, const char *str, const size_t len);
|
||||||
char *
|
char *
|
||||||
json_quote_str (const void *ctx, const char *str);
|
json_quote_str (const void *ctx, const char *str);
|
||||||
|
|
||||||
|
/* notmuch-client-init.c */
|
||||||
|
|
||||||
|
void notmuch_client_init (void);
|
||||||
|
|
||||||
/* notmuch-config.c */
|
/* notmuch-config.c */
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|
|
@ -464,15 +464,10 @@ main (int argc, char *argv[])
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
talloc_enable_null_tracking ();
|
notmuch_client_init ();
|
||||||
|
|
||||||
local = talloc_new (NULL);
|
local = talloc_new (NULL);
|
||||||
|
|
||||||
g_mime_init ();
|
|
||||||
#if ! GLIB_CHECK_VERSION (2, 35, 1)
|
|
||||||
g_type_init ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Globally default to the current output format version. */
|
/* Globally default to the current output format version. */
|
||||||
notmuch_format_version = NOTMUCH_FORMAT_CUR;
|
notmuch_format_version = NOTMUCH_FORMAT_CUR;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue