From: Garrett Regier Date: Thu, 23 Sep 2021 22:21:53 +0000 (-0700) Subject: builder: Remove root special case from precompile X-Git-Tag: archive/raspbian/4.6.5+ds-1+rpi1~1^2~19^2~5^2~56^2~3 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=9c12b58e3275ebdb79ba5faeda1bd278fe3229e1;p=gtk4.git builder: Remove root special case from precompile --- diff --git a/gtk/gtkbuilderprecompile.c b/gtk/gtkbuilderprecompile.c index ec2741cdf3..b75a0023a7 100644 --- a/gtk/gtkbuilderprecompile.c +++ b/gtk/gtkbuilderprecompile.c @@ -374,27 +374,22 @@ marshal_tree (GString *marshaled, case RECORD_TYPE_ELEMENT: element = (RecordDataElement *)node; - /* Special case the root */ - if (element->parent != NULL) + marshal_uint32 (marshaled, RECORD_TYPE_ELEMENT); + marshal_uint32 (marshaled, element->name->offset); + marshal_uint32 (marshaled, element->n_attributes); + + attr_names = &element->attributes[0]; + attr_values = &element->attributes[element->n_attributes]; + for (i = 0; i < element->n_attributes; i++) { - marshal_uint32 (marshaled, RECORD_TYPE_ELEMENT); - marshal_uint32 (marshaled, element->name->offset); - marshal_uint32 (marshaled, element->n_attributes); - - attr_names = &element->attributes[0]; - attr_values = &element->attributes[element->n_attributes]; - for (i = 0; i < element->n_attributes; i++) - { - marshal_uint32 (marshaled, attr_names[i]->offset); - marshal_uint32 (marshaled, attr_values[i]->offset); - } + marshal_uint32 (marshaled, attr_names[i]->offset); + marshal_uint32 (marshaled, attr_values[i]->offset); } for (l = element->children.head; l != NULL; l = l->next) marshal_tree (marshaled, l->data); - if (element->parent != NULL) - marshal_uint32 (marshaled, RECORD_TYPE_END_ELEMENT); + marshal_uint32 (marshaled, RECORD_TYPE_END_ELEMENT); break; case RECORD_TYPE_TEXT: text = (RecordDataText *)node; @@ -407,6 +402,17 @@ marshal_tree (GString *marshaled, } } +static void +marshal_root (GString *marshaled, + RecordDataNode *node) +{ + GList *l; + RecordDataElement *element = (RecordDataElement *)node; + + for (l = element->children.head; l != NULL; l = l->next) + marshal_tree (marshaled, l->data); +} + /** * _gtk_buildable_parser_precompile: * @text: chunk of text to parse @@ -481,7 +487,7 @@ _gtk_buildable_parser_precompile (const char *text, g_string_append_len (marshaled, s->string, s->len + 1); } - marshal_tree (marshaled, &data.root->base); + marshal_root (marshaled, &data.root->base); record_data_node_free (&data.root->base); g_string_chunk_free (data.chunks);