summaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
authorJames Bursa <james@netsurf-browser.org>2003-04-25 08:03:15 +0000
committerJames Bursa <james@netsurf-browser.org>2003-04-25 08:03:15 +0000
commit0285c2984fc1913d583432716d6fff4f9f291994 (patch)
tree2bc779ca5e62489de76e4a59ea470e94080c0621 /render
parent58c28f9c1ab86da14f15cee44ae936c74d812a5f (diff)
downloadnetsurf-0285c2984fc1913d583432716d6fff4f9f291994.tar.gz
netsurf-0285c2984fc1913d583432716d6fff4f9f291994.tar.bz2
[project @ 2003-04-25 08:03:15 by bursa]
Various memory fixes. svn path=/import/netsurf/; revision=128
Diffstat (limited to 'render')
-rw-r--r--render/box.c74
-rw-r--r--render/html.c32
2 files changed, 55 insertions, 51 deletions
diff --git a/render/box.c b/render/box.c
index 04550a6ec..9e0788fc0 100644
--- a/render/box.c
+++ b/render/box.c
@@ -1,5 +1,5 @@
/**
- * $Id: box.c,v 1.42 2003/04/15 17:53:00 bursa Exp $
+ * $Id: box.c,v 1.43 2003/04/25 08:03:15 bursa Exp $
*/
#include <assert.h>
@@ -223,7 +223,7 @@ struct box * convert_xml_to_box(xmlNode * n, struct content *content,
current_textarea = box->gadget;
add_gadget_element(elements, box->gadget);
textarea_addtext(current_textarea, thistext);
- free(content);
+ xmlFree(content);
} else if (strcmp((const char *) n->name, "select") == 0) {
LOG(("select"));
@@ -237,7 +237,7 @@ struct box * convert_xml_to_box(xmlNode * n, struct content *content,
LOG(("option"));
current_option = box_option(c, style, current_select);
option_addtext(current_option, thistext);
- free(content);
+ xmlFree(content);
}
}
@@ -437,7 +437,7 @@ struct css_style * box_get_style(struct content ** stylesheet,
else if (stricmp(s, "center") == 0) style->text_align = CSS_TEXT_ALIGN_CENTER;
else if (stricmp(s, "right") == 0) style->text_align = CSS_TEXT_ALIGN_RIGHT;
}
- free(s);
+ xmlFree(s);
}
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "bgcolor"))) {
@@ -446,14 +446,14 @@ struct css_style * box_get_style(struct content ** stylesheet,
style->background_color = (b << 16) | (g << 8) | r;
else if (s[0] != '#')
style->background_color = named_colour(s);
- free(s);
+ xmlFree(s);
}
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "clear"))) {
if (stricmp(s, "all") == 0) style->clear = CSS_CLEAR_BOTH;
else if (stricmp(s, "left") == 0) style->clear = CSS_CLEAR_LEFT;
else if (stricmp(s, "right") == 0) style->clear = CSS_CLEAR_RIGHT;
- free(s);
+ xmlFree(s);
}
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "color"))) {
@@ -462,14 +462,14 @@ struct css_style * box_get_style(struct content ** stylesheet,
style->color = (b << 16) | (g << 8) | r;
else if (s[0] != '#')
style->color = named_colour(s);
- free(s);
+ xmlFree(s);
}
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "height"))) {
style->height.height = CSS_HEIGHT_LENGTH;
style->height.length.unit = CSS_UNIT_PX;
style->height.length.value = atof(s);
- free(s);
+ xmlFree(s);
}
if (strcmp((const char *) n->name, "body") == 0) {
@@ -479,7 +479,7 @@ struct css_style * box_get_style(struct content ** stylesheet,
style->color = (b << 16) | (g << 8) | r;
else if (s[0] != '#')
style->color = named_colour(s);
- free(s);
+ xmlFree(s);
}
}
@@ -492,7 +492,7 @@ struct css_style * box_get_style(struct content ** stylesheet,
style->width.value.length.unit = CSS_UNIT_PX;
style->width.value.length.value = atof(s);
}
- free(s);
+ xmlFree(s);
}
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "style"))) {
@@ -501,7 +501,7 @@ struct css_style * box_get_style(struct content ** stylesheet,
css_parse_property_list(astyle, s);
css_cascade(style, astyle);
free(astyle);
- free(s);
+ xmlFree(s);
}
return style;
@@ -910,43 +910,43 @@ void gadget_free(struct gui_gadget* g)
struct formoption* o;
if (g->name != 0)
- xfree(g->name);
+ xmlFree(g->name);
switch (g->type)
{
case GADGET_HIDDEN:
if (g->data.hidden.value != 0)
- xfree(g->data.hidden.value);
+ xmlFree(g->data.hidden.value);
break;
case GADGET_RADIO:
if (g->data.checkbox.value != 0)
- xfree(g->data.radio.value);
+ xmlFree(g->data.radio.value);
break;
case GADGET_CHECKBOX:
if (g->data.checkbox.value != 0)
- xfree(g->data.checkbox.value);
+ xmlFree(g->data.checkbox.value);
break;
case GADGET_TEXTAREA:
if (g->data.textarea.text != 0)
- xfree(g->data.textarea.text);
+ xmlFree(g->data.textarea.text);
break;
case GADGET_TEXTBOX:
gui_remove_gadget(g);
if (g->data.textbox.text != 0)
- xfree(g->data.textbox.text);
+ xmlFree(g->data.textbox.text);
break;
case GADGET_ACTIONBUTTON:
if (g->data.actionbutt.label != 0)
- xfree(g->data.actionbutt.label);
+ xmlFree(g->data.actionbutt.label);
break;
case GADGET_SELECT:
o = g->data.select.items;
while (o != NULL)
{
if (o->text != 0)
- xfree(o->text);
+ xmlFree(o->text);
if (o->value != 0)
- xfree(o->value);
+ xmlFree(o->value);
xfree(o);
o = o->next;
}
@@ -988,9 +988,9 @@ void box_free_box(struct box *box)
if (box->href != 0)
{
if (box->parent == 0)
- free(box->href);
+ xmlFree(box->href);
else if (box->parent->href != box->href)
- free(box->href);
+ xmlFree(box->href);
}
}
@@ -1024,7 +1024,7 @@ struct box* box_image(xmlNode *n, struct content *content,
url = url_join(s, content->url);
LOG(("image '%s'", url));
- free(s);
+ xmlFree(s);
/* start fetch */
html_fetch_image(content, url, box);
@@ -1052,7 +1052,7 @@ struct box* box_textarea(xmlNode* n, struct css_style* style, struct form* curre
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "cols")))
{
box->gadget->data.textarea.cols = atoi(s);
- free(s);
+ xmlFree(s);
}
else
box->gadget->data.textarea.cols = 40;
@@ -1060,7 +1060,7 @@ struct box* box_textarea(xmlNode* n, struct css_style* style, struct form* curre
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "rows")))
{
box->gadget->data.textarea.rows = atoi(s);
- free(s);
+ xmlFree(s);
}
else
box->gadget->data.textarea.rows = 16;
@@ -1094,7 +1094,7 @@ struct box* box_select(xmlNode * n, struct css_style* style, struct form* curren
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "size")))
{
box->gadget->data.select.size = atoi(s);
- free(s);
+ xmlFree(s);
}
else
box->gadget->data.select.size = 1;
@@ -1139,7 +1139,7 @@ struct formoption* box_option(xmlNode* n, struct css_style* style, struct gui_ga
/* TO DO: set selected / value here */
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "selected"))) {
option->selected = -1;
- free(s);
+ xmlFree(s);
}
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "value"))) {
@@ -1157,7 +1157,7 @@ void textarea_addtext(struct gui_gadget* textarea, char* text)
if (textarea->data.textarea.text == 0)
{
- textarea->data.textarea.text = strdup(text);
+ textarea->data.textarea.text = xstrdup(text);
}
else
{
@@ -1174,7 +1174,7 @@ void option_addtext(struct formoption* option, char* text)
if (option->text == 0)
{
LOG(("option->text is 0"));
- option->text = strdup(text);
+ option->text = xstrdup(text);
}
else
{
@@ -1229,7 +1229,7 @@ struct box* box_input(xmlNode * n, struct css_style* style, struct form* current
box->gadget->data.checkbox.selected = -1;
else
box->gadget->data.radio.selected = -1;
- free(s);
+ xmlFree(s);
}
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "value"))) {
@@ -1263,7 +1263,7 @@ struct box* box_input(xmlNode * n, struct css_style* style, struct form* current
}
else
{
- box->gadget->data.actionbutt.label = strdup(type);
+ box->gadget->data.actionbutt.label = xstrdup(type);
box->gadget->data.actionbutt.label[0] = toupper(type[0]);
}
@@ -1276,7 +1276,7 @@ struct box* box_input(xmlNode * n, struct css_style* style, struct form* current
if (!(stricmp(type, "text") == 0 || stricmp(type, "password") == 0))
{
- free (type);
+ xmlFree (type);
return box;
}
@@ -1302,7 +1302,7 @@ struct box* box_input(xmlNode * n, struct css_style* style, struct form* current
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "maxlength"))) {
//>>>>>> 1.31
box->gadget->data.textbox.maxlength = atoi(s);
- free(s);
+ xmlFree(s);
}
#ifdef ARSEMONKEYS
@@ -1314,7 +1314,7 @@ struct box* box_input(xmlNode * n, struct css_style* style, struct form* current
box->gadget->data.textbox.size = box->gadget->data.textbox.maxlength;
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "size"))) {
box->gadget->data.textbox.size = atoi(s);
- free(s);
+ xmlFree(s);
}
box->gadget->data.textbox.text = xcalloc(
@@ -1323,7 +1323,7 @@ struct box* box_input(xmlNode * n, struct css_style* style, struct form* current
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "value"))) {
strncpy(box->gadget->data.textbox.text, s,
box->gadget->data.textbox.maxlength);
- free(s);
+ xmlFree(s);
}
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "name"))) {
@@ -1331,7 +1331,7 @@ struct box* box_input(xmlNode * n, struct css_style* style, struct form* current
}
add_gadget_element(elements, box->gadget);
- free(type);
+ xmlFree(type);
return box;
}
@@ -1350,7 +1350,7 @@ struct form* box_form(xmlNode* n)
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "method"))) {
if (stricmp(s, "post") == 0)
form->method = method_POST;
- xfree(s);
+ xmlFree(s);
}
return form;
diff --git a/render/html.c b/render/html.c
index 0c60acdb5..8b2cd7338 100644
--- a/render/html.c
+++ b/render/html.c
@@ -1,5 +1,5 @@
/**
- * $Id: html.c,v 1.15 2003/04/15 17:53:00 bursa Exp $
+ * $Id: html.c,v 1.16 2003/04/25 08:03:15 bursa Exp $
*/
#include <assert.h>
@@ -166,7 +166,7 @@ void html_title(struct content *c, xmlNode *head)
if (strcmp(node->name, "title") == 0) {
title = xmlNodeGetContent(node);
c->title = squash_tolat1(title);
- free(title);
+ xmlFree(title);
return;
}
}
@@ -203,28 +203,28 @@ void html_find_stylesheets(struct content *c, xmlNode *head)
if (!(rel = (char *) xmlGetProp(node, (const xmlChar *) "rel")))
continue;
if (strcasecmp(rel, "stylesheet") != 0) {
- free(rel);
+ xmlFree(rel);
continue;
}
- free(rel);
+ xmlFree(rel);
/* type='text/css' or not present */
if ((type = (char *) xmlGetProp(node, (const xmlChar *) "type"))) {
if (strcmp(type, "text/css") != 0) {
- free(type);
+ xmlFree(type);
continue;
}
- free(type);
+ xmlFree(type);
}
/* media contains 'screen' or 'all' or not present */
if ((media = (char *) xmlGetProp(node, (const xmlChar *) "media"))) {
if (strstr(media, "screen") == 0 &&
strstr(media, "all") == 0) {
- free(media);
+ xmlFree(media);
continue;
}
- free(media);
+ xmlFree(media);
}
/* href='...' */
@@ -233,7 +233,7 @@ void html_find_stylesheets(struct content *c, xmlNode *head)
url = url_join(href, c->url);
LOG(("linked stylesheet %i '%s'", i, url));
- free(href);
+ xmlFree(href);
/* start fetch */
c->data.html.stylesheet_content = xrealloc(c->data.html.stylesheet_content,
@@ -252,19 +252,19 @@ void html_find_stylesheets(struct content *c, xmlNode *head)
if (!(type = (char *) xmlGetProp(node, (const xmlChar *) "type")))
continue;
if (strcmp(type, "text/css") != 0) {
- free(type);
+ xmlFree(type);
continue;
}
- free(type);
+ xmlFree(type);
/* media contains 'screen' or 'all' or not present */
if ((media = (char *) xmlGetProp(node, (const xmlChar *) "media"))) {
if (strstr(media, "screen") == 0 &&
strstr(media, "all") == 0) {
- free(media);
+ xmlFree(media);
continue;
}
- free(media);
+ xmlFree(media);
}
/* create stylesheet */
@@ -278,7 +278,7 @@ void html_find_stylesheets(struct content *c, xmlNode *head)
data = xmlNodeGetContent(node2);
content_process_data(c->data.html.stylesheet_content[1],
data, strlen(data));
- free(data);
+ xmlFree(data);
}
}
}
@@ -439,14 +439,18 @@ void html_destroy(struct content *c)
unsigned int i;
LOG(("content %p", c));
+ LOG(("layout %p", c->data.html.layout));
if (c->data.html.layout != 0)
box_free(c->data.html.layout);
+ LOG(("fonts %p", c->data.html.fonts));
if (c->data.html.fonts != 0)
font_free_set(c->data.html.fonts);
+ LOG(("title %p", c->title));
if (c->title != 0)
xfree(c->title);
for (i = 0; i != c->data.html.object_count; i++) {
+ LOG(("object %i %p", i, c->data.html.object[i].content));
if (c->data.html.object[i].content != 0)
cache_free(c->data.html.object[i].content);
free(c->data.html.object[i].url);