plugin: avoid some relocations

This commit is contained in:
Tim-Philipp Müller 2012-04-29 20:06:38 +01:00
parent 4889fd6b6f
commit f5918f7605

View file

@ -90,18 +90,17 @@ static char *_gst_plugin_fault_handler_filename = NULL;
* MIT/X11: http://www.opensource.org/licenses/mit-license.php * MIT/X11: http://www.opensource.org/licenses/mit-license.php
* 3-clause BSD: http://www.opensource.org/licenses/bsd-license.php * 3-clause BSD: http://www.opensource.org/licenses/bsd-license.php
*/ */
static const gchar *const valid_licenses[] = { static const gchar valid_licenses[] = "LGPL\000" /* GNU Lesser General Public License */
"LGPL", /* GNU Lesser General Public License */ "GPL\000" /* GNU General Public License */
"GPL", /* GNU General Public License */ "QPL\000" /* Trolltech Qt Public License */
"QPL", /* Trolltech Qt Public License */ "GPL/QPL\000" /* Combi-license of GPL + QPL */
"GPL/QPL", /* Combi-license of GPL + QPL */ "MPL\000" /* MPL 1.1 license */
"MPL", /* MPL 1.1 license */ "BSD\000" /* 3-clause BSD license */
"BSD", /* 3-clause BSD license */ "MIT/X11\000" /* MIT/X11 license */
"MIT/X11", /* MIT/X11 license */ "Proprietary\000" /* Proprietary license */
"Proprietary", /* Proprietary license */ GST_LICENSE_UNKNOWN; /* some other license */
GST_LICENSE_UNKNOWN, /* some other license */
NULL static const guint8 valid_licenses_idx[] = { 0, 5, 9, 13, 21, 25, 29, 37, 49 };
};
static GstPlugin *gst_plugin_register_func (GstPlugin * plugin, static GstPlugin *gst_plugin_register_func (GstPlugin * plugin,
const GstPluginDesc * desc, gpointer user_data); const GstPluginDesc * desc, gpointer user_data);
@ -460,14 +459,11 @@ priv_gst_plugin_loading_get_whitelist_hash (void)
static gboolean static gboolean
gst_plugin_check_license (const gchar * license) gst_plugin_check_license (const gchar * license)
{ {
const gchar *const *check_license = valid_licenses; gint i;
g_assert (check_license); for (i = 0; i < G_N_ELEMENTS (valid_licenses_idx); ++i) {
if (strcmp (license, valid_licenses + valid_licenses_idx[i]) == 0)
while (*check_license) {
if (strcmp (license, *check_license) == 0)
return TRUE; return TRUE;
check_license++;
} }
return FALSE; return FALSE;
} }