gst/gstformat.c: Don't segfault on invalid formats.
authorWim Taymans <wim.taymans@gmail.com>
Tue, 14 Mar 2006 19:16:45 +0000 (19:16 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Tue, 14 Mar 2006 19:16:45 +0000 (19:16 +0000)
Original commit message from CVS:
* gst/gstformat.c: (gst_format_get_name), (gst_format_to_quark):
Don't segfault on invalid formats.

ChangeLog
gst/gstformat.c

index 7afca8f..e17dd10 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-03-14  Wim Taymans  <wim@fluendo.com>
+
+       * gst/gstformat.c: (gst_format_get_name), (gst_format_to_quark):
+         Don't segfault on invalid formats.
+
 2006-03-14  Tim-Philipp Müller  <tim at centricular dot net>
 
        * libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times):
index 4153678..3d0acad 100644 (file)
@@ -81,16 +81,21 @@ _gst_format_initialize (void)
  *
  * Get a printable name for the given format. Do not modify or free.
  *
- * Returns: a reference to the static name of the format.
+ * Returns: a reference to the static name of the format or NULL if
+ * the format is unknown.
  */
 const gchar *
 gst_format_get_name (GstFormat format)
 {
   const GstFormatDefinition *def;
+  const gchar *result;
 
-  def = gst_format_get_details (format);
+  if ((def = gst_format_get_details (format)) != NULL)
+    result = def->nick;
+  else
+    result = NULL;
 
-  return def->nick;
+  return result;
 }
 
 /**
@@ -99,16 +104,21 @@ gst_format_get_name (GstFormat format)
  *
  * Get the unique quark for the given format.
  *
- * Returns: the quark associated with the format
+ * Returns: the quark associated with the format or 0 if the format
+ * is unknown.
  */
 GQuark
 gst_format_to_quark (GstFormat format)
 {
   const GstFormatDefinition *def;
+  GQuark result;
 
-  def = gst_format_get_details (format);
+  if ((def = gst_format_get_details (format)) != NULL)
+    result = def->quark;
+  else
+    result = 0;
 
-  return def->quark;
+  return result;
 }
 
 /**