parse: Some minor fixes

Fix destructor segfaulting
Expect 0 grammar-ambiguities
Fix order of bin-properties assignment

https://bugzilla.gnome.org/show_bug.cgi?id=710034
This commit is contained in:
Fabian Kirsch 2014-01-16 12:28:47 +01:00 committed by Sebastian Dröge
parent 1d87a5244c
commit ffe072f694

View file

@ -629,6 +629,9 @@ static int yyerror (void *scanner, graph_t *graph, const char *s);
graph_t *gg; graph_t *gg;
} }
/* No grammar ambiguities expected, FAIL otherwise */
%expect 0
%token <ss> PARSE_URL %token <ss> PARSE_URL
%token <ss> IDENTIFIER %token <ss> IDENTIFIER
%left <ss> REF PADREF BINREF %left <ss> REF PADREF BINREF
@ -644,7 +647,8 @@ static int yyerror (void *scanner, graph_t *graph, const char *s);
%type <pp> morepads pads assignments %type <pp> morepads pads assignments
%destructor { gst_parse_strfree ($$); } <ss> %destructor { gst_parse_strfree ($$); } <ss>
%destructor { gst_parse_free_chain($$); } <cc> %destructor { if($$)
gst_parse_free_chain($$); } <cc>
%destructor { gst_parse_free_link ($$); } <ll> %destructor { gst_parse_free_link ($$); } <ll>
%destructor { gst_parse_free_reference(&($$));} <rr> %destructor { gst_parse_free_reference(&($$));} <rr>
%destructor { gst_object_unref ($$); } <ee> %destructor { gst_object_unref ($$); } <ee>
@ -934,7 +938,7 @@ chainlist: /* NOP */ { $$ = NULL; }
assignments: /* NOP */ { $$ = NULL; } assignments: /* NOP */ { $$ = NULL; }
| assignments ASSIGNMENT { $$ = g_slist_prepend ($1, $2); } | ASSIGNMENT assignments { $$ = g_slist_prepend ($2, $1); }
; ;
binopener: '(' { $$ = gst_parse_strdup(_("bin")); } binopener: '(' { $$ = gst_parse_strdup(_("bin")); }
@ -1144,9 +1148,8 @@ out:
error1: error1:
if (g.chain) { if (g.chain) {
g_slist_foreach (g.chain->elements, (GFunc)gst_object_unref, NULL);
g_slist_free (g.chain->elements);
gst_parse_free_chain (g.chain); gst_parse_free_chain (g.chain);
g.chain=NULL;
} }
g_slist_foreach (g.links, (GFunc)gst_parse_free_link, NULL); g_slist_foreach (g.links, (GFunc)gst_parse_free_link, NULL);