summaryrefslogtreecommitdiff
path: root/gtk/gtkrc.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2006-04-03 04:17:10 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2006-04-03 04:17:10 +0000
commite40a3b0e3bbe801a4c14f7dad5b2f0cfea2d95a6 (patch)
treef29e0618ea0983f15231b64e0dd498848755a5c0 /gtk/gtkrc.c
parent168e2d2590d51e229692253c9e231e1c40a64d68 (diff)
downloadgtk+-e40a3b0e3bbe801a4c14f7dad5b2f0cfea2d95a6.tar.gz
Allocate the gtk_rc_default_files array dynamically.
2006-04-03 Matthias Clasen <mclasen@redhat.com> * gtk/gtkrc.c (gtk_rc_add_initial_default_files) (gtk_rc_add_default_file): Allocate the gtk_rc_default_files array dynamically.
Diffstat (limited to 'gtk/gtkrc.c')
-rw-r--r--gtk/gtkrc.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/gtk/gtkrc.c b/gtk/gtkrc.c
index e62bd3fbed..69103a1678 100644
--- a/gtk/gtkrc.c
+++ b/gtk/gtkrc.c
@@ -365,8 +365,8 @@ static GHashTable *realized_style_ht = NULL;
static gchar *im_module_file = NULL;
-#define GTK_RC_MAX_DEFAULT_FILES 128
-static gchar *gtk_rc_default_files[GTK_RC_MAX_DEFAULT_FILES];
+static gint max_default_files = 0;
+static gchar **gtk_rc_default_files = NULL;
/* A stack of information of RC files we are parsing currently.
* The directories for these files are implicitely added to the end of
@@ -493,7 +493,10 @@ gtk_rc_add_initial_default_files (void)
if (init)
return;
-
+
+ gtk_rc_default_files = g_new (gchar*, 10);
+ max_default_files = 10;
+
gtk_rc_default_files[0] = NULL;
init = TRUE;
@@ -501,7 +504,7 @@ gtk_rc_add_initial_default_files (void)
if (var)
{
- files = g_strsplit (var, G_SEARCHPATH_SEPARATOR_S, 128);
+ files = g_strsplit (var, G_SEARCHPATH_SEPARATOR_S, -1);
i=0;
while (files[i])
{
@@ -543,9 +546,17 @@ gtk_rc_add_default_file (const gchar *filename)
gtk_rc_add_initial_default_files ();
- for (n = 0; gtk_rc_default_files[n]; n++) ;
- if (n >= GTK_RC_MAX_DEFAULT_FILES - 1)
- return;
+ for (n = 0; n < max_default_files; n++)
+ {
+ if (gtk_rc_default_files[n] == NULL)
+ break;
+ }
+
+ if (n == max_default_files)
+ {
+ max_default_files += 10;
+ gtk_rc_default_files = g_renew (gchar*, gtk_rc_default_files, max_default_files);
+ }
gtk_rc_default_files[n++] = g_strdup (filename);
gtk_rc_default_files[n] = NULL;