tools/gst-inspect.c: Save approx. 400 1 byte allocs when printing. Use API to acces...
authorStefan Kost <ensonic@users.sourceforge.net>
Mon, 15 Oct 2007 07:11:04 +0000 (07:11 +0000)
committerStefan Kost <ensonic@users.sourceforge.net>
Mon, 15 Oct 2007 07:11:04 +0000 (07:11 +0000)
Original commit message from CVS:
* tools/gst-inspect.c:
Save approx. 400 1 byte allocs when printing. Use API to acces element
details.
* tools/gst-run.c:
Avoid a strdup.
* tools/gst-xmlinspect.c:
Use API to acces element details.

ChangeLog
tools/gst-inspect.c
tools/gst-run.c
tools/gst-xmlinspect.c

index b3ad7d4..ef2a3dc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
 2007-10-15  Stefan Kost  <ensonic@users.sf.net>
 
+       * tools/gst-inspect.c:
+         Save approx. 400 1 byte allocs when printing. Use API to acces element
+         details.
+
+       * tools/gst-run.c:
+         Avoid a strdup.
+
+       * tools/gst-xmlinspect.c:
+         Use API to acces element details.
+
+2007-10-15  Stefan Kost  <ensonic@users.sf.net>
+
        * gst/gstinfo.c:
          Fix some spelling errors.
 
index ef13256..7e86ae2 100644 (file)
@@ -33,7 +33,7 @@
 #include <locale.h>
 #include <glib/gprintf.h>
 
-static char *_name;
+static char *_name = NULL;
 
 static int print_element_info (GstElementFactory * factory,
     gboolean print_names);
@@ -246,14 +246,19 @@ print_interfaces (GType type)
 
   if (ifaces) {
     if (n_ifaces) {
-      g_print ("%s", _name);
+      if (_name)
+        g_print (_name);
       g_print (_("Implemented Interfaces:\n"));
       iface = ifaces;
       while (*iface) {
-        g_print ("%s  %s\n", _name, g_type_name (*iface));
+        if (_name)
+          g_print (_name);
+        g_print ("  %s\n", g_type_name (*iface));
         iface++;
       }
-      g_print ("%s\n", _name);
+      if (_name)
+        g_print (_name);
+      g_print ("\n");
       g_free (ifaces);
     }
   }
@@ -288,19 +293,25 @@ print_element_properties_info (GstElement * element)
     if (param->flags & G_PARAM_READABLE) {
       g_object_get_property (G_OBJECT (element), param->name, &value);
       readable = TRUE;
-      g_print ((first_flag ? "" : ", "));
+      if (!first_flag)
+        g_print (", ");
+      else
+        first_flag = FALSE;
       g_print (_("readable"));
-      first_flag = FALSE;
     }
     if (param->flags & G_PARAM_WRITABLE) {
-      g_print ((first_flag ? "" : ", "));
+      if (!first_flag)
+        g_print (", ");
+      else
+        first_flag = FALSE;
       g_print (_("writable"));
-      first_flag = FALSE;
     }
     if (param->flags & GST_PARAM_CONTROLLABLE) {
-      g_print ((first_flag ? "" : ", "));
+      if (!first_flag)
+        g_print (", ");
+      else
+        first_flag = FALSE;
       g_print (_("controllable"));
-      first_flag = FALSE;
     }
     n_print ("\n");
 
@@ -456,9 +467,11 @@ print_element_properties_info (GstElement * element)
 
           j = 0;
           while (values[j].value_name) {
-            g_print ("\n%s%-23.23s    (%d): %-16s - %s", "",
-                _name, values[j].value, values[j].value_nick,
-                values[j].value_name);
+            g_print ("\n");
+            if (_name)
+              g_print (_name);
+            g_print ("%-23.23s    (%d): %-16s - %s", "",
+                values[j].value, values[j].value_nick, values[j].value_name);
             j++;
           }
           /* g_type_class_unref (ec); */
@@ -488,9 +501,11 @@ print_element_properties_info (GstElement * element)
 
           j = 0;
           while (values[j].value_name) {
-            g_print ("\n%s%-23.23s    (0x%08x): %-16s - %s", "",
-                _name, values[j].value, values[j].value_nick,
-                values[j].value_name);
+            g_print ("\n");
+            if (_name)
+              g_print (_name);
+            g_print ("%-23.23s    (0x%08x): %-16s - %s", "",
+                values[j].value, values[j].value_nick, values[j].value_name);
             j++;
           }
 
