summaryrefslogtreecommitdiff
path: root/gst/gstparse.c
diff options
context:
space:
mode:
authorMarc-Andre Lureau <marcandre.lureau@gmail.com>2007-04-18 12:34:51 +0000
committerSebastian Dröge <slomo@circular-chaos.org>2007-04-18 12:34:51 +0000
commit7a3a27d0c15b7597c84c03eea32e7c973b036a53 (patch)
tree72e5811856d1055707f9d752645b545093ea8907 /gst/gstparse.c
parentfdbd97497ffa19fc01cf043ec50432cf60e24950 (diff)
gst/parse/: Make the parser reentrant and recursively callable. This requires flex >= 2.5.31, for older versions preg...
Original commit message from CVS: Patch by: Marc-Andre Lureau <marcandre dot lureau at gmail dot com> * gst/parse/Makefile.am: * gst/parse/grammar.y: * gst/parse/parse.l: Make the parser reentrant and recursively callable. This requires flex >= 2.5.31, for older versions pregenerated sources are used as we can't bump the build dependency. Finally fixes #349180. * gst/gstparse.c: (gst_parse_launch): Drop the HAVE_MT_SAVE_FLEX #ifdefs as we always use a new enough flex now anyway. * docs/gst/Makefile.am: * docs/gst/Makefile.am: * gst/parse/grammar.tab.pre.c: (__gst_parse_strdup), (__gst_parse_strfree), (__gst_parse_link_new), (__gst_parse_link_free), (__gst_parse_chain_new), (__gst_parse_chain_free), (SET_ERROR), (YYPRINTF), (gst_parse_element_set), (gst_parse_free_link), (gst_parse_found_pad), (gst_parse_perform_delayed_link), (gst_parse_perform_link), (yytnamerr), (yysyntax_error), (yyerror), (_gst_parse_launch): * gst/parse/grammar.tab.pre.h: * gst/parse/lex._gst_parse_yy.pre.c: (PRINT), (yy_get_next_buffer), (yy_get_previous_state), (yy_try_NUL_trans), (input), (_gst_parse_yyrestart), (_gst_parse_yy_switch_to_buffer), (_gst_parse_yy_load_buffer_state), (_gst_parse_yy_create_buffer), (_gst_parse_yy_delete_buffer), (_gst_parse_yy_init_buffer), (_gst_parse_yy_flush_buffer), (_gst_parse_yypush_buffer_state), (_gst_parse_yypop_buffer_state), (_gst_parse_yyensure_buffer_stack), (_gst_parse_yy_scan_buffer), (_gst_parse_yy_scan_string), (_gst_parse_yy_scan_bytes), (yy_fatal_error), (_gst_parse_yyget_extra), (_gst_parse_yyget_lineno), (_gst_parse_yyget_column), (_gst_parse_yyget_in), (_gst_parse_yyget_out), (_gst_parse_yyget_leng), (_gst_parse_yyget_text), (_gst_parse_yyset_extra), (_gst_parse_yyset_lineno), (_gst_parse_yyset_column), (_gst_parse_yyset_in), (_gst_parse_yyset_out), (_gst_parse_yyget_debug), (_gst_parse_yyset_debug), (_gst_parse_yyget_lval), (_gst_parse_yyset_lval), (_gst_parse_yylex_init), (yy_init_globals), (_gst_parse_yylex_destroy), (yy_flex_strncpy), (yy_flex_strlen), (_gst_parse_yyalloc), (_gst_parse_yyrealloc), (_gst_parse_yyfree): If the installed flex version is too old use pre-generated parser sources. These pre-generated parser sources are always updated when the actual flex/bison sources change but require everybody who wants to change something in the parser to have flex >= 2.5.31 installed.
Diffstat (limited to 'gst/gstparse.c')
-rw-r--r--gst/gstparse.c27
1 files changed, 0 insertions, 27 deletions
diff --git a/gst/gstparse.c b/gst/gstparse.c
index 705e6806d..8bcb5260c 100644
--- a/gst/gstparse.c
+++ b/gst/gstparse.c
@@ -36,12 +36,6 @@
#include "gstparse.h"
#include "gstinfo.h"
-#ifndef HAVE_MT_SAVE_FLEX
-/* the need for the mutex will go away with flex 2.5.6 */
-static gboolean flex_busy = FALSE;
-static GStaticRecMutex flex_lock = G_STATIC_REC_MUTEX_INIT;
-#endif
-
extern GstElement *_gst_parse_launch (const gchar *, GError **);
/**
@@ -149,30 +143,9 @@ gst_parse_launch (const gchar * pipeline_description, GError ** error)
GST_CAT_INFO (GST_CAT_PIPELINE, "parsing pipeline description %s",
pipeline_description);
-#ifndef HAVE_MT_SAVE_FLEX
- g_static_rec_mutex_lock (&flex_lock);
- if (flex_busy)
- goto recursive_call;
- flex_busy = TRUE;
-#endif
-
element = _gst_parse_launch (pipeline_description, error);
-#ifndef HAVE_MT_SAVE_FLEX
- flex_busy = FALSE;
- g_static_rec_mutex_unlock (&flex_lock);
-#endif
-
return element;
/* ERRORS */
-#ifndef HAVE_MT_SAVE_FLEX
-recursive_call:
- {
- GST_WARNING ("calls to gst_parse_launch() cannot be nested");
- g_static_rec_mutex_unlock (&flex_lock);
- g_warning ("calls to gst_parse_launch() cannot be nested");
- return NULL;
- }
-#endif
}