links

lynx-like text mode web browser
git clone anongit@rnpnr.xyz:links.git
Log | Files | Refs | Feed | README | LICENSE

Commit: ec27a7851c25ab9220354744553776c4cc2084e9
Parent: 03d01c47d153062f80e278db0f34366db01a1c3e
Author: opask
Date:   Mon, 23 Jul 2018 18:16:03 -0600

remove mem_free from html*.c and https.c

Diffstat:
Mhtml.c | 372+++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
Mhtml_gr.c | 12++++++------
Mhtml_r.c | 164+++++++++++++++++++++++++++++++++++++++++++------------------------------------
Mhtml_tbl.c | 99+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Mhttps.c | 12++++++------
5 files changed, 374 insertions(+), 285 deletions(-)

diff --git a/html.c b/html.c @@ -145,7 +145,7 @@ unsigned char *get_attr_val(unsigned char *e, unsigned char *name) e++; while (*e != uu) { if (!*e) { - mem_free(a); + free(a); return NULL; } if (!f) { @@ -173,7 +173,7 @@ unsigned char *get_attr_val(unsigned char *e, unsigned char *name) d_opt->cp = d_opt->real_cp; a = convert_string(NULL, aa, (int)strlen(cast_const_char aa), d_opt); d_opt->cp = c; - mem_free(aa); + free(aa); } while ((b = cast_uchar strchr(cast_const_char a, 1))) *b = ' '; if (get_attr_val_nl != 2) { @@ -191,7 +191,7 @@ int has_attr(unsigned char *e, unsigned char *name) { unsigned char *a; if (!(a = get_attr_val(e, name))) return 0; - mem_free(a); + free(a); return 1; } @@ -235,7 +235,7 @@ static unsigned char *get_url_val(unsigned char *e, unsigned char *name) unsigned char *us = encode_utf_8(u); add_to_str(&c, &l, us); } - mem_free(a); + free(a); return c; } @@ -511,7 +511,7 @@ int get_color(unsigned char *a, unsigned char *c, struct rgb *rgb) int r = -1; if (d_opt->col >= 1) if ((at = get_attr_val(a, c))) { r = decode_color(at, rgb); - mem_free(at); + free(at); } return r; } @@ -538,15 +538,15 @@ void kill_html_stack_item(struct html_element *e) return; } html_format_changed = 1; - if (e->attr.fontface) mem_free(e->attr.fontface); - if (e->attr.link) mem_free(e->attr.link); - if (e->attr.target) mem_free(e->attr.target); - if (e->attr.image) mem_free(e->attr.image); - if (e->attr.href_base) mem_free(e->attr.href_base); - if (e->attr.target_base) mem_free(e->attr.target_base); - if (e->attr.select) mem_free(e->attr.select); + free(e->attr.fontface); + free(e->attr.link); + free(e->attr.target); + free(e->attr.image); + free(e->attr.href_base); + free(e->attr.target_base); + free(e->attr.select); del_from_list(e); - mem_free(e); + free(e); } #if defined(DEBUG) && 0 @@ -779,7 +779,7 @@ int get_num(unsigned char *a, unsigned char *n) unsigned char *end; unsigned long s = strtoul(cast_const_char al, (char **)(void *)&end, 10); if (!*al || *end || s > 10000) s = -1; - mem_free(al); + free(al); return (int)s; } return -1; @@ -830,7 +830,7 @@ int get_width(unsigned char *a, unsigned char *n, int trunc) unsigned char *w; if (!(w = get_attr_val(a, n))) return -1; r = parse_width(w, trunc); - mem_free(w); + free(w); return r; } @@ -863,8 +863,10 @@ static void put_link_line(unsigned char *prefix, unsigned char *linkname, unsign return; html_stack_dup(); ln_break(1); - if (format_.link) mem_free(format_.link), format_.link = NULL; - if (format_.target) mem_free(format_.target), format_.target = NULL; + free(format_.link); + format_.link = NULL; + free(format_.target); + format_.target = NULL; format_.form = NULL; put_chrs(prefix, (int)strlen(cast_const_char prefix)); html_format_changed = 1; @@ -888,7 +890,7 @@ static void html_span(unsigned char *a) par_format.align = AL_NO; } - mem_free(al); + free(al); } } @@ -929,14 +931,14 @@ static void html_a(unsigned char *a) unsigned char *all = al; while (all[0] == ' ') all++; while (all[0] && all[strlen(cast_const_char all) - 1] == ' ') all[strlen(cast_const_char all) - 1] = 0; - if (format_.link) mem_free(format_.link); + free(format_.link); format_.link = join_urls(format_.href_base, all); - mem_free(al); + free(al); if ((al = get_target(a))) { - if (format_.target) mem_free(format_.target); + free(format_.target); format_.target = al; } else { - if (format_.target) mem_free(format_.target); + free(format_.target); format_.target = stracpy(format_.target_base); } /*format_.attr ^= AT_BOLD;*/ @@ -945,7 +947,7 @@ static void html_a(unsigned char *a) kill_html_stack_item(&html_top); if ((al = get_attr_val(a, cast_uchar "name"))) { special_f(ff, SP_TAG, al); - mem_free(al); + free(al); } } @@ -959,7 +961,7 @@ static void html_a_special(unsigned char *a, unsigned char *next, unsigned char t = get_attr_val(a, cast_uchar "title"); if (!t) return; put_chrs(t, (int)strlen(cast_const_char t)); - mem_free(t); + free(t); } static void html_sub(unsigned char *a) @@ -995,7 +997,7 @@ static void html_font(unsigned char *a) if (format_.fontsize < 1) format_.fontsize = 1; if (format_.fontsize > 7) format_.fontsize = 7; } - mem_free(al); + free(al); } get_color(a, cast_uchar "color", &format_.fg); } @@ -1004,7 +1006,7 @@ static unsigned char *get_url_val_nonempty(unsigned char *a, unsigned char *name { unsigned char *v = get_url_val(a, name); if (v && !*v) { - mem_free(v); + free(v); v = NULL; } return v; @@ -1021,17 +1023,18 @@ static void html_img(unsigned char *a) unsigned char *u; usemap = 1; html_stack_dup(); - if (format_.link) mem_free(format_.link); - if (format_.form) format_.form = NULL; + free(format_.link); + format_.form = NULL; u = join_urls(*al == '#' ? top_href_base() : format_.href_base, al); format_.link = stracpy(cast_uchar "MAP@"); add_to_strn(&format_.link, u); format_.attr |= AT_BOLD; - mem_free(u); - mem_free(al); + free(u); + free(al); } ismap = format_.link && (F || !has_attr(a, cast_uchar "usemap")) && has_attr(a, cast_uchar "ismap"); - if (format_.image) mem_free(format_.image), format_.image = NULL; + free(format_.image); + format_.image = NULL; if ( (s = get_url_val_nonempty(a, cast_uchar "data-full")) || (s = get_url_val_nonempty(a, cast_uchar "data-normal")) || @@ -1053,7 +1056,7 @@ static void html_img(unsigned char *a) } if (!F || !d_opt->display_images) { if ((!(al = get_attr_val(a, cast_uchar "alt")) && !(al = get_attr_val(a, cast_uchar "title"))) || !*al) { - if (al) mem_free(al); + free(al); if (!d_opt->images && !format_.link) goto ret; if (d_opt->image_names && s) { unsigned char *ss; @@ -1074,14 +1077,14 @@ static void html_img(unsigned char *a) html_stack_dup(); h = stracpy(format_.link); add_to_strn(&h, cast_uchar "?0,0"); - mem_free(format_.link); + free(format_.link); format_.link = h; } html_format_changed = 1; put_chrs(al, (int)strlen(cast_const_char al)); if (ismap) kill_html_stack_item(&html_top); } - mem_free(al); + free(al); #ifdef G } else { struct image_description i; @@ -1096,7 +1099,7 @@ static void html_img(unsigned char *a) if (!casestrcmp(al, cast_uchar "bottom")) aa = AL_BOTTOM; if (!casestrcmp(al, cast_uchar "middle")) aa = AL_MIDDLE; if (!casestrcmp(al, cast_uchar "top")) aa = AL_TOP; - mem_free(al); + free(al); } if (aa == AL_LEFT || aa == AL_RIGHT || aa == AL_CENTER) { @@ -1111,7 +1114,7 @@ static void html_img(unsigned char *a) html_stack_dup(); h = stracpy(format_.link); add_to_strn(&h, cast_uchar "?0,0"); - mem_free(format_.link); + free(format_.link); format_.link = h; } @@ -1146,13 +1149,16 @@ static void html_img(unsigned char *a) i.ismap = ismap; if ((u = get_url_val(a, cast_uchar "usemap"))) { i.usemap = join_urls(*u == '#' ? top_href_base() : format_.href_base, u); - mem_free(u); + free(u); } - if (i.url) special_f(ff, SP_IMAGE, &i), mem_free(i.url); - if (i.usemap) mem_free(i.usemap); - if (i.name) mem_free(i.name); - if (i.alt) mem_free(i.alt); - if (i.src) mem_free(i.src); + if (i.url) { + special_f(ff, SP_IMAGE, &i); + free(i.url); + } + free(i.usemap); + free(i.name); + free(i.alt); + free(i.src); line_breax = 0; if (ismap) kill_html_stack_item(&html_top); if (aa == AL_LEFT || aa == AL_RIGHT || aa == AL_CENTER) { @@ -1164,11 +1170,12 @@ static void html_img(unsigned char *a) #endif } ret: - if (format_.image) mem_free(format_.image), format_.image = NULL; + free(format_.image); + format_.image = NULL; html_format_changed = 1; if (usemap) kill_html_stack_item(&html_top); /*put_chrs(cast_uchar " ", 1);*/ - if (orig_link) mem_free(orig_link); + free(orig_link); } static void html_obj(unsigned char *a, int obj) @@ -1184,8 +1191,8 @@ static void html_obj(unsigned char *a, int obj) if (url) { unsigned char *ju = join_urls(format_.href_base, url); type = get_content_type(NULL, ju); - mem_free(url); - mem_free(ju); + free(url); + free(ju); } } if (type && known_image_type(type)) { @@ -1195,10 +1202,13 @@ static void html_obj(unsigned char *a, int obj) } url = get_url_val(a, cast_uchar "src"); if (!url) url = get_url_val(a, cast_uchar "data"); - if (url) put_link_line(cast_uchar "", !obj ? cast_uchar "[EMBED]" : cast_uchar "[OBJ]", url, cast_uchar ""), mem_free(url); + if (url) { + put_link_line(cast_uchar "", !obj ? cast_uchar "[EMBED]" : cast_uchar "[OBJ]", url, cast_uchar ""); + free(url); + } ret: - if (base) mem_free(format_.href_base), format_.href_base = old_base, mem_free(base); - if (type) mem_free(type); + if (base) free(format_.href_base), format_.href_base = old_base, free(base); + free(type); } static void html_embed(unsigned char *a) @@ -1245,7 +1255,7 @@ static void html_script(unsigned char *a) unsigned char *s; s = get_url_val(a, cast_uchar "src"); special_f(ff, SP_SCRIPT, s); - if (s) mem_free(s); + free(s); if (should_skip_script(a)) { html_top.dontkill = 1; html_top.invisible = INVISIBLE_SCRIPT; @@ -1280,7 +1290,7 @@ static void html_linebrk(unsigned char *a) if (!table_level && !F) par_format.leftmargin = par_format.rightmargin = 0; } if (!casestrcmp(al, cast_uchar "justify")) par_format.align = AL_BLOCK; - mem_free(al); + free(al); } } @@ -1368,7 +1378,7 @@ static void html_pre(unsigned char *a) if ((cl = get_attr_val(a, cast_uchar "class"))) { if (strstr(cast_const_char cl, "bz_comment")) /* hack */ par_format.align = AL_NO_BREAKABLE; - mem_free(cl); + free(cl); } } @@ -1386,7 +1396,7 @@ static void html_div(unsigned char *a) format_.attr |= AT_FIXED; par_format.align = AL_NO_BREAKABLE; } - mem_free(al); + free(al); } html_linebrk(a); } @@ -1397,7 +1407,8 @@ static void html_hr(unsigned char *a) int q = get_num(a, cast_uchar "size"); html_stack_dup(); par_format.align = AL_CENTER; - if (format_.link) mem_free(format_.link), format_.link = NULL; + free(format_.link); + format_.link = NULL; format_.form = NULL; html_linebrk(a); if (par_format.align == AL_BLOCK) par_format.align = AL_CENTER; @@ -1461,13 +1472,13 @@ static void html_base(unsigned char *a) { unsigned char *al; if ((al = get_url_val(a, cast_uchar "href"))) { - if (format_.href_base) mem_free(format_.href_base); + free(format_.href_base); format_.href_base = join_urls(top_href_base(), al); special_f(ff, SP_SET_BASE, format_.href_base); - mem_free(al); + free(al); } if ((al = get_target(a))) { - if (format_.target_base) mem_free(format_.target_base); + free(format_.target_base); format_.target_base = al; } } @@ -1483,7 +1494,7 @@ static void html_ul(unsigned char *a) if (!casestrcmp(al, cast_uchar "disc") || !casestrcmp(al, cast_uchar "circle")) par_format.flags = P_O; if (!casestrcmp(al, cast_uchar "square")) par_format.flags = P_PLUS; - mem_free(al); + free(al); } if ((par_format.leftmargin += 2 + (par_format.list_level > 1)) > par_format.width * 2 / 3 && !table_level) par_format.leftmargin = par_format.width * 2 / 3; @@ -1508,7 +1519,7 @@ static void html_ol(unsigned char *a) if (!strcmp(cast_const_char al, "R")) par_format.flags = P_ROMAN; if (!strcmp(cast_const_char al, "i")) par_format.flags = P_roman; if (!strcmp(cast_const_char al, "I")) par_format.flags = P_ROMAN; - mem_free(al); + free(al); } if (!F) if ((par_format.leftmargin += (par_format.list_level > 1)) > par_format.width * 2 / 3 && !table_level) par_format.leftmargin = par_format.width * 2 / 3; @@ -1606,17 +1617,17 @@ static void get_html_form(unsigned char *a, struct form *form) if ((ax = get_attr_val(a, cast_uchar "enctype"))) { if (!casestrcmp(ax, cast_uchar "multipart/form-data")) form->method = FM_POST_MP; - mem_free(ax); + free(ax); } } - mem_free(al); + free(al); } if ((al = get_url_val(a, cast_uchar "action"))) { unsigned char *all = al; while (all[0] == ' ') all++; while (all[0] && all[strlen(cast_const_char all) - 1] == ' ') all[strlen(cast_const_char all) - 1] = 0; form->action = join_urls(format_.href_base, all); - mem_free(al); + free(al); } else { if ((ch = cast_uchar strchr(cast_const_char(form->action = stracpy(format_.href_base)), POST_CHAR))) *ch = 0; if (form->method == FM_GET && (ch = cast_uchar strchr(cast_const_char form->action, '?'))) *ch = 0; @@ -1641,10 +1652,10 @@ static void find_form_for_input(unsigned char *i) { unsigned char *s, *ss, *name, *attr, *lf, *la; int namelen; - if (form.action) mem_free(form.action); - if (form.target) mem_free(form.target); - if (form.form_name) mem_free(form.form_name); - if (form.onsubmit) mem_free(form.onsubmit); + free(form.action); + free(form.target); + free(form.form_name); + free(form.onsubmit); memset(&form, 0, sizeof(struct form)); if (!special_f(ff, SP_USED, NULL)) return; if (last_form_tag && last_input_tag && i <= last_input_tag && i > last_form_tag) { @@ -1699,11 +1710,11 @@ static void html_button(unsigned char *a) else if (!casestrcmp(al, cast_uchar "reset")) fc->type = FC_RESET; else if (!casestrcmp(al, cast_uchar "button")) fc->type = FC_BUTTON; else { - mem_free(al); - mem_free(fc); + free(al); + free(fc); return; } - mem_free(al); + free(al); xxx: fc->form_num = last_form_tag ? (int)(last_form_tag - startf) : 0; fc->ctrl_num = last_form_tag ? (int)(a - last_form_tag) : (int)(a - startf); @@ -1795,7 +1806,7 @@ static void html_input(unsigned char *a) else if (!casestrcmp(al, cast_uchar "image")) fc->type = FC_IMAGE; else if (!casestrcmp(al, cast_uchar "button")) fc->type = FC_BUTTON; else fc->type = FC_TEXT; - mem_free(al); + free(al); xxx: fc->form_num = last_form_tag ? (int)(last_form_tag - startf) : 0; fc->ctrl_num = last_form_tag ? (int)(a - last_form_tag) : (int)(a - startf); @@ -1850,10 +1861,11 @@ static void html_input(unsigned char *a) break; case FC_IMAGE: if (!F || !d_opt->display_images) { - if (format_.image) mem_free(format_.image), format_.image = NULL; + free(format_.image); + format_.image = NULL; if ((al = get_url_val(a, cast_uchar "src")) || (al = get_url_val(a, cast_uchar "dynsrc"))) { format_.image = join_urls(format_.href_base, al); - mem_free(al); + free(al); } format_.attr |= AT_BOLD | AT_FIXED; put_chrs(cast_uchar "[&nbsp;", 7); @@ -1893,7 +1905,7 @@ static void html_select(unsigned char *a) unsigned char *al; if (!(al = get_attr_val(a, cast_uchar "name"))) return; html_top.dontkill = 1; - if (format_.select) mem_free(format_.select); + free(format_.select); format_.select = al; format_.select_disabled = 2 * has_attr(a, cast_uchar "disabled"); } @@ -1985,7 +1997,10 @@ static void new_menu_item(unsigned char *name, long data, int fullname) struct menu_item *top, *item, *nmenu = NULL; /* no uninitialized warnings */ if (name) { clr_spaces(name, 1); - if (!name[0]) mem_free(name), name = stracpy(cast_uchar " "); + if (!name[0]) { + mem_free(name); + name = stracpy(cast_uchar " "); + } if (name[0] == 1) name[0] = ' '; } if (name && data == -1) { @@ -2014,7 +2029,8 @@ static void new_menu_item(unsigned char *name, long data, int fullname) item++; memset(item, 0, sizeof(struct menu_item)); /*item->text = cast_uchar "";*/ - } else if (name) mem_free(name); + } else + free(name); if (name && data == -1) { if ((unsigned)menu_stack_size > MAXINT / sizeof(struct menu_item *) - 1) overalloc(); menu_stack = mem_realloc(menu_stack, (menu_stack_size + 1) * sizeof(struct menu_item *)); @@ -2034,10 +2050,10 @@ void free_menu(struct menu_item *m) /* Grrr. Recursion */ { struct menu_item *mm; for (mm = m; mm->text; mm++) { - mem_free(mm->text); + free(mm->text); if (mm->func == do_select_submenu) free_menu(mm->data); } - mem_free(m); + free(m); } static struct menu_item *detach_menu(void) @@ -2045,7 +2061,7 @@ static struct menu_item *detach_menu(void) struct menu_item *i = NULL; if (menu_stack) { if (menu_stack_size) i = menu_stack[0]; - mem_free(menu_stack); + free(menu_stack); } return i; } @@ -2066,7 +2082,7 @@ static void menu_labels(struct menu_item *m, unsigned char *base, unsigned char add_to_strn(&bs, m->text); add_to_strn(&bs, cast_uchar " "); menu_labels(m->data, bs, lbls); - mem_free(bs); + free(bs); } } else { if ((bs = stracpy(m->hotkey[1] ? (unsigned char *)"" : base))) add_to_strn(&bs, m->text); @@ -2128,10 +2144,11 @@ static int do_html_select(unsigned char *attr, unsigned char *html, unsigned cha int i; abort: *end = html; - if (lbl) mem_free(lbl); - if (vlbl) mem_free(vlbl); - for (i = 0; i < order; i++) if (val[i]) mem_free(val[i]); - mem_free(val); + free(lbl); + free(vlbl); + for (i = 0; i < order; i++) + free(val[i]); + free(val); destroy_menu(); *end = en; return 0; @@ -2142,7 +2159,10 @@ static int do_html_select(unsigned char *attr, unsigned char *html, unsigned cha while (l && WHITECHAR(s[0])) s++, l--; while (l && WHITECHAR(s[l-1])) l--; q = convert_string(ct, s, l, d_opt); - if (q) add_to_str(&lbl, &lbl_l, q), mem_free(q); + if (q) { + add_to_str(&lbl, &lbl_l, q); + free(q); + } add_bytes_to_str(&vlbl, &vlbl_l, s, l); } if (html + 2 <= eof && (html[1] == '!' || html[1] == '?')) { @@ -2157,8 +2177,12 @@ static int do_html_select(unsigned char *attr, unsigned char *html, unsigned cha if (lbl) { if (!val[order - 1]) val[order - 1] = stracpy(vlbl); if (!nnmi) new_menu_item(lbl, order - 1, 1), lbl = NULL; - else mem_free(lbl), lbl = NULL; - mem_free(vlbl), vlbl = NULL; + else { + free(lbl); + lbl = NULL; + } + free(vlbl); + vlbl = NULL; } goto end_parse; } @@ -2166,8 +2190,12 @@ static int do_html_select(unsigned char *attr, unsigned char *html, unsigned cha if (lbl) { if (!val[order - 1]) val[order - 1] = stracpy(vlbl); if (!nnmi) new_menu_item(lbl, order - 1, 1), lbl = NULL; - else mem_free(lbl), lbl = NULL; - mem_free(vlbl), vlbl = NULL; + else { + free(lbl); + lbl = NULL; + } + free(vlbl); + vlbl = NULL; } goto see; } @@ -2176,8 +2204,12 @@ static int do_html_select(unsigned char *attr, unsigned char *html, unsigned cha if (lbl) { if (!val[order - 1]) val[order - 1] = stracpy(vlbl); if (!nnmi) new_menu_item(lbl, order - 1, 1), lbl = NULL; - else mem_free(lbl), lbl = NULL; - mem_free(vlbl), vlbl = NULL; + else { + free(lbl); + lbl = NULL; + } + free(vlbl); + vlbl = NULL; } if (has_attr(t_attr, cast_uchar "disabled")) goto see; if (preselect == -1 && has_attr(t_attr, cast_uchar "selected")) preselect = order; @@ -2189,7 +2221,7 @@ static int do_html_select(unsigned char *attr, unsigned char *html, unsigned cha val[order++] = v; if ((vx = get_attr_val(t_attr, cast_uchar "label"))) { new_menu_item(convert_string(ct, vx, (int)strlen(cast_const_char vx), d_opt), order - 1, 0); - mem_free(vx); + free(vx); } if (!v || !vx) { lbl = init_str(), lbl_l = 0; @@ -2202,8 +2234,12 @@ static int do_html_select(unsigned char *attr, unsigned char *html, unsigned cha if (lbl) { if (!val[order - 1]) val[order - 1] = stracpy(vlbl); if (!nnmi) new_menu_item(lbl, order - 1, 1), lbl = NULL; - else mem_free(lbl), lbl = NULL; - mem_free(vlbl), vlbl = NULL; + else { + free(lbl); + lbl = NULL; + } + free(vlbl); + vlbl = NULL; } if (group) new_menu_item(NULL, -1, 0), group = 0; } @@ -2211,7 +2247,7 @@ static int do_html_select(unsigned char *attr, unsigned char *html, unsigned cha unsigned char *la; if (!(la = get_attr_val(t_attr, cast_uchar "label"))) la = stracpy(cast_uchar ""); new_menu_item(convert_string(ct, la, (int)strlen(cast_const_char la), d_opt), -1, 0); - mem_free(la); + free(la); group = 1; } goto see; @@ -2317,7 +2353,7 @@ static void do_html_textarea(unsigned char *attr, unsigned char *html, unsigned if ((w = get_attr_val(attr, cast_uchar "wrap"))) { if (!casestrcmp(w, cast_uchar "hard") || !casestrcmp(w, cast_uchar "physical")) fc->wrap = 2; else if (!casestrcmp(w, cast_uchar "off")) fc->wrap = 0; - mem_free(w); + free(w); } if ((fc->maxlength = get_num(attr, cast_uchar "maxlength")) == -1) fc->maxlength = MAXINT / 4; if (rows > 1) ln_break(1); @@ -2348,9 +2384,9 @@ static void html_iframe(unsigned char *a) if (!(name = get_attr_val(a, cast_uchar "name"))) name = stracpy(cast_uchar ""); if (*name) put_link_line(cast_uchar "IFrame: ", name, url, d_opt->framename); else put_link_line(cast_uchar "", cast_uchar "IFrame", url, d_opt->framename); - mem_free(name); + free(name); free_url_ret: - mem_free(url); + free(url); } static void html_noframes(unsigned char *a) @@ -2365,11 +2401,13 @@ static void html_frame(unsigned char *a) url = stracpy(cast_uchar ""); } else { url = join_urls(format_.href_base, u2); - mem_free(u2); + free(u2); } name = get_attr_val(a, cast_uchar "name"); - if (name && !name[0]) - mem_free(name), name = NULL; + if (!name[0]) { + free(name); + name = NULL; + } if (!name) { name = get_attr_val(a, cast_uchar "src"); if (!name) @@ -2390,12 +2428,12 @@ static void html_frame(unsigned char *a) fp.scrolling = SCROLLING_NO; else if (!casestrcmp(scroll, cast_uchar "yes")) fp.scrolling = SCROLLING_YES; - mem_free(scroll); + free(scroll); } if (special_f(ff, SP_USED, NULL)) special_f(ff, SP_FRAME, &fp); } - mem_free(name); - mem_free(url); + free(name); + free(url); } static void parse_frame_widths(unsigned char *a, int ww, int www, int **op, int *olp) @@ -2479,7 +2517,7 @@ static void parse_frame_widths(unsigned char *a, int ww, int www, int **op, int q = 0; /*internal("parse_frame_widths: q > 0"); may happen when page contains too big values */ } - mem_free(oo); + free(oo); } for (i = 0; i < ol; i++) if (!o[i]) { int j; @@ -2513,11 +2551,11 @@ static void html_frameset(unsigned char *a) if (fp.x && fp.y) { html_top.frameset = special_f(ff, SP_FRAMESET, &fp); } - mem_free(fp.xw); - mem_free(fp.yw); + free(fp.xw); + free(fp.yw); free_cd: - mem_free(c); - mem_free(d); + free(c); + free(d); } /*static void html_frameset(unsigned char *a) @@ -2553,9 +2591,9 @@ static void html_frameset(unsigned char *a) } fp->parent = html_top.frameset; if (fp->n) html_top.frameset = special_f(ff, SP_FRAMESET, fp); - mem_free(fp); + free(fp); f: - mem_free(c); + free(c); }*/ static void html_meta(unsigned char *a) @@ -2567,10 +2605,10 @@ static void html_meta(unsigned char *a) if (host) { if (strstr(cast_const_char host, "instagram.")) html_img(a); - mem_free(host); + free(host); } } - mem_free(prop); + free(prop); } } @@ -2579,10 +2617,10 @@ static void html_link(unsigned char *a) unsigned char *name, *url, *title; if ((name = get_attr_val(a, cast_uchar "type"))) { if (casestrcmp(name, cast_uchar "text/html")) { - mem_free(name); + free(name); return; } - mem_free(name); + free(name); } if (!(url = get_url_val(a, cast_uchar "href"))) return; if (!(name = get_attr_val(a, cast_uchar "rel"))) @@ -2593,7 +2631,7 @@ static void html_link(unsigned char *a) if ((lang = get_attr_val(a, cast_uchar "hreflang"))) { add_to_strn(&name, cast_uchar " "); add_to_strn(&name, lang); - mem_free(lang); + free(lang); } } if (!name) { @@ -2626,26 +2664,26 @@ static void html_link(unsigned char *a) !casestrcmp(name, cast_uchar "preload")) { unsigned char *pre_url = join_urls(format_.href_base, url); if (!dmp) load_url(pre_url, format_.href_base, NULL, PRI_PRELOAD, NC_ALWAYS_CACHE, 0, 0, 0); - mem_free(pre_url); + free(pre_url); goto skip; } if (!casestrcmp(name, cast_uchar "dns-prefetch")) { unsigned char *pre_url, *host; pre_url = join_urls(format_.href_base, url); host = get_host_name(pre_url); - mem_free(pre_url); - mem_free(host); + free(pre_url); + free(host); goto skip; } if ((title = get_attr_val(a, cast_uchar "title"))) { if (*name) add_to_strn(&name, cast_uchar ": "); add_to_strn(&name, title); - mem_free(title); + free(title); } put_link_line(cast_uchar "Link: ", name, url, format_.target_base); skip: - mem_free(name); - mem_free(url); + free(name); + free(url); } struct element_info { @@ -2767,7 +2805,7 @@ static void process_head(unsigned char *head) if (!d_opt->auto_refresh) { if ((p = parse_header_param(r, cast_uchar "URL", 0)) || (p = parse_header_param(r, cast_uchar "", 0))) { put_link_line(cast_uchar "Refresh: ", p, p, d_opt->framename); - mem_free(p); + free(p); } } else { rp.url = parse_header_param(r, cast_uchar "URL", 0); @@ -2775,9 +2813,9 @@ static void process_head(unsigned char *head) rp.time = atoi(cast_const_char r); if (rp.time < 1) rp.time = 1; special_f(ff, SP_REFRESH, &rp); - if (rp.url) mem_free(rp.url); + free(rp.url); } - mem_free(r); + free(r); } } @@ -2961,7 +2999,7 @@ do { \ ln_break(ei->linebreak); if ((a = get_attr_val(attr, cast_uchar "id"))) { special(f, SP_TAG, a); - mem_free(a); + free(a); } if ((a = get_attr_val(attr, cast_uchar "style"))) { unsigned char *d, *s; @@ -2971,14 +3009,14 @@ do { \ if (aa) { if (!casestrcmp(aa, cast_uchar "hidden")) noskip = 1; - mem_free(aa); + free(aa); } } for (d = s = a; *s; s++) if (*s > ' ') *d++ = *s; *d = 0; display_none |= !casecmp(a, cast_uchar "display:none", 12) && !noskip; - mem_free(a); + free(a); } if (display_none) { if (ei->nopair == 1) goto set_lt; @@ -3079,7 +3117,7 @@ do { \ if (!inv) { if ((a = get_attr_val(attr, cast_uchar "id"))) { special(f, SP_TAG, a); - mem_free(a); + free(a); } } goto set_lt; @@ -3117,7 +3155,7 @@ int get_image_map(unsigned char *head, unsigned char *s, unsigned char *eof, uns scan_http_equiv(s, eof, &hd, &hdl, NULL, NULL, NULL, NULL, NULL); if (!gfx) ct = get_convert_table(hd, to, def, NULL, NULL, hdef); else ct = convert_table; - mem_free(hd); + free(hd); *menu = mem_calloc(sizeof(struct menu_item)); se: while (s < eof && *s != '<') { @@ -3125,7 +3163,7 @@ int get_image_map(unsigned char *head, unsigned char *s, unsigned char *eof, uns s++; } if (s >= eof) { - mem_free(*menu); + free(*menu); return -1; } if (s + 2 <= eof && (s[1] == '!' || s[1] == '?')) { @@ -3137,10 +3175,10 @@ int get_image_map(unsigned char *head, unsigned char *s, unsigned char *eof, uns if (tag && *tag) { if (!(al = get_attr_val(attr, cast_uchar "name"))) goto se; if (casestrcmp(al, tag)) { - mem_free(al); + free(al); goto se; } - mem_free(al); + free(al); } *ml = getml(NULL); se2: @@ -3150,7 +3188,7 @@ int get_image_map(unsigned char *head, unsigned char *s, unsigned char *eof, uns } if (s >= eof) { freeml(*ml); - mem_free(*menu); + free(*menu); return -1; } if (s + 2 <= eof && (s[1] == '!' || s[1] == '?')) { @@ -3167,9 +3205,9 @@ int get_image_map(unsigned char *head, unsigned char *s, unsigned char *eof, uns se4: while (ss < eof && *ss != '<') ss++; if (ss >= eof) { - mem_free(label); + free(label); freeml(*ml); - mem_free(*menu); + free(*menu); return -1; } add_bytes_to_str(&label, &lblen, s, ss - s); @@ -3193,8 +3231,11 @@ int get_image_map(unsigned char *head, unsigned char *s, unsigned char *eof, uns } } else if (namelen == 4 && !casecmp(name, cast_uchar "AREA", 4)) { unsigned char *l = get_attr_val(attr, cast_uchar "alt"); - if (l) label = !gfx ? convert_string(ct, l, (int)strlen(cast_const_char l), d_opt) : stracpy(l), mem_free(l); - else label = NULL; + if (l) { + label = !gfx ? convert_string(ct, l, (int)strlen(cast_const_char l), d_opt) : stracpy(l); + free(l); + } else + label = NULL; } else if (namelen == 4 && !casecmp(name, cast_uchar "/MAP", 4)) goto done; else goto se2; href = get_url_val(attr, cast_uchar "href"); @@ -3203,7 +3244,7 @@ int get_image_map(unsigned char *head, unsigned char *s, unsigned char *eof, uns ld = mem_calloc(sizeof(struct link_def)); if (href) { ld->link = join_urls(href_base, href); - mem_free(href); + free(href); } ld->target = target; @@ -3220,25 +3261,52 @@ int get_image_map(unsigned char *head, unsigned char *s, unsigned char *eof, uns scan_area_tag(attr, cast_uchar "onmousemove", &ld->onmousemove, ml); if (label) clr_spaces(label, 1); - if (label && !*label) mem_free(label), label = NULL; + if (!*label) { + free(label); + label = NULL; + } ld->label = label; if (!label) label = stracpy(ld->link); - if (label && !*label) mem_free(label), label = NULL; + if (!*label) { + free(label); + label = NULL; + } if (!label) label = stracpy(ld->onclick); - if (label && !*label) mem_free(label), label = NULL; + if (!*label) { + free(label); + label = NULL; + } if (!label && !gfx) goto se2; if (!label) label = stracpy(ld->onmousedown); - if (label && !*label) mem_free(label), label = NULL; + if (!*label) { + free(label); + label = NULL; + } if (!label) label = stracpy(ld->onmouseup); - if (label && !*label) mem_free(label), label = NULL; + if (!*label) { + free(label); + label = NULL; + } if (!label) label = stracpy(ld->ondblclick); - if (label && !*label) mem_free(label), label = NULL; + if (!*label) { + free(label); + label = NULL; + } if (!label) label = stracpy(ld->onmouseover); - if (label && !*label) mem_free(label), label = NULL; + if (!*label) { + free(label); + label = NULL; + } if (!label) label = stracpy(ld->onmouseout); - if (label && !*label) mem_free(label), label = NULL; + if (!*label) { + free(label); + label = NULL; + } if (!label) label = stracpy(ld->onmousemove); - if (label && !*label) mem_free(label), label = NULL; + if (!*label) { + free(label); + label = NULL; + } if (!label) goto se2; add_to_ml(ml, label, NULL); @@ -3326,13 +3394,17 @@ void scan_http_equiv(unsigned char *s, unsigned char *eof, unsigned char **head, add_to_str(head, hdl, cast_uchar "Charset: "); add_to_str(head, hdl, he); add_to_str(head, hdl, cast_uchar "\r\n"); - mem_free(he); + free(he); } if (!(he = get_attr_val(attr, cast_uchar "http-equiv"))) goto se; c = get_attr_val(attr, cast_uchar "content"); add_to_str(head, hdl, he); - if (c) add_to_str(head, hdl, cast_uchar ": "), add_to_str(head, hdl, c), mem_free(c); - mem_free(he); + if (c) { + add_to_str(head, hdl, cast_uchar ": "); + add_to_str(head, hdl, c); + free(c); + } + free(he); add_to_str(head, hdl, cast_uchar "\r\n"); goto se; } diff --git a/html_gr.c b/html_gr.c @@ -113,7 +113,7 @@ static struct style *get_style_by_ta(struct text_attrib *ta) (ta->bg.g << 8) + ta->bg.b, fs, fontname=make_html_font_name(ta->attr), ta->attr & AT_UNDERLINE ? FF_UNDERLINE : 0); - mem_free(fontname); + free(fontname); return stl; } @@ -407,7 +407,7 @@ static void g_html_form_control(struct g_part *p, struct form_control *fc) { if (!p->data) { /*destroy_fc(fc); - mem_free(fc);*/ + free(fc);*/ add_to_list(p->uf, fc); return; } @@ -416,7 +416,7 @@ static void g_html_form_control(struct g_part *p, struct form_control *fc) if (fc->type == FC_TEXT || fc->type == FC_PASSWORD || fc->type == FC_TEXTAREA) { unsigned char *dv = convert_string(convert_table, fc->default_value, (int)strlen(cast_const_char fc->default_value), d_opt); if (dv) { - mem_free(fc->default_value); + free(fc->default_value); fc->default_value = dv; } } @@ -443,8 +443,8 @@ void release_image_map(struct image_map *map) if (!map) return; for (i = 0; i < map->n_areas; i++) - mem_free(map->area[i].coords); - mem_free(map); + free(map->area[i].coords); + free(map); } int is_in_area(struct map_area *a, int x, int y) @@ -507,7 +507,7 @@ static void do_image(struct g_part *p, struct image_description *im) im->link_num = (int)(link - p->data->links); im->link_order = link->obj_order; link->obj_order = safe_add(link->obj_order, 1); - if (link->img_alt) mem_free(link->img_alt); + free(link->img_alt); link->img_alt = stracpy(im->alt); } io = insert_image(p, im); diff --git a/html_r.c b/html_r.c @@ -32,19 +32,19 @@ struct f_data *init_formatted(struct document_options *opt) void destroy_fc(struct form_control *fc) { int i; - if (fc->action) mem_free(fc->action); - if (fc->target) mem_free(fc->target); - if (fc->form_name) mem_free(fc->form_name); - if (fc->onsubmit) mem_free(fc->onsubmit); - if (fc->name) mem_free(fc->name); - if (fc->alt) mem_free(fc->alt); - if (fc->default_value) mem_free(fc->default_value); + free(fc->action); + free(fc->target); + free(fc->form_name); + free(fc->onsubmit); + free(fc->name); + free(fc->alt); + free(fc->default_value); for (i = 0; i < fc->nvalues; i++) { - if (fc->values[i]) mem_free(fc->values[i]); - if (fc->labels[i]) mem_free(fc->labels[i]); + free(fc->values[i]); + free(fc->labels[i]); } - if (fc->values) mem_free(fc->values); - if (fc->labels) mem_free(fc->labels); + free(fc->values); + free(fc->labels); if (fc->menu) free_menu(fc->menu); } @@ -53,10 +53,10 @@ void free_frameset_desc(struct frameset_desc *fd) int i; for (i = 0; i < fd->n; i++) { if (fd->f[i].subframe) free_frameset_desc(fd->f[i].subframe); - if (fd->f[i].name) mem_free(fd->f[i].name); - if (fd->f[i].url) mem_free(fd->f[i].url); + free(fd->f[i].name); + free(fd->f[i].url); } - mem_free(fd); + free(fd); } struct frameset_desc *copy_frameset_desc(struct frameset_desc *fd) @@ -85,7 +85,7 @@ void free_additional_files(struct additional_files **a) } foreach(struct additional_file, af, laf, (*a)->af) release_object(&af->rq); free_list(struct additional_file, (*a)->af); - mem_free(*a); + free(*a); *a = NULL; } @@ -108,24 +108,26 @@ static void clear_formatted(struct f_data *scr) #endif release_object(&scr->rq); free_additional_files(&scr->af); - if (scr->title) mem_free(scr->title); + free(scr->title); if (scr->frame_desc) { free_frameset_desc(scr->frame_desc); } for (n = 0; n < scr->nlinks; n++) { struct link *l = &scr->links[n]; - if (l->where) mem_free(l->where); - if (l->target) mem_free(l->target); - if (l->where_img) mem_free(l->where_img); - if (l->img_alt) mem_free(l->img_alt); - if (l->pos) mem_free(l->pos); + free(l->where); + free(l->target); + free(l->where_img); + free(l->img_alt); + free(l->pos); } - mem_free(scr->links); - if (!F) for (y = 0; y < scr->y; y++) mem_free(scr->data[y].d); - mem_free(scr->data); - if (scr->lines1) mem_free(scr->lines1); - if (scr->lines2) mem_free(scr->lines2); - if (scr->opt.framename) mem_free(scr->opt.framename); + free(scr->links); + if (!F) + for (y = 0; y < scr->y; y++) + free(scr->data[y].d); + free(scr->data); + free(scr->lines1); + free(scr->lines2); + free(scr->opt.framename); foreach(struct form_control, fc, lfc, scr->forms) { destroy_fc(fc); } @@ -134,12 +136,12 @@ static void clear_formatted(struct f_data *scr) free_list(struct node, scr->nodes); #ifdef G free_list(struct image_refresh, scr->image_refresh); - if (scr->srch_string) mem_free(scr->srch_string); - if (scr->last_search) mem_free(scr->last_search); - if (scr->search_positions) mem_free(scr->search_positions); - if (scr->search_lengths) mem_free(scr->search_lengths); + free(scr->srch_string); + free(scr->last_search); + free(scr->search_positions); + free(scr->search_lengths); #endif - if (scr->refresh) mem_free(scr->refresh); + free(scr->refresh); } void destroy_formatted(struct f_data *scr) @@ -149,7 +151,7 @@ void destroy_formatted(struct f_data *scr) return; } clear_formatted(scr); - mem_free(scr); + free(scr); } static inline int color_distance(struct rgb *c1, struct rgb *c2) @@ -468,7 +470,7 @@ static inline void shift_chars(struct part *p, int y, int s) memcpy(a, &POS(0, y), l * sizeof(chr)); set_hchars(p, 0, y, s, ' ', p->attribute); copy_chars(p, s, y, l, a); - mem_free(a); + free(a); move_links(p, 0, y, s, y); } @@ -560,7 +562,7 @@ void html_tag(struct f_data *f, unsigned char *t, int x, int y) strcpy(cast_char tag->name, cast_const_char tt); add_to_list(f->tags, tag); if (last_tag_for_newline == &f->tags) last_tag_for_newline = &tag->list_entry; - mem_free(tt); + free(tt); } unsigned char *last_link = NULL; @@ -649,7 +651,7 @@ static void put_chars(void *p_, unsigned char *c, int l) } utf_done: if (!ll) { - mem_free(uni_c); + free(uni_c); return; } } else @@ -666,7 +668,7 @@ static void put_chars(void *p_, unsigned char *c, int l) end_format_change: if (p->y < safe_add(p->cy, 1)) p->y = p->cy + 1; if (nowrap && safe_add(p->cx, ll) > rm(par_format)) { - mem_free(uni_c); + free(uni_c); return; } if (d_opt->cp == utf8_table && !(format_.attr & AT_GRAPHICS)) { @@ -686,7 +688,7 @@ static void put_chars(void *p_, unsigned char *c, int l) } p->xa = safe_add(p->xa, ll); if (safe_add(p->xa - (c[l-1] == ' ' && par_format.align != AL_NO && par_format.align != AL_NO_BREAKABLE), safe_add(par_format.leftmargin, par_format.rightmargin)) > p->xmax) p->xmax = p->xa - (c[l-1] == ' ' && par_format.align != AL_NO && par_format.align != AL_NO_BREAKABLE) + par_format.leftmargin + par_format.rightmargin; - mem_free(uni_c); + free(uni_c); return; /* !!! WARNING: THE FOLLOWING CODE IS SHADOWED IN HTML_GR.C */ @@ -706,9 +708,9 @@ static void put_chars(void *p_, unsigned char *c, int l) goto set_link; x:; } else { - if (last_link) mem_free(last_link); - if (last_target) mem_free(last_target); - if (last_image) mem_free(last_image); + free(last_link); + free(last_target); + free(last_image); last_link = last_target = last_image = NULL; last_form = NULL; last_js_event = NULL; @@ -836,7 +838,7 @@ static void html_form_control(struct part *p, struct form_control *fc) if (fc->type == FC_TEXT || fc->type == FC_PASSWORD || fc->type == FC_TEXTAREA) { unsigned char *dv = convert_string(convert_table, fc->default_value, (int)strlen(cast_const_char fc->default_value), d_opt); if (dv) { - mem_free(fc->default_value); + free(fc->default_value); fc->default_value = dv; } } @@ -882,7 +884,10 @@ struct frameset_desc *create_frameset(struct f_data *fda, struct frameset_param } if (fp->parent) add_frameset_entry(fp->parent, fd, NULL, NULL, -1, -1, SCROLLING_AUTO); else if (!fda->frame_desc) fda->frame_desc = fd; - else mem_free(fd), fd = NULL; + else { + free(fd); + fd = NULL; + } return fd; } @@ -1016,9 +1021,9 @@ struct part *format_html_part(unsigned char *start, unsigned char *end, int alig last_tag_for_newline = data ? &data->tags : NULL; margin = m; empty_format = !data; - if (last_link) mem_free(last_link); - if (last_image) mem_free(last_image); - if (last_target) mem_free(last_target); + free(last_link); + free(last_image); + free(last_target); last_link = last_image = last_target = NULL; last_form = NULL; last_js_event = NULL; @@ -1057,9 +1062,9 @@ struct part *format_html_part(unsigned char *start, unsigned char *end, int alig } nobreak = 0; line_breax = 1; - if (last_link) mem_free(last_link); - if (last_image) mem_free(last_image); - if (last_target) mem_free(last_target); + free(last_link); + free(last_image); + free(last_target); while (&html_top != e) { kill_html_stack_item(&html_top); if (!&html_top || (void *)&html_top == (void *)&html_stack) { @@ -1069,7 +1074,7 @@ struct part *format_html_part(unsigned char *start, unsigned char *end, int alig } html_top.dontkill = 0; kill_html_stack_item(&html_top); - mem_free(p->spaces); + free(p->spaces); if (data) { struct node *n = list_struct(data->nodes.next, struct node); n->yw = ys - n->y + p->y; @@ -1092,7 +1097,7 @@ struct part *format_html_part(unsigned char *start, unsigned char *end, int alig static void release_part(struct part *p) { - mem_free(p); + free(p); } static void push_base_format(unsigned char *url, struct document_options *opt, int frame, int implicit_pre_wrap) @@ -1138,17 +1143,17 @@ struct conv_table *get_convert_table(unsigned char *head, int to, int def, int * while (from == -1 && (a = parse_http_header(p, cast_uchar "Content-Type", &p))) { if ((b = parse_header_param(a, cast_uchar "charset", 0))) { from = get_cp_index(b); - mem_free(b); + free(b); } - mem_free(a); + free(a); } if (from == -1 && (a = parse_http_header(head, cast_uchar "Content-Charset", NULL))) { from = get_cp_index(a); - mem_free(a); + free(a); } if (from == -1 && (a = parse_http_header(head, cast_uchar "Charset", NULL))) { from = get_cp_index(a); - mem_free(a); + free(a); } if (aa) { *aa = from == -1; @@ -1195,7 +1200,7 @@ void really_format_html(struct cache_entry *ce, unsigned char *start, unsigned c i = d_opt->plain; d_opt->plain = 0; screen->title = convert_string(convert_table, t, (int)strlen(cast_const_char t), d_opt); d_opt->plain = i; - mem_free(t); + free(t); push_base_format(url, &screen->opt, frame, implicit_pre_wrap); table_level = 0; g_ctrl_num = 0; @@ -1218,26 +1223,33 @@ void really_format_html(struct cache_entry *ce, unsigned char *start, unsigned c g_x_extend_area(rp->root, w, h, AL_LEFT); screen->root = &rp->root->go, rp->root = NULL; g_release_part(rp); - mem_free(rp); + free(rp); get_parents(screen, screen->root); } #endif } - mem_free(head); - if (bg) mem_free(bg); - if (bgcolor) mem_free(bgcolor); + free(head); + free(bg); + free(bgcolor); if (!F) { screen->x = 0; for (i = screen->y - 1; i >= 0; i--) { - if (!screen->data[i].l) mem_free(screen->data[i].d), screen->y--; - else break; + if (!screen->data[i].l) { + free(screen->data[i].d); + screen->y--; + } else + break; } for (i = 0; i < screen->y; i++) if (screen->data[i].l > screen->x) screen->x = screen->data[i].l; } - if (form.action) mem_free(form.action), form.action = NULL; - if (form.target) mem_free(form.target), form.target = NULL; - if (form.form_name) mem_free(form.form_name), form.form_name = NULL; - if (form.onsubmit) mem_free(form.onsubmit), form.onsubmit = NULL; + free(form.action); + free(form.target); + free(form.form_name); + free(form.onsubmit); + form.action = NULL; + form.target = NULL; + form.form_name = NULL; + form.onsubmit = NULL; bg_col = find_nearest_color(&format_.bg, 8); fg_col = find_nearest_color(&format_.fg, 16); fg_col = fg_color(fg_col, bg_col); @@ -1325,10 +1337,12 @@ static int sort_srch(struct f_data *f) min = xmalloc(f->y * sizeof(int)); max = xmalloc(f->y * sizeof(int)); if (!f->slines1 || !f->slines2 || !min || !max) { - if (f->slines1) mem_free(f->slines1), f->slines1 = NULL; - if (f->slines2) mem_free(f->slines2), f->slines2 = NULL; - if (min) mem_free(min); - if (max) mem_free(max); + free(f->slines1); + free(f->slines2); + f->slines1 = NULL; + f->slines2 = NULL; + free(min); + free(max); return -1; } for (i = 0; i < f->y; i++) @@ -1342,8 +1356,8 @@ static int sort_srch(struct f_data *f) else xe = safe_add(s->x, s->n); if (xe > max[s->y]) max[s->y] = xe, f->slines2[s->y] = s->idx + s->co - 1; } - mem_free(min); - mem_free(max); + free(min); + free(max); return 0; } @@ -1462,7 +1476,7 @@ int get_search_data(struct f_data *f) if (!f->search_chr) return -1; f->search_pos = xmalloc(n_pos * sizeof(struct search)); if (!f->search_pos) { - mem_free(f->search_chr); + free(f->search_chr); f->search_chr = NULL; return -1; } @@ -1471,9 +1485,9 @@ int get_search_data(struct f_data *f) f->nsearch_chr = n_chr; f->nsearch_pos = n_pos; if (sort_srch(f)) { - mem_free(f->search_pos); + free(f->search_pos); f->search_pos = NULL; - mem_free(f->search_chr); + free(f->search_chr); f->search_chr = NULL; f->nsearch_chr = f->nsearch_pos = 0; return -1; diff --git a/html_tbl.c b/html_tbl.c @@ -50,7 +50,7 @@ static void get_align(unsigned char *attr, int *a) if (!(casestrcmp(al, cast_uchar "center"))) *a = AL_CENTER; if (!(casestrcmp(al, cast_uchar "justify"))) *a = AL_BLOCK; if (!(casestrcmp(al, cast_uchar "char"))) *a = AL_RIGHT; /* NOT IMPLEMENTED */ - mem_free(al); + free(al); } } @@ -62,7 +62,7 @@ static void get_valign(unsigned char *attr, int *a) if (!(casestrcmp(al, cast_uchar "middle"))) *a = VAL_MIDDLE; if (!(casestrcmp(al, cast_uchar "bottom"))) *a = VAL_BOTTOM; if (!(casestrcmp(al, cast_uchar "baseline"))) *a = VAL_TOP; /* NOT IMPLEMENTED */ - mem_free(al); + free(al); } } @@ -80,7 +80,7 @@ static void get_c_width(unsigned char *attr, int *w, int sh) int p = get_width(attr, cast_uchar "width", sh); if (p >= 0) *w = p; } - mem_free(al); + free(al); } } @@ -219,33 +219,37 @@ static void free_table(struct table *t) int i, j; for (j = 0; j < t->y; j++) for (i = 0; i < t->x; i++) { struct table_cell *c = CELL(t, i, j); - if (c->tag) mem_free(c->tag); + free(c->tag); #ifdef G if (c->root) c->root->go.destruct(&c->root->go); if (c->tag_object) c->tag_object->go.destruct(&c->tag_object->go); - if (c->brd) mem_free(c->brd); + free(c->brd); #endif } #ifdef G if (F) { - for (i = 0; i < t->nr_frame; i++) mem_free(t->r_frame[i]); - if (t->r_frame) mem_free(t->r_frame); - for (i = 0; i < t->nr_bg; i++) mem_free(t->r_bg[i]); - if (t->r_bg) mem_free(t->r_bg); - for (i = 0; i < t->nr_cells; i++) mem_free(t->r_cells[i]); - mem_free(t->r_cells), mem_free(t->w_cells); + for (i = 0; i < t->nr_frame; i++) + free(t->r_frame[i]); + free(t->r_frame); + for (i = 0; i < t->nr_bg; i++) + free(t->r_bg[i]); + free(t->r_bg); + for (i = 0; i < t->nr_cells; i++) + free(t->r_cells[i]); + free(t->r_cells); + free(t->w_cells); free(t->frame_bg); } #endif - if (t->bordercolor) mem_free(t->bordercolor); - if (t->min_c) mem_free(t->min_c); - if (t->max_c) mem_free(t->max_c); - if (t->w_c) mem_free(t->w_c); - mem_free(t->r_heights); - mem_free(t->cols); - mem_free(t->xcols); - mem_free(t->cells); - mem_free(t); + free(t->bordercolor); + free(t->min_c); + free(t->max_c); + free(t->w_c); + free(t->r_heights); + free(t->cols); + free(t->xcols); + free(t->cells); + free(t); } static void expand_cells(struct table *t, int x, int y) @@ -309,7 +313,7 @@ static struct table_cell *new_cell(struct table *t, int x, int y) for (i = 0; i < t->x; i++) for (j = 0; j < t->y; j++) memcpy(CELL(&nt, i, j), CELL(t, i, j), sizeof(struct table_cell)); - mem_free(t->cells); + free(t->cells); t->cells = nt.cells; t->rx = nt.rx; t->ry = nt.ry; @@ -571,7 +575,7 @@ static struct table *parse_table(unsigned char *html, unsigned char *eof, unsign 0) { cell->align = !par_format.implicit_pre_wrap ? AL_NO : AL_NO_BREAKABLE; } - mem_free(a); + free(a); } #ifdef G sprintf(cast_char cell->bgcolor_str, "#%02x%02x%02x", cell->bgcolor.r & 0xff, cell->bgcolor.g & 0xff, cell->bgcolor.b & 0xff); @@ -659,7 +663,7 @@ static void get_cell_width(struct table *t, struct table_cell *c, int w, int a, if (min) *min = p->x; if (max) *max = p->xmax; if (n_links) *n_links = p->link_num; - mem_free(p); + free(p); #ifdef G } else { struct g_part *gp; @@ -667,7 +671,7 @@ static void get_cell_width(struct table *t, struct table_cell *c, int w, int a, if (min) *min = gp->x; if (max) *max = gp->xmax; if (n_links) *n_links = gp->link_num; - mem_free(gp); + free(gp); #endif } /*debug("get_cell_width: %d < %d", *min, *max);*/ @@ -984,9 +988,9 @@ static void distribute_widths(struct table *t, int width) } else if (!wq) om++; } end2: - mem_free(mx); - mem_free(w); - if (u) mem_free(u); + free(mx); + free(w); + free(u); } #ifdef HTML_TABLE_2ND_PASS @@ -1021,7 +1025,7 @@ static void check_table_widths(struct table *t) if (!c->start) continue; if (c->colspan + i > t->x) { /*internal("colspan out of table");*/ - mem_free(w); + free(w); return; } if (c->colspan == s) { @@ -1054,7 +1058,7 @@ static void check_table_widths(struct table *t) } if (ns > s) { /*internal("new width(%d) is larger than previous(%d)", ns, s);*/ - mem_free(w); + free(w); return; } m = -1; @@ -1066,12 +1070,12 @@ static void check_table_widths(struct table *t) if (m != -1) { w[mi] = safe_add(w[mi], s - ns); if (w[mi] <= t->max_c[mi]) { - mem_free(t->w_c); + free(t->w_c); t->w_c = w; return; } } - mem_free(w); + free(w); } #endif @@ -1109,7 +1113,7 @@ static void get_table_heights(struct table *t) if (!F) { if (!(p = format_html_part(cell->start, cell->end, cell->align, t->cellpd, xw, NULL, 2, 2, NULL, cell->link_num))) return; cell->height = p->y; - mem_free(p); + free(p); #ifdef G } else { if (!(gp = g_format_html_part(cell->start, cell->end, cell->align, 0, xw, NULL, cell->link_num, NULL /* FIX: background image */, cell->bgcolor_str, t->gp->data))) return; @@ -1119,7 +1123,7 @@ static void get_table_heights(struct table *t) cell->height = gp->y; cell->g_width = xw; g_release_part(gp); - mem_free(gp); + free(gp); #endif } /*debug("%d, %d.",xw, cell->height);*/ @@ -1214,7 +1218,7 @@ static void display_complicated_table(struct table *t, int x, int y, int *yy) xxpand_line(t->p, yp + yt, safe_add(xp, t->w_c[i])); } kill_html_stack_item(&html_top); - mem_free(p); + free(p); } cell->xpos = xp; cell->ypos = yp; @@ -1349,8 +1353,8 @@ static void display_table_frames(struct table *t, int x, int y) if (j < t->y) cy = safe_add(cy, t->r_heights[j]); /*for (cyy = cy1; cyy < cy; cyy++) xxpand_line(t->p, cyy, cx - 1);*/ } - mem_free(fh); - mem_free(fv); + free(fh); + free(fv); } #ifdef G @@ -1417,23 +1421,22 @@ void format_table(unsigned char *attr, unsigned char *html, unsigned char *eof, if (align == AL_NO || align == AL_NO_BREAKABLE || align == AL_BLOCK) align = AL_LEFT; if ((al = get_attr_val(attr, cast_uchar "summary"))) { if (!strcmp(cast_const_char al, "diff")) { - mem_free(al); + free(al); if ((al = get_attr_val(attr, cast_uchar "class"))) { if (!strcmp(cast_const_char al, "diff")) { format_.attr |= AT_FIXED; par_format.align = AL_NO; } - mem_free(al); + free(al); } - } else { - mem_free(al); - } + } else + free(al); } if ((al = get_attr_val(attr, cast_uchar "align"))) { if (!casestrcmp(al, cast_uchar "left")) align = AL_LEFT; if (!casestrcmp(al, cast_uchar "center")) align = AL_CENTER; if (!casestrcmp(al, cast_uchar "right")) align = AL_RIGHT; - mem_free(al); + free(al); } frame = F_BOX; if ((al = get_attr_val(attr, cast_uchar "frame"))) { @@ -1446,7 +1449,7 @@ void format_table(unsigned char *attr, unsigned char *html, unsigned char *eof, if (!casestrcmp(al, cast_uchar "rhs")) frame = F_RHS; if (!casestrcmp(al, cast_uchar "box")) frame = F_BOX; if (!casestrcmp(al, cast_uchar "border")) frame = F_BOX; - mem_free(al); + free(al); } rules = border ? R_ALL : R_NONE; if ((al = get_attr_val(attr, cast_uchar "rules"))) { @@ -1455,7 +1458,7 @@ void format_table(unsigned char *attr, unsigned char *html, unsigned char *eof, if (!casestrcmp(al, cast_uchar "rows")) rules = R_ROWS; if (!casestrcmp(al, cast_uchar "cols")) rules = R_COLS; if (!casestrcmp(al, cast_uchar "all")) rules = R_ALL; - mem_free(al); + free(al); } if (!border) frame = F_VOID; wf = 0; @@ -1470,7 +1473,7 @@ void format_table(unsigned char *attr, unsigned char *html, unsigned char *eof, while (bad_html[i].s < bad_html[i].e && WHITECHAR(bad_html[i].e[-1])) bad_html[i].e--; if (bad_html[i].s < bad_html[i].e) parse_html(bad_html[i].s, bad_html[i].e, put_chars_f, line_break_f, special_f, gf_val((void *)p, (void *)gp), NULL); } - mem_free(bad_html); + free(bad_html); #ifdef G if (F) { t->gp = gp; @@ -1698,7 +1701,7 @@ static void table_destruct(struct g_object *o_) { struct g_object_table *o = get_struct(o_, struct g_object_table, go); free_table(o->t); - mem_free(o); + free(o); } static void table_get_list(struct g_object *o_, void (*fn)(struct g_object *parent, struct g_object *child)) @@ -1868,8 +1871,8 @@ static void process_g_table(struct g_part *gp, struct table *t) } } - mem_free(fh); - mem_free(fv); + free(fh); + free(fv); o = mem_calloc(sizeof(struct g_object_table)); o->go.mouse_event = table_mouse_event; diff --git a/https.c b/https.c @@ -102,7 +102,7 @@ links_ssl *getSSL(void) int os_pool_size; os_seed_random(&os_pool, &os_pool_size); if (os_pool_size) RAND_add(os_pool, os_pool_size, os_pool_size); - mem_free(os_pool); + free(os_pool); } OPENSSL_init_ssl(0, NULL); @@ -150,7 +150,7 @@ links_ssl *getSSL(void) ssl->ssl = SSL_new(ssl->ctx); clear_ssl_errors(__LINE__); if (!ssl->ssl) { - mem_free(ssl); + free(ssl); return NULL; } ssl->bytes_read = ssl->bytes_written = 0; @@ -171,7 +171,7 @@ void freeSSL(links_ssl *ssl) clear_ssl_errors(__LINE__); } SSL_free(ssl->ssl); - mem_free(ssl); + free(ssl); } void ssl_finish(void) @@ -337,7 +337,7 @@ static void set_session_cache_entry(SSL_CTX *ctx, unsigned char *host, int port, sce->session = s; } else { del_from_list(sce); - mem_free(sce); + free(sce); } return; } @@ -373,7 +373,7 @@ void retrieve_ssl_session(struct connection *c) if (s) c->ssl->session_retrieved = 1; set_session_cache_entry(c->ssl->ctx, h, p, s); - mem_free(h); + free(h); clear_ssl_errors(__LINE__); } } @@ -395,7 +395,7 @@ delete_last: ld = d->list_entry.prev; del_from_list(d); SSL_SESSION_free(d->session); - mem_free(d); + free(d); f = ST_SOMETHING_FREED; } ret: