summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2011-05-10 02:08:58 +0200
committerDenys Vlasenko <dvlasenk@redhat.com>2011-05-10 02:08:58 +0200
commitc9120cdc51ce7aba5a19500bf24692144ac64983 (patch)
tree0ea3eea23f1f68bca3b40e50e64616e7885b5d75 /src/lib
parent752b264ed8b08a59e60894b310bad522585674e9 (diff)
downloadabrt-c9120cdc51ce7aba5a19500bf24692144ac64983.tar.gz
abrt-c9120cdc51ce7aba5a19500bf24692144ac64983.tar.xz
abrt-c9120cdc51ce7aba5a19500bf24692144ac64983.zip
Do away with reanalyze events
Now code determines whether analyze event can be skipped by looking at <creates-elements>backtrace</creates-elements> element in .xml file. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/event_config.c1
-rw-r--r--src/lib/event_xml_parser.c12
2 files changed, 11 insertions, 2 deletions
diff --git a/src/lib/event_config.c b/src/lib/event_config.c
index 66f9beba..9f48af54 100644
--- a/src/lib/event_config.c
+++ b/src/lib/event_config.c
@@ -55,6 +55,7 @@ void free_event_config(event_config_t *p)
//free(p->action);
free(p->description);
free(p->long_descr);
+ free(p->creates_elements);
for (opt = p->options; opt; opt = opt->next)
free_event_option(opt->data);
g_list_free(p->options);
diff --git a/src/lib/event_xml_parser.c b/src/lib/event_xml_parser.c
index 17e8a72e..30c0ee31 100644
--- a/src/lib/event_xml_parser.c
+++ b/src/lib/event_xml_parser.c
@@ -25,6 +25,7 @@
#define LONG_DESCR_ELEMENT "long-description"
#define ALLOW_EMPTY_ELEMENT "allow-empty"
#define NOTE_HTML_ELEMENT "note-html"
+#define CREATES_ELEMENT "creates-elements"
#define OPTION_ELEMENT "option"
//#define ACTION_ELEMENT "action"
#define NAME_ELEMENT "name"
@@ -297,11 +298,18 @@ static void text(GMarkupParseContext *context,
if (strcmp(inner_element, ACTION_ELEMENT) == 0)
{
VERB2 log("action description:'%s'", text_copy);
- free(ui->eo_action);
- ui->eo_action = text_copy;
+ free(ui->action);
+ ui->action = text_copy;
return;
}
*/
+ if (strcmp(inner_element, CREATES_ELEMENT) == 0)
+ {
+ VERB2 log("creates_elements:'%s'", text_copy);
+ free(ui->creates_elements);
+ ui->creates_elements = text_copy;
+ return;
+ }
if (strcmp(inner_element, NAME_ELEMENT) == 0)
{
if (parse_data->attribute_lang != NULL) /* if it isn't for other locale */