do less work

epel9
Matthias Clasen 16 years ago
parent 8ec9ef74a2
commit a8ac0cba92

@ -7,7 +7,7 @@
Summary: A process-transparent configuration system
Name: GConf2
Version: 2.25.2
Release: 2%{?dist}
Release: 3%{?dist}
License: LGPLv2+
Group: System Environment/Base
Source: http://download.gnome.org/sources/GConf/2.25/GConf-%{version}.tar.bz2
@ -32,6 +32,7 @@ Requires: dbus
Requires: /usr/bin/killall
Patch0: GConf-2.18.0.1-reload.patch
Patch1: gconf-less-work.patch
%description
GConf is a process-transparent configuration database API used to
@ -67,6 +68,7 @@ which require GTK+.
%prep
%setup -q -n GConf-%{version}
%patch0 -p1 -b .reload
%patch1 -p1 -b .less-work
%build
%configure --disable-static --enable-defaults-service
@ -141,6 +143,9 @@ fi
%{_libdir}/pkgconfig/*
%changelog
* Tue Mar 3 2009 Matthias Clasen <mclasen@redhat.com> - 2.25.2-2
- Avoid some gratitious extra work in the markup backend
* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.25.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

@ -0,0 +1,82 @@
diff -up GConf-2.25.2/backends/markup-tree.c.less-work GConf-2.25.2/backends/markup-tree.c
--- GConf-2.25.2/backends/markup-tree.c.less-work 2009-02-16 19:15:19.000000000 -0500
+++ GConf-2.25.2/backends/markup-tree.c 2009-03-03 23:14:07.741320798 -0500
@@ -2167,51 +2167,40 @@ locate_attributes (GMarkupParseContext *
retval = TRUE;
- i = 0;
- while (attribute_names[i])
+ for (i = 0; attribute_names[i]; i++)
{
int j;
- gboolean found;
- found = FALSE;
- j = 0;
- while (j < n_attrs)
+ for (j = 0; j < n_attrs; j++)
{
+ /* already matched */
+ if (attrs[j].name == NULL)
+ continue;
+
if (strcmp (attrs[j].name, attribute_names[i]) == 0)
{
retloc = attrs[j].retloc;
+ attrs[j].name = NULL;
- if (*retloc != NULL)
- {
- set_error (error, context,
- GCONF_ERROR_PARSE_ERROR,
- _("Attribute \"%s\" repeated twice on the same <%s> element"),
- attrs[j].name, element_name);
- retval = FALSE;
- goto out;
- }
+ /* if this fails we passed the same retloc twice */
+ g_assert (*retloc == NULL);
*retloc = attribute_values[i];
- found = TRUE;
+ break;
}
-
- ++j;
}
- if (!found)
+ if (j >= n_attrs)
{
set_error (error, context,
GCONF_ERROR_PARSE_ERROR,
- _("Attribute \"%s\" is invalid on <%s> element in this context"),
+ _("Attribute \"%s\" is invalid, or duplicated on <%s> element in this context"),
attribute_names[i], element_name);
retval = FALSE;
- goto out;
+ break;
}
-
- ++i;
}
- out:
return retval;
}
@@ -3494,10 +3483,9 @@ all_whitespace (const char *text,
while (p != end)
{
- if (!g_ascii_isspace (*p))
- return FALSE;
-
- p = g_utf8_next_char (p);
+ if (G_UNLIKELY (*p != ' ' && *p != '\t' && *p != '\n' && *p != '\r'))
+ return FALSE;
+ p++;
}
return TRUE;
Loading…
Cancel
Save