summaryrefslogtreecommitdiffstats
path: root/src/extension/parameter.cpp
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2006-05-02 05:28:28 +0000
committergouldtj <gouldtj@users.sourceforge.net>2006-05-02 05:28:28 +0000
commit2745dd065553abb1e676823991ba2be0ce25579b (patch)
treeb3cabed6936ca285b9d020f4c1fb5d002e58b02b /src/extension/parameter.cpp
parentr11516@tres: ted | 2006-04-26 21:30:18 -0700 (diff)
downloadinkscape-2745dd065553abb1e676823991ba2be0ce25579b.tar.gz
inkscape-2745dd065553abb1e676823991ba2be0ce25579b.zip
r11517@tres: ted | 2006-04-28 22:20:06 -0700
Moving the extension to be on the upper entry in defs so it is only once. Also optimizing by looking for a Quark. (bzr r687)
Diffstat (limited to 'src/extension/parameter.cpp')
-rw-r--r--src/extension/parameter.cpp19
1 files changed, 6 insertions, 13 deletions
diff --git a/src/extension/parameter.cpp b/src/extension/parameter.cpp
index 9b6d02f17..b407db9a9 100644
--- a/src/extension/parameter.cpp
+++ b/src/extension/parameter.cpp
@@ -515,17 +515,7 @@ Parameter::pref_name (void)
Inkscape::XML::Node *
Parameter::find_child (Inkscape::XML::Node * adult)
{
- Inkscape::XML::Node * retval = NULL;
- for (retval = adult->firstChild();
- retval != NULL;
- retval = retval->next()) {
- gchar const * name = retval->attribute("name");
- if (name == NULL) continue;
- if (!strcmp(name, _name))
- break;
- }
-
- return retval;
+ return sp_repr_lookup_child(adult, "name", _name);
}
Inkscape::XML::Node *
@@ -533,7 +523,6 @@ Parameter::new_child (Inkscape::XML::Node * parent)
{
Inkscape::XML::Node * retval;
retval = sp_repr_new("inkscape:extension-param");
- retval->setAttribute("extension", extension->get_id());
retval->setAttribute("name", _name);
parent->appendChild(retval);
@@ -546,10 +535,13 @@ Parameter::document_param_node (SPDocument * doc)
Inkscape::XML::Node * defs = SP_OBJECT_REPR(SP_DOCUMENT_DEFS(doc));
Inkscape::XML::Node * params = NULL;
+ GQuark const name_quark = g_quark_from_string("inkscape:extension-params");
+
for (Inkscape::XML::Node * child = defs->firstChild();
child != NULL;
child = child->next()) {
- if (!strcmp(child->name(), "inkscape:extension-param")) {
+ if ((GQuark)child->code() == name_quark &&
+ !strcmp(child->attribute("extension"), extension->get_id())) {
params = child;
break;
}
@@ -557,6 +549,7 @@ Parameter::document_param_node (SPDocument * doc)
if (params == NULL) {
params = sp_repr_new("inkscape:extension-param");
+ params->setAttribute("extension", extension->get_id());
defs->appendChild(params);
}