gtype: Fix pointer being dereferenced despite NULL check

This commit is contained in:
Egor Bychin 2021-10-11 14:26:20 +03:00
parent 7f6ce4d8d2
commit 5419228f63

View File

@ -3159,11 +3159,14 @@ g_type_class_peek_parent (gpointer g_class)
g_return_val_if_fail (g_class != NULL, NULL); g_return_val_if_fail (g_class != NULL, NULL);
node = lookup_type_node_I (G_TYPE_FROM_CLASS (g_class)); node = lookup_type_node_I (G_TYPE_FROM_CLASS (g_class));
g_return_val_if_fail (node != NULL, NULL);
/* We used to acquire a read lock here. That is not necessary, since /* We used to acquire a read lock here. That is not necessary, since
* parent->data->class.class is constant as long as the derived class * parent->data->class.class is constant as long as the derived class
* exists. * exists.
*/ */
if (node && node->is_classed && node->data && NODE_PARENT_TYPE (node)) if (node->is_classed && node->data && NODE_PARENT_TYPE (node))
{ {
node = lookup_type_node_I (NODE_PARENT_TYPE (node)); node = lookup_type_node_I (NODE_PARENT_TYPE (node));
class = node->data->class.class; class = node->data->class.class;