summaryrefslogtreecommitdiff
path: root/libpurple/blistnode.c
diff options
context:
space:
mode:
authorElliott Sales de Andrade <qulogic@pidgin.im>2019-08-07 01:15:14 -0400
committerElliott Sales de Andrade <qulogic@pidgin.im>2019-08-07 01:15:14 -0400
commitd865756c84df42d176db935f07fde428ca2080b4 (patch)
tree171018273a1901d6f77c06c94cf3b90d67e3fdb0 /libpurple/blistnode.c
parent9a491a5be0a65c2f69c23e7973aef79ac73944c8 (diff)
downloadpidgin-d865756c84df42d176db935f07fde428ca2080b4.tar.gz
Fix broken `priv != NULL` checks in libpurple.
The `*_get_instance_private` function just returns input value + offset, so it is impossible for `priv` to be `NULL`.
Diffstat (limited to 'libpurple/blistnode.c')
-rw-r--r--libpurple/blistnode.c90
1 files changed, 49 insertions, 41 deletions
diff --git a/libpurple/blistnode.c b/libpurple/blistnode.c
index 6816de5f37..b655620345 100644
--- a/libpurple/blistnode.c
+++ b/libpurple/blistnode.c
@@ -114,13 +114,14 @@ purple_blist_node_set_ui_data(PurpleBlistNode *node, void *ui_data) {
void purple_blist_node_remove_setting(PurpleBlistNode *node, const char *key)
{
- PurpleBlistNodePrivate *priv =
- purple_blist_node_get_instance_private(node);
+ PurpleBlistNodePrivate *priv = NULL;
- g_return_if_fail(priv != NULL);
- g_return_if_fail(priv->settings != NULL);
+ g_return_if_fail(PURPLE_IS_BLIST_NODE(node));
g_return_if_fail(key != NULL);
+ priv = purple_blist_node_get_instance_private(node);
+ g_return_if_fail(priv->settings != NULL);
+
g_hash_table_remove(priv->settings, key);
purple_blist_save_node(purple_blist_get_default(), node);
@@ -129,11 +130,11 @@ void purple_blist_node_remove_setting(PurpleBlistNode *node, const char *key)
void
purple_blist_node_set_transient(PurpleBlistNode *node, gboolean transient)
{
- PurpleBlistNodePrivate *priv =
- purple_blist_node_get_instance_private(node);
+ PurpleBlistNodePrivate *priv = NULL;
- g_return_if_fail(priv != NULL);
+ g_return_if_fail(PURPLE_IS_BLIST_NODE(node));
+ priv = purple_blist_node_get_instance_private(node);
priv->transient = transient;
g_object_notify_by_pspec(G_OBJECT(node),
@@ -143,35 +144,36 @@ purple_blist_node_set_transient(PurpleBlistNode *node, gboolean transient)
gboolean
purple_blist_node_is_transient(PurpleBlistNode *node)
{
- PurpleBlistNodePrivate *priv =
- purple_blist_node_get_instance_private(node);
+ PurpleBlistNodePrivate *priv = NULL;
- g_return_val_if_fail(priv != NULL, 0);
+ g_return_val_if_fail(PURPLE_IS_BLIST_NODE(node), 0);
+ priv = purple_blist_node_get_instance_private(node);
return priv->transient;
}
GHashTable *
purple_blist_node_get_settings(PurpleBlistNode *node)
{
- PurpleBlistNodePrivate *priv =
- purple_blist_node_get_instance_private(node);
+ PurpleBlistNodePrivate *priv = NULL;
- g_return_val_if_fail(priv != NULL, NULL);
+ g_return_val_if_fail(PURPLE_IS_BLIST_NODE(node), NULL);
+ priv = purple_blist_node_get_instance_private(node);
return priv->settings;
}
gboolean
purple_blist_node_has_setting(PurpleBlistNode* node, const char *key)
{
- PurpleBlistNodePrivate *priv =
- purple_blist_node_get_instance_private(node);
+ PurpleBlistNodePrivate *priv = NULL;
- g_return_val_if_fail(priv != NULL, FALSE);
- g_return_val_if_fail(priv->settings != NULL, FALSE);
+ g_return_val_if_fail(PURPLE_IS_BLIST_NODE(node), FALSE);
g_return_val_if_fail(key != NULL, FALSE);
+ priv = purple_blist_node_get_instance_private(node);
+ g_return_val_if_fail(priv->settings != NULL, FALSE);
+
/* Boxed type, so it won't ever be NULL, so no need for _extended */
return (g_hash_table_lookup(priv->settings, key) != NULL);
}
@@ -179,14 +181,15 @@ purple_blist_node_has_setting(PurpleBlistNode* node, const char *key)
void
purple_blist_node_set_bool(PurpleBlistNode* node, const char *key, gboolean data)
{
+ PurpleBlistNodePrivate *priv = NULL;
GValue *value;
- PurpleBlistNodePrivate *priv =
- purple_blist_node_get_instance_private(node);
- g_return_if_fail(priv != NULL);
- g_return_if_fail(priv->settings != NULL);
+ g_return_if_fail(PURPLE_IS_BLIST_NODE(node));
g_return_if_fail(key != NULL);
+ priv = purple_blist_node_get_instance_private(node);
+ g_return_if_fail(priv->settings != NULL);
+
value = purple_value_new(G_TYPE_BOOLEAN);
g_value_set_boolean(value, data);
@@ -198,14 +201,15 @@ purple_blist_node_set_bool(PurpleBlistNode* node, const char *key, gboolean data
gboolean
purple_blist_node_get_bool(PurpleBlistNode* node, const char *key)
{
+ PurpleBlistNodePrivate *priv = NULL;
GValue *value;
- PurpleBlistNodePrivate *priv =
- purple_blist_node_get_instance_private(node);
- g_return_val_if_fail(priv != NULL, FALSE);
- g_return_val_if_fail(priv->settings != NULL, FALSE);
+ g_return_val_if_fail(PURPLE_IS_BLIST_NODE(node), FALSE);
g_return_val_if_fail(key != NULL, FALSE);
+ priv = purple_blist_node_get_instance_private(node);
+ g_return_val_if_fail(priv->settings != NULL, FALSE);
+
value = g_hash_table_lookup(priv->settings, key);
if (value == NULL)
@@ -219,14 +223,15 @@ purple_blist_node_get_bool(PurpleBlistNode* node, const char *key)
void
purple_blist_node_set_int(PurpleBlistNode* node, const char *key, int data)
{
+ PurpleBlistNodePrivate *priv = NULL;
GValue *value;
- PurpleBlistNodePrivate *priv =
- purple_blist_node_get_instance_private(node);
- g_return_if_fail(priv != NULL);
- g_return_if_fail(priv->settings != NULL);
+ g_return_if_fail(PURPLE_IS_BLIST_NODE(node));
g_return_if_fail(key != NULL);
+ priv = purple_blist_node_get_instance_private(node);
+ g_return_if_fail(priv->settings != NULL);
+
value = purple_value_new(G_TYPE_INT);
g_value_set_int(value, data);
@@ -238,14 +243,15 @@ purple_blist_node_set_int(PurpleBlistNode* node, const char *key, int data)
int
purple_blist_node_get_int(PurpleBlistNode* node, const char *key)
{
+ PurpleBlistNodePrivate *priv = NULL;
GValue *value;
- PurpleBlistNodePrivate *priv =
- purple_blist_node_get_instance_private(node);
- g_return_val_if_fail(priv != NULL, 0);
- g_return_val_if_fail(priv->settings != NULL, 0);
+ g_return_val_if_fail(PURPLE_IS_BLIST_NODE(node), 0);
g_return_val_if_fail(key != NULL, 0);
+ priv = purple_blist_node_get_instance_private(node);
+ g_return_val_if_fail(priv->settings != NULL, 0);
+
value = g_hash_table_lookup(priv->settings, key);
if (value == NULL)
@@ -259,14 +265,15 @@ purple_blist_node_get_int(PurpleBlistNode* node, const char *key)
void
purple_blist_node_set_string(PurpleBlistNode* node, const char *key, const char *data)
{
+ PurpleBlistNodePrivate *priv = NULL;
GValue *value;
- PurpleBlistNodePrivate *priv =
- purple_blist_node_get_instance_private(node);
- g_return_if_fail(priv != NULL);
- g_return_if_fail(priv->settings != NULL);
+ g_return_if_fail(PURPLE_IS_BLIST_NODE(node));
g_return_if_fail(key != NULL);
+ priv = purple_blist_node_get_instance_private(node);
+ g_return_if_fail(priv->settings != NULL);
+
value = purple_value_new(G_TYPE_STRING);
g_value_set_string(value, data);
@@ -278,14 +285,15 @@ purple_blist_node_set_string(PurpleBlistNode* node, const char *key, const char
const char *
purple_blist_node_get_string(PurpleBlistNode* node, const char *key)
{
+ PurpleBlistNodePrivate *priv = NULL;
GValue *value;
- PurpleBlistNodePrivate *priv =
- purple_blist_node_get_instance_private(node);
- g_return_val_if_fail(priv != NULL, NULL);
- g_return_val_if_fail(priv->settings != NULL, NULL);
+ g_return_val_if_fail(PURPLE_IS_BLIST_NODE(node), NULL);
g_return_val_if_fail(key != NULL, NULL);
+ priv = purple_blist_node_get_instance_private(node);
+ g_return_val_if_fail(priv->settings != NULL, NULL);
+
value = g_hash_table_lookup(priv->settings, key);
if (value == NULL)