[glib: 1/17] gkeyfile: Make various parsing variables const
- From: Sebastian Dröge <sdroege src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib: 1/17] gkeyfile: Make various parsing variables const
- Date: Tue, 2 Nov 2021 11:08:16 +0000 (UTC)
commit 46fe9639b9a2906bd95c9b048994912810860f17
Author: Philip Withnall <pwithnall endlessos org>
Date: Sun Mar 14 13:45:55 2021 +0000
gkeyfile: Make various parsing variables const
All these `gchar *`s are used as moving pointers into strings, being
incremented as the strings are parsed. They are never modified, so can
be `const`. This doesn’t speed anything up, but does allow removing some
casts and slightly improving type safety.
Signed-off-by: Philip Withnall <pwithnall endlessos org>
glib/gkeyfile.c | 36 ++++++++++++++++++++----------------
1 file changed, 20 insertions(+), 16 deletions(-)
---
diff --git a/glib/gkeyfile.c b/glib/gkeyfile.c
index 17cf85660..c9de2ab23 100644
--- a/glib/gkeyfile.c
+++ b/glib/gkeyfile.c
@@ -745,9 +745,10 @@ find_file_in_data_dirs (const gchar *file,
while (data_dirs && (data_dir = *data_dirs) && fd == -1)
{
- gchar *candidate_file, *sub_dir;
+ const gchar *candidate_file;
+ gchar *sub_dir;
- candidate_file = (gchar *) file;
+ candidate_file = file;
sub_dir = g_strdup ("");
while (candidate_file != NULL && fd == -1)
{
@@ -1256,12 +1257,12 @@ g_key_file_parse_line (GKeyFile *key_file,
GError **error)
{
GError *parse_error = NULL;
- gchar *line_start;
+ const gchar *line_start;
g_return_if_fail (key_file != NULL);
g_return_if_fail (line != NULL);
- line_start = (gchar *) line;
+ line_start = line;
while (g_ascii_isspace (*line_start))
line_start++;
@@ -4149,12 +4150,12 @@ g_key_file_line_is_comment (const gchar *line)
static gboolean
g_key_file_is_group_name (const gchar *name)
{
- gchar *p, *q;
+ const gchar *p, *q;
if (name == NULL)
return FALSE;
- p = q = (gchar *) name;
+ p = q = name;
while (*q && *q != ']' && *q != '[' && !g_ascii_iscntrl (*q))
q = g_utf8_find_next_char (q, NULL);
@@ -4167,12 +4168,13 @@ g_key_file_is_group_name (const gchar *name)
static gboolean
g_key_file_is_key_name (const gchar *name)
{
- gchar *p, *q;
+ const gchar *p, *q;
if (name == NULL)
return FALSE;
- p = q = (gchar *) name;
+ p = q = name;
+
/* We accept a little more than the desktop entry spec says,
* since gnome-vfs uses mime-types as keys in its cache.
*/
@@ -4215,9 +4217,9 @@ g_key_file_is_key_name (const gchar *name)
static gboolean
g_key_file_line_is_group (const gchar *line)
{
- gchar *p;
+ const gchar *p;
- p = (gchar *) line;
+ p = line;
if (*p != '[')
return FALSE;
@@ -4243,9 +4245,9 @@ g_key_file_line_is_group (const gchar *line)
static gboolean
g_key_file_line_is_key_value_pair (const gchar *line)
{
- gchar *p;
+ const gchar *p;
- p = (gchar *) g_utf8_strchr (line, -1, '=');
+ p = g_utf8_strchr (line, -1, '=');
if (!p)
return FALSE;
@@ -4264,11 +4266,12 @@ g_key_file_parse_value_as_string (GKeyFile *key_file,
GSList **pieces,
GError **error)
{
- gchar *string_value, *p, *q0, *q;
+ gchar *string_value, *q0, *q;
+ const gchar *p;
string_value = g_new (gchar, strlen (value) + 1);
- p = (gchar *) value;
+ p = value;
q0 = q = string_value;
while (*p)
{
@@ -4363,7 +4366,8 @@ g_key_file_parse_string_as_value (GKeyFile *key_file,
const gchar *string,
gboolean escape_separator)
{
- gchar *value, *p, *q;
+ gchar *value, *q;
+ const gchar *p;
gsize length;
gboolean parsing_leading_space;
@@ -4374,7 +4378,7 @@ g_key_file_parse_string_as_value (GKeyFile *key_file,
*/
value = g_new (gchar, 2 * length);
- p = (gchar *) string;
+ p = string;
q = value;
parsing_leading_space = TRUE;
while (p < (string + length - 1))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]