@@ -795,21 +810,25 @@ print_signal_info (GstElement * element)
           g_type_name (query->return_type), g_type_name (type));
 
       for (j = 0; j < query->n_params; j++) {
+        if (_name)
+          g_print (_name);
         if (G_TYPE_IS_FUNDAMENTAL (query->param_types[j])) {
-          g_print (",\n%s%s%s arg%d", _name, indent,
+          g_print (",\n%s%s arg%d", indent,
               g_type_name (query->param_types[j]), j);
         } else if (G_TYPE_IS_ENUM (query->param_types[j])) {
-          g_print (",\n%s%s%s arg%d", _name, indent,
+          g_print (",\n%s%s arg%d", indent,
               g_type_name (query->param_types[j]), j);
         } else {
-          g_print (",\n%s%s%s* arg%d", _name, indent,
+          g_print (",\n%s%s* arg%d", indent,
               g_type_name (query->param_types[j]), j);
         }
       }
 
-      if (k == 0)
-        g_print (",\n%s%sgpointer user_data);\n", _name, indent);
-      else
+      if (k == 0) {
+        if (_name)
+          g_print (_name);
+        g_print (",\n%sgpointer user_data);\n", indent);
+      } else
         g_print (");\n");
 
       g_free (indent);
@@ -874,7 +893,8 @@ print_element_list (gboolean print_all)
           print_element_info (factory, TRUE);
         else
           g_print ("%s:  %s: %s\n", plugin->desc.name,
-              GST_PLUGIN_FEATURE_NAME (factory), factory->details.longname);
+              GST_PLUGIN_FEATURE_NAME (factory),
+              gst_element_factory_get_longname (factory));
       }
 #ifndef GST_DISABLE_INDEX
       else if (GST_IS_INDEX_FACTORY (feature)) {
@@ -970,7 +990,7 @@ print_plugin_features (GstPlugin * plugin)
 
       factory = GST_ELEMENT_FACTORY (feature);
       n_print ("  %s: %s\n", GST_PLUGIN_FEATURE_NAME (factory),
-          factory->details.longname);
+          gst_element_factory_get_longname (factory));
       num_elements++;
     }
 #ifndef GST_DISABLE_INDEX
@@ -1071,7 +1091,7 @@ print_element_info (GstElementFactory * factory, gboolean print_names)
   if (print_names)
     _name = g_strdup_printf ("%s: ", GST_PLUGIN_FEATURE (factory)->name);
   else
-    _name = "";
+    _name = NULL;
 
   print_factory_details_info (factory);
   if (GST_PLUGIN_FEATURE (factory)->plugin_name) {
index a34f0e7..36445d7 100644 (file)
@@ -220,10 +220,14 @@ get_candidates (const gchar * dir, const gchar * base)
   g_free (pattern);
 
   /* get all dirs from the path and prepend with given dir */
-  path = g_strdup_printf ("%s%c%s",
-      dir, G_SEARCHPATH_SEPARATOR, g_getenv ("PATH"));
+  if (dir)
+    path = g_strdup_printf ("%s%c%s",
+        dir, G_SEARCHPATH_SEPARATOR, g_getenv ("PATH"));
+  else
+    path = (gchar *) g_getenv ("PATH");
   dirs = g_strsplit (path, G_SEARCHPATH_SEPARATOR_S, 0);
-  g_free (path);
+  if (dir)
+    g_free (path);
 
   /* check all of these in reverse order by winding to bottom and going up  */
   cur = &dirs[0];
index 8d41c41..078f2b5 100644 (file)
@@ -634,7 +634,8 @@ print_element_list (void)
 
         factory = GST_ELEMENT_FACTORY (feature);
         g_print ("%s:  %s: %s\n", plugin->desc.name,
-            GST_PLUGIN_FEATURE_NAME (factory), factory->details.longname);
+            GST_PLUGIN_FEATURE_NAME (factory),
+            gst_element_factory_get_longname (factory));
       }
 #ifndef GST_DISABLE_INDEX
       else if (GST_IS_INDEX_FACTORY (feature)) {
@@ -705,7 +706,7 @@ print_plugin_info (GstPlugin * plugin)
 
       factory = GST_ELEMENT_FACTORY (feature);
       g_print ("  %s: %s\n", GST_OBJECT_NAME (factory),
-          factory->details.longname);
+          gst_element_factory_get_longname (factory));
       num_elements++;
     }
 #ifndef GST_DISABLE_INDEX