mem leaks

This commit is contained in:
Dana Jansens 2007-05-09 21:26:17 +00:00
parent a97b2f75fb
commit ef4bec071b
2 changed files with 6 additions and 13 deletions

View file

@ -34,22 +34,13 @@
static void measure_font(const RrInstance *inst, RrFont *f) static void measure_font(const RrInstance *inst, RrFont *f)
{ {
PangoFontMetrics *metrics; PangoFontMetrics *metrics;
gchar *locale, *p;
/* get the default language from the locale
(based on gtk_get_default_language in gtkmain.c) */
locale = g_strdup(setlocale(LC_CTYPE, NULL));
if ((p = strchr(locale, '.'))) *p = '\0'; /* strip off the . */
if ((p = strchr(locale, '@'))) *p = '\0'; /* strip off the @ */
/* measure the ascent and descent */ /* measure the ascent and descent */
metrics = pango_context_get_metrics(inst->pango, f->font_desc, metrics = pango_context_get_metrics(inst->pango, f->font_desc,
pango_language_from_string(locale)); pango_language_get_default());
f->ascent = pango_font_metrics_get_ascent(metrics); f->ascent = pango_font_metrics_get_ascent(metrics);
f->descent = pango_font_metrics_get_descent(metrics); f->descent = pango_font_metrics_get_descent(metrics);
pango_font_metrics_unref(metrics); pango_font_metrics_unref(metrics);
g_free(locale);
} }
RrFont *RrFontOpen(const RrInstance *inst, const gchar *name, gint size, RrFont *RrFontOpen(const RrInstance *inst, const gchar *name, gint size,

View file

@ -48,7 +48,7 @@ static xmlNodePtr find_node(xmlNodePtr n, const gchar *names[]);
static gboolean find_int(ParseState *ps, xmlNodePtr n, const gchar *names[], static gboolean find_int(ParseState *ps, xmlNodePtr n, const gchar *names[],
gint *integer, gint lower, gint upper); gint *integer, gint lower, gint upper);
static gboolean find_string(ParseState *ps, xmlNodePtr n, const gchar *names[], static gboolean find_string(ParseState *ps, xmlNodePtr n, const gchar *names[],
const gchar **string); gchar **string);
static gboolean find_color(ParseState *ps, xmlNodePtr n, const gchar *names[], static gboolean find_color(ParseState *ps, xmlNodePtr n, const gchar *names[],
RrColor **color, gchar *alpha); RrColor **color, gchar *alpha);
static gboolean find_point(ParseState *ps, xmlNodePtr n, const gchar *names[], static gboolean find_point(ParseState *ps, xmlNodePtr n, const gchar *names[],
@ -72,7 +72,7 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
ParseState ps; ParseState ps;
xmlNodePtr root; xmlNodePtr root;
RrJustify winjust, mtitlejust; RrJustify winjust, mtitlejust;
const gchar *str; gchar *str;
RrTheme *theme; RrTheme *theme;
if (name) { if (name) {
@ -154,6 +154,7 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
winjust = RR_JUSTIFY_RIGHT; winjust = RR_JUSTIFY_RIGHT;
else if (strcmp(str, "center") == 0) else if (strcmp(str, "center") == 0)
winjust = RR_JUSTIFY_CENTER; winjust = RR_JUSTIFY_CENTER;
g_free(str);
} }
if (menu_title_font) { if (menu_title_font) {
@ -168,6 +169,7 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
mtitlejust = RR_JUSTIFY_RIGHT; mtitlejust = RR_JUSTIFY_RIGHT;
else if (strcmp(str, "center") == 0) else if (strcmp(str, "center") == 0)
mtitlejust = RR_JUSTIFY_CENTER; mtitlejust = RR_JUSTIFY_CENTER;
g_free(str);
} }
if (menu_item_font) { if (menu_item_font) {
@ -1516,7 +1518,7 @@ static gboolean find_int(ParseState *ps, xmlNodePtr n, const gchar *names[],
} }
static gboolean find_string(ParseState *ps, xmlNodePtr n, const gchar *names[], static gboolean find_string(ParseState *ps, xmlNodePtr n, const gchar *names[],
const gchar **string) gchar **string)
{ {
if ((n = find_node(n, names))) { if ((n = find_node(n, names))) {
*string = parse_string(ps->doc, n); *string = parse_string(ps->doc, n);