info: only open log file when adding it to the log function

This avoids the leak of opening it and then not passing it or closing it
before it goes out of scope.
This commit is contained in:
Luis de Bethencourt 2016-03-31 11:46:03 +01:00
parent c32ea3cb58
commit 1bb699446a

View file

@ -299,20 +299,24 @@ _priv_gst_debug_init (void)
const gchar *env;
FILE *log_file;
env = g_getenv ("GST_DEBUG_FILE");
if (env != NULL && *env != '\0') {
if (strcmp (env, "-") == 0) {
log_file = stdout;
} else {
log_file = g_fopen (env, "w");
if (log_file == NULL) {
g_printerr ("Could not open log file '%s' for writing: %s\n", env,
g_strerror (errno));
log_file = stderr;
if (add_default_log_func) {
env = g_getenv ("GST_DEBUG_FILE");
if (env != NULL && *env != '\0') {
if (strcmp (env, "-") == 0) {
log_file = stdout;
} else {
log_file = g_fopen (env, "w");
if (log_file == NULL) {
g_printerr ("Could not open log file '%s' for writing: %s\n", env,
g_strerror (errno));
log_file = stderr;
}
}
} else {
log_file = stderr;
}
} else {
log_file = stderr;
gst_debug_add_log_function (gst_debug_log_default, log_file, NULL);
}
__gst_printf_pointer_extension_set_func
@ -324,9 +328,6 @@ _priv_gst_debug_init (void)
_GST_CAT_DEBUG = _gst_debug_category_new ("GST_DEBUG",
GST_DEBUG_BOLD | GST_DEBUG_FG_YELLOW, "debugging subsystem");
if (add_default_log_func)
gst_debug_add_log_function (gst_debug_log_default, log_file, NULL);
/* FIXME: add descriptions here */
GST_CAT_GST_INIT = _gst_debug_category_new ("GST_INIT",
GST_DEBUG_BOLD | GST_DEBUG_FG_RED, NULL);