[project @ 2003-06-07 22:24:22 by jmb]
Fix plugin memory leaks. svn path=/import/netsurf/; revision=177
This commit is contained in:
parent
15a6d278a7
commit
dfdf69fc91
30
render/box.c
30
render/box.c
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* $Id: box.c,v 1.49 2003/06/06 03:12:28 jmb Exp $
|
||||
* $Id: box.c,v 1.50 2003/06/07 22:24:22 jmb Exp $
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
|
@ -253,6 +253,16 @@ struct box * convert_xml_to_box(xmlNode * n, struct content *content,
|
|||
|
||||
} else if (strcmp((const char*) n->name, "object") == 0) { LOG(("object"));
|
||||
box = box_object(n, content, style, href);
|
||||
/* TODO - param data structure
|
||||
|
||||
for (c = n->children; c != 0; c = c->next) {
|
||||
|
||||
if (strcmp((const char*) c->name, "param") == 0) {
|
||||
|
||||
LOG(("param"));
|
||||
current_param = box_param(c, style, current_object);
|
||||
}
|
||||
} */
|
||||
|
||||
} else if (strcmp((const char*) n->name, "embed") == 0) { LOG(("embed"));
|
||||
box = box_embed(n, content, style, href);
|
||||
|
@ -1454,14 +1464,6 @@ struct box* box_object(xmlNode *n, struct content *content,
|
|||
xmlFree(s);
|
||||
}
|
||||
|
||||
/* object param */
|
||||
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "param"))) {
|
||||
|
||||
/* TODO - create data structure to hold param elements */
|
||||
LOG(("param: %s", s));
|
||||
xmlFree(s);
|
||||
}
|
||||
|
||||
/* object width */
|
||||
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "width"))) {
|
||||
|
||||
|
@ -1511,15 +1513,7 @@ struct box* box_embed(xmlNode *n, struct content *content,
|
|||
xmlFree(s);
|
||||
}
|
||||
|
||||
/* embed param */
|
||||
if ((s = (char *) xmlGetProp(n, (const xmlChar *) "param"))) {
|
||||
|
||||
/* TODO - create data structure for param elements */
|
||||
LOG(("param '%s'", s));
|
||||
xmlFree(s);
|
||||
}
|
||||
|
||||
/* start fetch */
|
||||
/* start fetch */
|
||||
plugin_decode(content, url, box, po);
|
||||
|
||||
return box;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* $Id: plugin.c,v 1.8 2003/06/06 08:10:54 jmb Exp $
|
||||
* $Id: plugin.c,v 1.9 2003/06/07 22:24:22 jmb Exp $
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
|
@ -18,7 +18,8 @@
|
|||
|
||||
char* create_mime_from_ext(char* data);
|
||||
char* create_sysvar(char* mime);
|
||||
void plugin_fetch(/* vars here */);
|
||||
void plugin_fetch(struct plugin_object* po,
|
||||
char* alias_sysvar/* vars here */);
|
||||
|
||||
/**
|
||||
* plugin_decode
|
||||
|
@ -155,10 +156,10 @@ void plugin_decode(struct content* content, char* url, struct box* box,
|
|||
*/
|
||||
xfree(po);
|
||||
LOG(("sending data to image handler"));
|
||||
/* TODO - get image handler to draw it */
|
||||
/*html_fetch_image(content, url, box);*/
|
||||
html_fetch_image(content, url, box);
|
||||
return;
|
||||
}
|
||||
else { /* not an image; is sys var set? */
|
||||
else { /* not an image; is sys var set? */
|
||||
|
||||
/* Create Alias variable */
|
||||
alias_sysvar = create_sysvar(po->type);
|
||||
|
@ -190,7 +191,7 @@ void plugin_decode(struct content* content, char* url, struct box* box,
|
|||
else {
|
||||
/* yes, it exists */
|
||||
LOG(("%s exists", alias_sysvar));
|
||||
plugin_fetch(/* insert vars here */);
|
||||
plugin_fetch(po, alias_sysvar/* insert vars here */);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -216,6 +217,7 @@ char* create_mime_from_ext(char* data){
|
|||
|
||||
LOG(("Creating Mime Type from File Extension"));
|
||||
|
||||
ret = xcalloc(90, sizeof(char));
|
||||
ret = strrchr(data, '.');
|
||||
LOG(("Extension = %s", ret));
|
||||
|
||||
|
@ -246,7 +248,8 @@ char* create_sysvar(char* mime) {
|
|||
LOG(("Creating System Variable from Mime Type"));
|
||||
|
||||
ret = xcalloc(22, sizeof(char));
|
||||
ret = strdup("Alias$@PlugInType_");
|
||||
ft = xcalloc(10, sizeof(char));
|
||||
strcpy(ret, "Alias$@PlugInType_");
|
||||
|
||||
LOG(("Mime Type: %s", mime));
|
||||
|
||||
|
@ -261,6 +264,7 @@ char* create_sysvar(char* mime) {
|
|||
LOG(("Alias Var: %s", ret));
|
||||
}
|
||||
|
||||
xfree(ft);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -269,8 +273,11 @@ char* create_sysvar(char* mime) {
|
|||
* attempts to negotiate with the plugin.
|
||||
* also fetches the object for the plugin to handle.
|
||||
*/
|
||||
void plugin_fetch (/* insert vars here */) {
|
||||
void plugin_fetch (struct plugin_object* po,
|
||||
char* alias_sysvar/* insert vars here */) {
|
||||
|
||||
LOG(("Entering plugin_fetch"));
|
||||
xfree(po);
|
||||
xfree(alias_sysvar);
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue