[libdazzle] shortcuts: add magic field to node data
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libdazzle] shortcuts: add magic field to node data
- Date: Thu, 26 Jul 2018 02:23:50 +0000 (UTC)
commit dc3388231f1171a98c5753f611a5e942b5317b60
Author: Christian Hergert <chergert redhat com>
Date: Wed Jul 25 19:23:22 2018 -0700
shortcuts: add magic field to node data
src/shortcuts/dzl-shortcut-manager.c | 22 +++++++++++++++++++---
src/shortcuts/dzl-shortcut-private.h | 8 ++++++++
2 files changed, 27 insertions(+), 3 deletions(-)
---
diff --git a/src/shortcuts/dzl-shortcut-manager.c b/src/shortcuts/dzl-shortcut-manager.c
index a3250a8..9553c1c 100644
--- a/src/shortcuts/dzl-shortcut-manager.c
+++ b/src/shortcuts/dzl-shortcut-manager.c
@@ -135,6 +135,11 @@ free_node_data (GNode *node,
{
DzlShortcutNodeData *data = node->data;
+ g_assert (data != NULL);
+ g_assert (DZL_IS_SHORTCUT_NODE_DATA (data));
+
+ data->magic = 0xAAAAAAAA;
+
g_slice_free (DzlShortcutNodeData, data);
return FALSE;
@@ -1200,8 +1205,6 @@ dzl_shortcut_manager_find_child (DzlShortcutManager *self,
DzlShortcutNodeType type,
const gchar *name)
{
- DzlShortcutNodeData *data;
-
g_assert (DZL_IS_SHORTCUT_MANAGER (self));
g_assert (parent != NULL);
g_assert (type != 0);
@@ -1209,7 +1212,9 @@ dzl_shortcut_manager_find_child (DzlShortcutManager *self,
for (GNode *iter = parent->children; iter != NULL; iter = iter->next)
{
- data = iter->data;
+ DzlShortcutNodeData *data = iter->data;
+
+ g_assert (DZL_IS_SHORTCUT_NODE_DATA (data));
if (data->type == type && data->name == name)
return iter;
@@ -1237,6 +1242,7 @@ dzl_shortcut_manager_get_group (DzlShortcutManager *self,
if (node == NULL)
{
data = g_slice_new0 (DzlShortcutNodeData);
+ data->magic = DZL_SHORTCUT_NODE_DATA_MAGIC;
data->type = DZL_SHORTCUT_NODE_SECTION;
data->name = g_intern_string (section);
data->title = g_intern_string (section);
@@ -1252,6 +1258,7 @@ dzl_shortcut_manager_get_group (DzlShortcutManager *self,
if (node == NULL)
{
data = g_slice_new0 (DzlShortcutNodeData);
+ data->magic = DZL_SHORTCUT_NODE_DATA_MAGIC;
data->type = DZL_SHORTCUT_NODE_GROUP;
data->name = g_intern_string (group);
data->title = g_intern_string (group);
@@ -1261,6 +1268,7 @@ dzl_shortcut_manager_get_group (DzlShortcutManager *self,
}
g_assert (node != NULL);
+ g_assert (DZL_IS_SHORTCUT_NODE_DATA (node->data));
return node;
}
@@ -1293,6 +1301,7 @@ dzl_shortcut_manager_add_action (DzlShortcutManager *self,
g_assert (parent != NULL);
data = g_slice_new0 (DzlShortcutNodeData);
+ data->magic = DZL_SHORTCUT_NODE_DATA_MAGIC;
data->type = DZL_SHORTCUT_NODE_ACTION;
data->name = g_intern_string (detailed_action_name);
data->title = title;
@@ -1331,6 +1340,7 @@ dzl_shortcut_manager_add_command (DzlShortcutManager *self,
g_assert (parent != NULL);
data = g_slice_new0 (DzlShortcutNodeData);
+ data->magic = DZL_SHORTCUT_NODE_DATA_MAGIC;
data->type = DZL_SHORTCUT_NODE_COMMAND;
data->name = g_intern_string (command);
data->title = title;
@@ -1396,6 +1406,8 @@ dzl_shortcut_manager_add_shortcuts_to_window (DzlShortcutManager *self,
DzlShortcutNodeData *section_data = sections->data;
DzlShortcutsSection *section;
+ g_assert (DZL_IS_SHORTCUT_NODE_DATA (section_data));
+
section = g_object_new (DZL_TYPE_SHORTCUTS_SECTION,
"title", section_data->title,
"section-name", section_data->title,
@@ -1407,6 +1419,8 @@ dzl_shortcut_manager_add_shortcuts_to_window (DzlShortcutManager *self,
DzlShortcutNodeData *group_data = groups->data;
DzlShortcutsGroup *group;
+ g_assert (DZL_IS_SHORTCUT_NODE_DATA (group_data));
+
group = g_object_new (DZL_TYPE_SHORTCUTS_GROUP,
"title", group_data->title,
"visible", TRUE,
@@ -1418,6 +1432,8 @@ dzl_shortcut_manager_add_shortcuts_to_window (DzlShortcutManager *self,
const DzlShortcutChord *chord = NULL;
DzlShortcutsShortcut *shortcut;
+ g_assert (DZL_IS_SHORTCUT_NODE_DATA (data));
+
if (data->type == DZL_SHORTCUT_NODE_ACTION)
chord = dzl_shortcut_theme_get_chord_for_action (theme, data->name);
else if (data->type == DZL_SHORTCUT_NODE_COMMAND)
diff --git a/src/shortcuts/dzl-shortcut-private.h b/src/shortcuts/dzl-shortcut-private.h
index fb65ae3..e4a8895 100644
--- a/src/shortcuts/dzl-shortcut-private.h
+++ b/src/shortcuts/dzl-shortcut-private.h
@@ -28,6 +28,7 @@
G_BEGIN_DECLS
#define DZL_SHORTCUT_CLOSURE_CHAIN_MAGIC 0x81236261
+#define DZL_SHORTCUT_NODE_DATA_MAGIC 0x81746332
typedef struct
{
@@ -46,6 +47,7 @@ typedef enum
typedef struct
{
DzlShortcutNodeType type;
+ guint magic;
const gchar *name;
const gchar *title;
const gchar *subtitle;
@@ -155,4 +157,10 @@ DZL_IS_SHORTCUT_CLOSURE_CHAIN (DzlShortcutClosureChain *self)
return self != NULL && self->magic == DZL_SHORTCUT_CLOSURE_CHAIN_MAGIC;
}
+static inline gboolean
+DZL_IS_SHORTCUT_NODE_DATA (DzlShortcutNodeData *data)
+{
+ return data != NULL && data->magic == DZL_SHORTCUT_NODE_DATA_MAGIC;
+}
+
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]