[Xfce4-commits] <xfce4-weather-plugin:master> Add make_timeslice() helper function.
Harald Judt
noreply at xfce.org
Sun Dec 9 23:44:13 CET 2012
Updating branch refs/heads/master
to bb9cc2acb6f9038d3af9fa60677324607485b1c2 (commit)
from 189bb0d6f014fafdaadb0f6b5e45ca395d37ae61 (commit)
commit bb9cc2acb6f9038d3af9fa60677324607485b1c2
Author: Harald Judt <h.judt at gmx.at>
Date: Sun Dec 9 19:24:25 2012 +0100
Add make_timeslice() helper function.
panel-plugin/weather-parsers.c | 25 ++++++++++++++++++++-----
panel-plugin/weather-parsers.h | 2 ++
2 files changed, 22 insertions(+), 5 deletions(-)
diff --git a/panel-plugin/weather-parsers.c b/panel-plugin/weather-parsers.c
index 187ef3d..f51b5f3 100644
--- a/panel-plugin/weather-parsers.c
+++ b/panel-plugin/weather-parsers.c
@@ -198,6 +198,24 @@ parse_location(xmlNode *cur_node,
}
+xml_time *
+make_timeslice(void)
+{
+ xml_time *timeslice;
+
+ timeslice = g_slice_new0(xml_time);
+ if (G_UNLIKELY(timeslice == NULL))
+ return NULL;
+
+ timeslice->location = g_slice_new0(xml_location);
+ if (G_UNLIKELY(timeslice->location == NULL)) {
+ g_slice_free(xml_time, timeslice);
+ return NULL;
+ }
+ return timeslice;
+}
+
+
static void
parse_time(xmlNode *cur_node,
xml_weather *wd)
@@ -228,7 +246,7 @@ parse_time(xmlNode *cur_node,
/* look for existing timeslice or add a new one */
timeslice = get_timeslice(wd, start_t, end_t);
if (! timeslice) {
- timeslice = g_slice_new0(xml_time);
+ timeslice = make_timeslice();
if (G_UNLIKELY(!timeslice))
return;
timeslice->start = start_t;
@@ -238,11 +256,8 @@ parse_time(xmlNode *cur_node,
for (child_node = cur_node->children; child_node;
child_node = child_node->next)
- if (G_LIKELY(NODE_IS_TYPE(child_node, "location"))) {
- if (timeslice->location == NULL)
- timeslice->location = g_slice_new0(xml_location);
+ if (G_LIKELY(NODE_IS_TYPE(child_node, "location")))
parse_location(child_node, timeslice->location);
- }
}
diff --git a/panel-plugin/weather-parsers.h b/panel-plugin/weather-parsers.h
index bd377eb..a7c8fd6 100644
--- a/panel-plugin/weather-parsers.h
+++ b/panel-plugin/weather-parsers.h
@@ -121,6 +121,8 @@ typedef struct {
} xml_timezone;
+xml_time *make_timeslice(void);
+
void parse_weather(xmlNode *cur_node,
xml_weather *wd);
More information about the Xfce4-commits
mailing list