[libgit2-glib] Port GgitSubmoduleUpdateOptions to G_DECLARE_DERIVABLE_TYPE macro
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgit2-glib] Port GgitSubmoduleUpdateOptions to G_DECLARE_DERIVABLE_TYPE macro
- Date: Wed, 22 Jul 2015 15:39:25 +0000 (UTC)
commit 88ef97b4adaeaf9262155485e5c1b87fc6401551
Author: Ignacio Casal Quinteiro <icq gnome org>
Date: Wed Jul 22 17:39:02 2015 +0200
Port GgitSubmoduleUpdateOptions to G_DECLARE_DERIVABLE_TYPE macro
libgit2-glib/ggit-autocleanup.h | 1 -
libgit2-glib/ggit-submodule-update-options.c | 121 +++++++++++++++++---------
libgit2-glib/ggit-submodule-update-options.h | 21 +----
libgit2-glib/ggit-types.h | 7 --
4 files changed, 80 insertions(+), 70 deletions(-)
---
diff --git a/libgit2-glib/ggit-autocleanup.h b/libgit2-glib/ggit-autocleanup.h
index 44bc82c..5610a86 100644
--- a/libgit2-glib/ggit-autocleanup.h
+++ b/libgit2-glib/ggit-autocleanup.h
@@ -64,7 +64,6 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (GgitCredSshKeyFromAgent, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GgitDiffFormatEmailOptions, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GgitRemote, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GgitRepository, g_object_unref)
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (GgitSubmoduleUpdateOptions, g_object_unref)
#endif /* GLIB_CHECK_VERSION (2, 44, 0) */
#endif /* __GI_SCANNER__ */
diff --git a/libgit2-glib/ggit-submodule-update-options.c b/libgit2-glib/ggit-submodule-update-options.c
index f8b756e..4229589 100644
--- a/libgit2-glib/ggit-submodule-update-options.c
+++ b/libgit2-glib/ggit-submodule-update-options.c
@@ -23,17 +23,21 @@
#include "ggit-checkout-options.h"
#include "ggit-fetch-options.h"
-#define GGIT_SUBMODULE_UPDATE_OPTIONS_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object),
GGIT_TYPE_SUBMODULE_UPDATE_OPTIONS, GgitSubmoduleUpdateOptionsPrivate))
+/**
+ * GgitSubmoduleUpdateOptions:
+ *
+ * Represents options for a submodule update.
+ */
-struct _GgitSubmoduleUpdateOptionsPrivate
+typedef struct _GgitSubmoduleUpdateOptionsPrivate
{
git_submodule_update_options options;
GgitCheckoutOptions *checkout_options;
GgitFetchOptions *fetch_options;
-};
+} GgitSubmoduleUpdateOptionsPrivate;
-G_DEFINE_TYPE (GgitSubmoduleUpdateOptions, ggit_submodule_update_options, G_TYPE_OBJECT)
+G_DEFINE_TYPE_WITH_PRIVATE (GgitSubmoduleUpdateOptions, ggit_submodule_update_options, G_TYPE_OBJECT)
enum
{
@@ -46,12 +50,13 @@ enum
static void
ggit_submodule_update_options_finalize (GObject *object)
{
- GgitSubmoduleUpdateOptions *options;
+ GgitSubmoduleUpdateOptions *options = GGIT_SUBMODULE_UPDATE_OPTIONS (object);
+ GgitSubmoduleUpdateOptionsPrivate *priv;
- options = GGIT_SUBMODULE_UPDATE_OPTIONS (object);
+ priv = ggit_submodule_update_options_get_instance_private (options);
- g_clear_object (&options->priv->checkout_options);
- g_clear_pointer (&options->priv->fetch_options, ggit_fetch_options_free);
+ g_clear_object (&priv->checkout_options);
+ g_clear_pointer (&priv->fetch_options, ggit_fetch_options_free);
G_OBJECT_CLASS (ggit_submodule_update_options_parent_class)->finalize (object);
}
@@ -62,20 +67,20 @@ ggit_submodule_update_options_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec)
{
- GgitSubmoduleUpdateOptions *self = GGIT_SUBMODULE_UPDATE_OPTIONS (object);
+ GgitSubmoduleUpdateOptions *options = GGIT_SUBMODULE_UPDATE_OPTIONS (object);
switch (prop_id)
{
case PROP_CHECKOUT_OPTIONS:
- ggit_submodule_update_options_set_checkout_options (self,
+ ggit_submodule_update_options_set_checkout_options (options,
g_value_get_object (value));
break;
case PROP_FETCH_OPTIONS:
- ggit_submodule_update_options_set_fetch_options (self,
+ ggit_submodule_update_options_set_fetch_options (options,
g_value_get_boxed (value));
break;
case PROP_CLONE_CHECKOUT_STRATEGY:
- ggit_submodule_update_options_set_clone_checkout_strategy (self,
+ ggit_submodule_update_options_set_clone_checkout_strategy (options,
g_value_get_flags (value));
break;
default:
@@ -90,19 +95,22 @@ ggit_submodule_update_options_get_property (GObject *object,
GValue *value,
GParamSpec *pspec)
{
- GgitSubmoduleUpdateOptions *self = GGIT_SUBMODULE_UPDATE_OPTIONS (object);
+ GgitSubmoduleUpdateOptions *options = GGIT_SUBMODULE_UPDATE_OPTIONS (object);
+ GgitSubmoduleUpdateOptionsPrivate *priv;
+
+ priv = ggit_submodule_update_options_get_instance_private (options);
switch (prop_id)
{
case PROP_CHECKOUT_OPTIONS:
- g_value_set_object (value, self->priv->checkout_options);
+ g_value_set_object (value, priv->checkout_options);
break;
case PROP_FETCH_OPTIONS:
- g_value_set_boxed (value, self->priv->fetch_options);
+ g_value_set_boxed (value, priv->fetch_options);
break;
case PROP_CLONE_CHECKOUT_STRATEGY:
g_value_set_flags (value,
- ggit_submodule_update_options_get_clone_checkout_strategy (self));
+ ggit_submodule_update_options_get_clone_checkout_strategy (options));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -116,12 +124,9 @@ ggit_submodule_update_options_class_init (GgitSubmoduleUpdateOptionsClass *klass
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->finalize = ggit_submodule_update_options_finalize;
-
object_class->get_property = ggit_submodule_update_options_get_property;
object_class->set_property = ggit_submodule_update_options_set_property;
- g_type_class_add_private (object_class, sizeof (GgitSubmoduleUpdateOptionsPrivate));
-
g_object_class_install_property (object_class,
PROP_CHECKOUT_OPTIONS,
g_param_spec_object ("checkout-options",
@@ -152,11 +157,13 @@ ggit_submodule_update_options_class_init (GgitSubmoduleUpdateOptionsClass *klass
}
static void
-ggit_submodule_update_options_init (GgitSubmoduleUpdateOptions *self)
+ggit_submodule_update_options_init (GgitSubmoduleUpdateOptions *options)
{
- self->priv = GGIT_SUBMODULE_UPDATE_OPTIONS_GET_PRIVATE (self);
+ GgitSubmoduleUpdateOptionsPrivate *priv;
+
+ priv = ggit_submodule_update_options_get_instance_private (options);
- git_submodule_update_init_options (&self->priv->options, GIT_SUBMODULE_UPDATE_OPTIONS_VERSION);
+ git_submodule_update_init_options (&priv->options, GIT_SUBMODULE_UPDATE_OPTIONS_VERSION);
}
/**
@@ -178,15 +185,19 @@ _ggit_submodule_update_options_get_submodule_update_options (GgitSubmoduleUpdate
{
if (options != NULL)
{
+ GgitSubmoduleUpdateOptionsPrivate *priv;
+
+ priv = ggit_submodule_update_options_get_instance_private (options);
+
/* Make sure to synchronize the wrapped checkout options
* with the internal checkout options */
- if (options->priv->checkout_options)
+ if (priv->checkout_options)
{
- options->priv->options.checkout_opts =
- *_ggit_checkout_options_get_checkout_options
(options->priv->checkout_options);
+ priv->options.checkout_opts =
+ *_ggit_checkout_options_get_checkout_options (priv->checkout_options);
}
- return &options->priv->options;
+ return &priv->options;
}
else
{
@@ -206,9 +217,13 @@ _ggit_submodule_update_options_get_submodule_update_options (GgitSubmoduleUpdate
GgitCheckoutOptions *
ggit_submodule_update_options_get_checkout_options (GgitSubmoduleUpdateOptions *options)
{
+ GgitSubmoduleUpdateOptionsPrivate *priv;
+
g_return_val_if_fail (GGIT_IS_SUBMODULE_UPDATE_OPTIONS (options), NULL);
- return options->priv->checkout_options;
+ priv = ggit_submodule_update_options_get_instance_private (options);
+
+ return priv->checkout_options;
}
/**
@@ -223,21 +238,25 @@ void
ggit_submodule_update_options_set_checkout_options (GgitSubmoduleUpdateOptions *options,
GgitCheckoutOptions *checkout_options)
{
+ GgitSubmoduleUpdateOptionsPrivate *priv;
+
g_return_if_fail (GGIT_IS_SUBMODULE_UPDATE_OPTIONS (options));
g_return_if_fail (checkout_options == NULL || GGIT_IS_CHECKOUT_OPTIONS (checkout_options));
- if (options->priv->checkout_options)
+ priv = ggit_submodule_update_options_get_instance_private (options);
+
+ if (priv->checkout_options)
{
- g_object_unref (options->priv->checkout_options);
- options->priv->checkout_options = NULL;
+ g_object_unref (priv->checkout_options);
+ priv->checkout_options = NULL;
- git_checkout_init_options (&options->priv->options.checkout_opts,
GIT_CHECKOUT_OPTIONS_VERSION);
+ git_checkout_init_options (&priv->options.checkout_opts, GIT_CHECKOUT_OPTIONS_VERSION);
}
if (checkout_options)
{
- options->priv->checkout_options = g_object_ref (checkout_options);
- options->priv->options.checkout_opts = *_ggit_checkout_options_get_checkout_options
(options->priv->checkout_options);
+ priv->checkout_options = g_object_ref (checkout_options);
+ priv->options.checkout_opts = *_ggit_checkout_options_get_checkout_options
(priv->checkout_options);
}
g_object_notify (G_OBJECT (options), "checkout-options");
@@ -255,9 +274,13 @@ ggit_submodule_update_options_set_checkout_options (GgitSubmoduleUpdateOptions *
GgitFetchOptions *
ggit_submodule_update_options_get_fetch_options (GgitSubmoduleUpdateOptions *options)
{
+ GgitSubmoduleUpdateOptionsPrivate *priv;
+
g_return_val_if_fail (GGIT_IS_SUBMODULE_UPDATE_OPTIONS (options), NULL);
- return options->priv->fetch_options;
+ priv = ggit_submodule_update_options_get_instance_private (options);
+
+ return priv->fetch_options;
}
@@ -272,20 +295,24 @@ void
ggit_submodule_update_options_set_fetch_options (GgitSubmoduleUpdateOptions *options,
GgitFetchOptions *fetch_options)
{
+ GgitSubmoduleUpdateOptionsPrivate *priv;
+
g_return_if_fail (GGIT_IS_SUBMODULE_UPDATE_OPTIONS (options));
- if (options->priv->fetch_options)
+ priv = ggit_submodule_update_options_get_instance_private (options);
+
+ if (priv->fetch_options)
{
- ggit_fetch_options_free (options->priv->fetch_options);
- options->priv->fetch_options = NULL;
+ ggit_fetch_options_free (priv->fetch_options);
+ priv->fetch_options = NULL;
- git_fetch_init_options (&options->priv->options.fetch_opts, GIT_FETCH_OPTIONS_VERSION);
+ git_fetch_init_options (&priv->options.fetch_opts, GIT_FETCH_OPTIONS_VERSION);
}
if (fetch_options)
{
- options->priv->fetch_options = ggit_fetch_options_copy (fetch_options);
- options->priv->options.fetch_opts = *_ggit_fetch_options_get_fetch_options
(options->priv->fetch_options);
+ priv->fetch_options = ggit_fetch_options_copy (fetch_options);
+ priv->options.fetch_opts = *_ggit_fetch_options_get_fetch_options (priv->fetch_options);
}
g_object_notify (G_OBJECT (options), "fetch-options");
@@ -302,9 +329,13 @@ ggit_submodule_update_options_set_fetch_options (GgitSubmoduleUpdateOptions *opt
GgitCheckoutStrategy
ggit_submodule_update_options_get_clone_checkout_strategy (GgitSubmoduleUpdateOptions *options)
{
+ GgitSubmoduleUpdateOptionsPrivate *priv;
+
g_return_val_if_fail (GGIT_IS_SUBMODULE_UPDATE_OPTIONS (options), GGIT_CHECKOUT_NONE);
- return options->priv->options.clone_checkout_strategy;
+ priv = ggit_submodule_update_options_get_instance_private (options);
+
+ return priv->options.clone_checkout_strategy;
}
/**
@@ -319,11 +350,15 @@ void
ggit_submodule_update_options_set_clone_checkout_strategy (GgitSubmoduleUpdateOptions *options,
GgitCheckoutStrategy checkout_strategy)
{
+ GgitSubmoduleUpdateOptionsPrivate *priv;
+
g_return_if_fail (GGIT_IS_SUBMODULE_UPDATE_OPTIONS (options));
- if (options->priv->options.clone_checkout_strategy != checkout_strategy)
+ priv = ggit_submodule_update_options_get_instance_private (options);
+
+ if (priv->options.clone_checkout_strategy != checkout_strategy)
{
- options->priv->options.clone_checkout_strategy = checkout_strategy;
+ priv->options.clone_checkout_strategy = checkout_strategy;
g_object_notify (G_OBJECT (options), "clone-checkout-strategy");
}
diff --git a/libgit2-glib/ggit-submodule-update-options.h b/libgit2-glib/ggit-submodule-update-options.h
index 9530abf..5816d97 100644
--- a/libgit2-glib/ggit-submodule-update-options.h
+++ b/libgit2-glib/ggit-submodule-update-options.h
@@ -29,31 +29,14 @@
G_BEGIN_DECLS
-#define GGIT_TYPE_SUBMODULE_UPDATE_OPTIONS (ggit_submodule_update_options_get_type ())
-#define GGIT_SUBMODULE_UPDATE_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj),
GGIT_TYPE_SUBMODULE_UPDATE_OPTIONS, GgitSubmoduleUpdateOptions))
-#define GGIT_SUBMODULE_UPDATE_OPTIONS_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj),
GGIT_TYPE_SUBMODULE_UPDATE_OPTIONS, GgitSubmoduleUpdateOptions const))
-#define GGIT_SUBMODULE_UPDATE_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass),
GGIT_TYPE_SUBMODULE_UPDATE_OPTIONS, GgitSubmoduleUpdateOptionsClass))
-#define GGIT_IS_SUBMODULE_UPDATE_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj),
GGIT_TYPE_SUBMODULE_UPDATE_OPTIONS))
-#define GGIT_IS_SUBMODULE_UPDATE_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),
GGIT_TYPE_SUBMODULE_UPDATE_OPTIONS))
-#define GGIT_SUBMODULE_UPDATE_OPTIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),
GGIT_TYPE_SUBMODULE_UPDATE_OPTIONS, GgitSubmoduleUpdateOptionsClass))
-
-typedef struct _GgitSubmoduleUpdateOptionsClass GgitSubmoduleUpdateOptionsClass;
-typedef struct _GgitSubmoduleUpdateOptionsPrivate GgitSubmoduleUpdateOptionsPrivate;
-
-struct _GgitSubmoduleUpdateOptions
-{
- GObject parent;
-
- GgitSubmoduleUpdateOptionsPrivate *priv;
-};
+#define GGIT_TYPE_SUBMODULE_UPDATE_OPTIONS (ggit_submodule_update_options_get_type ())
+G_DECLARE_DERIVABLE_TYPE (GgitSubmoduleUpdateOptions, ggit_submodule_update_options, GGIT,
SUBMODULE_UPDATE_OPTIONS, GObject)
struct _GgitSubmoduleUpdateOptionsClass
{
GObjectClass parent_class;
};
-GType ggit_submodule_update_options_get_type (void) G_GNUC_CONST;
-
const git_submodule_update_options *
_ggit_submodule_update_options_get_submodule_update_options
(GgitSubmoduleUpdateOptions *options);
diff --git a/libgit2-glib/ggit-types.h b/libgit2-glib/ggit-types.h
index 01a2ae5..53fe25b 100644
--- a/libgit2-glib/ggit-types.h
+++ b/libgit2-glib/ggit-types.h
@@ -258,13 +258,6 @@ typedef struct _GgitStatusOptions GgitStatusOptions;
typedef struct _GgitSubmodule GgitSubmodule;
/**
- * GgitSubmoduleUpdateOptions:
- *
- * Represents options for a submodule update.
- */
-typedef struct _GgitSubmoduleUpdateOptions GgitSubmoduleUpdateOptions;
-
-/**
* GgitTransferProgress:
*
* Represents transfering progress.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]