Skip to content

Commit

Permalink
Dev: Release bry_bfr in Tag_html_wkr_basic [#351]
Browse files Browse the repository at this point in the history
  • Loading branch information
gnosygnu committed Feb 6, 2019
1 parent ba40cf6 commit 571f0a2
Show file tree
Hide file tree
Showing 7 changed files with 37 additions and 11 deletions.
6 changes: 4 additions & 2 deletions 400_xowa/src/gplx/xowa/apps/servers/http/Http_server_mgr.java
Expand Up @@ -110,8 +110,10 @@ public String Parse_page_to_html(Http_data__client data__client, byte[] wiki_dom
// generate ttl of domain/wiki/page; needed for pages with leading slash; EX: "/abcd" -> "en.wikipedia.org/wiki//abcd"; ISSUE#:301; DATE:2018-12-16
else {
Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_m001();
tmp_bfr.Add(wiki.Domain_bry()).Add(gplx.xowa.htmls.hrefs.Xoh_href_.Bry__wiki).Add(ttl_bry);
ttl_bry = tmp_bfr.To_bry_and_clear_and_rls();
try {
tmp_bfr.Add(wiki.Domain_bry()).Add(gplx.xowa.htmls.hrefs.Xoh_href_.Bry__wiki).Add(ttl_bry);
ttl_bry = tmp_bfr.To_bry_and_clear();
} finally {tmp_bfr.Mkr_rls();}
}
Xoa_url url = wiki.Utl__url_parser().Parse(ttl_bry);
Xoa_ttl ttl = Xoa_ttl.Parse(wiki, url.To_bry_page_w_anch()); // changed from ttl_bry to page_w_anch; DATE:2017-07-24
Expand Down
7 changes: 6 additions & 1 deletion 400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr.java
Expand Up @@ -48,6 +48,7 @@ public void Write_page(Bry_bfr rv, Xoae_page page, Xop_ctx ctx, Xoh_page_html_so
break;
}
Bry_bfr page_bfr = wiki.Utl__bfr_mkr().Get_m001(); // NOTE: get separate page rv to output page; do not reuse tmp_bfr b/c it will be used inside Fmt_do
try {
Xoh_wtr_ctx hctx = null;
if (page_mode == Xopg_page_.Tid_html
&& wiki.Html__hdump_mgr().Load_mgr().Html_mode().Tid() == Xow_hdump_mode.Hdump_save.Tid()) {
Expand All @@ -65,6 +66,7 @@ public void Write_page(Bry_bfr rv, Xoae_page page, Xop_ctx ctx, Xoh_page_html_so
Write_page_by_tid(ctx, hctx, page_mode, rv, mgr.Page_html_fmtr(), Gfh_utl.Escape_html_as_bry(rv.To_bry_and_clear()));
wdata_lang_wtr.Page_(null);
}
} finally {page_bfr.Mkr_rls();}
}
else
Write_body(rv, ctx, Xoh_wtr_ctx.Basic, page);
Expand Down Expand Up @@ -183,6 +185,7 @@ private void Write_body_wikitext(Bry_bfr bfr, Xoae_app app, Xowe_wiki wiki, byte
// get separate bfr; note that bfr already has <html> and <head> written to it, so this can't be passed to tidy; DATE:2014-06-11
Bry_bfr tidy_bfr = wiki.Utl__bfr_mkr().Get_m001();

try {
// write wikitext
if (page.Html_data().Skip_parse()) {
tidy_bfr.Add(page.Html_data().Custom_body());
Expand All @@ -206,7 +209,9 @@ private void Write_body_wikitext(Bry_bfr bfr, Xoae_app app, Xowe_wiki wiki, byte

// add back to main bfr
bfr.Add_bfr_and_clear(tidy_bfr);
tidy_bfr.Mkr_rls();
} finally {
tidy_bfr.Mkr_rls();
}

// handle Categories at bottom of page; note that html is XOWA-generated so does not need to be tidied
int ctgs_len = page.Wtxt().Ctgs__len();
Expand Down
8 changes: 5 additions & 3 deletions 400_xowa/src/gplx/xowa/parsers/tmpls/Xot_tmpl_wtr.java
Expand Up @@ -19,9 +19,11 @@ XOWA is licensed under the terms of the General Public License (GPL) Version 3,
public class Xot_tmpl_wtr {
public static byte[] Write_all(Xop_ctx ctx, Xot_invk frame, Xop_root_tkn root, byte[] src) {
Bry_bfr bfr = ctx.Wiki().Utl__bfr_mkr().Get_m001().Reset_if_gt(Io_mgr.Len_mb);
Write_tkn(bfr, ctx, frame, src, src.length, root);
byte[] rv = bfr.To_bry_and_rls();
return ctx.Wiki().Parser_mgr().Uniq_mgr().Parse(rv); // NOTE: noops if no UNIQs; // UNIQ; DATE:2017-03-31
try {
Write_tkn(bfr, ctx, frame, src, src.length, root);
byte[] rv = bfr.To_bry_and_clear();
return ctx.Wiki().Parser_mgr().Uniq_mgr().Parse(rv); // NOTE: noops if no UNIQs; // UNIQ; DATE:2017-03-31
} finally {bfr.Mkr_rls();}
}
private static void Write_tkn(Bry_bfr rslt_bfr, Xop_ctx ctx, Xot_invk frame, byte[] src, int src_len, Xop_tkn_itm tkn) {
switch (tkn.Tkn_tid()) {
Expand Down
6 changes: 6 additions & 0 deletions 400_xowa/src/gplx/xowa/parsers/xndes/Xop_xnde_tkn.java
Expand Up @@ -112,6 +112,7 @@ public class Xop_xnde_tkn extends Xop_tkn_itm_base implements Xop_tblw_tkn {
cur_bfr = ctx.Wiki().Utl__bfr_mkr().Get_m001().Reset_if_gt(Io_mgr.Len_mb);
}

try {
// write tag_bgn; EX: <poem>
cur_bfr.Add_mid(src, tag_open_bgn, tag_open_end);

Expand All @@ -135,6 +136,11 @@ public class Xop_xnde_tkn extends Xop_tkn_itm_base implements Xop_tblw_tkn {
byte[] key = ctx.Wiki().Parser_mgr().Uniq_mgr().Add(Bool_.Y, tag.Name_bry(), val);
bfr.Add(key);
}
} finally {
if (is_tmpl_mode) {
cur_bfr.Mkr_rls();
}
}
}
break;
}
Expand Down
8 changes: 6 additions & 2 deletions 400_xowa/src/gplx/xowa/xtns/lst/Lst_pfunc_itm.java
Expand Up @@ -44,8 +44,12 @@ public static Lst_pfunc_itm New_sect_or_null(Xop_ctx ctx, byte[] ttl_bry) {

// eval tmpl
Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_m001();
tmpl.Tmpl_evaluate(sub_ctx, Xot_invk_temp.Page_is_caller, tmp_bfr);
sub_src = tmp_bfr.To_bry_and_rls();
try {
tmpl.Tmpl_evaluate(sub_ctx, Xot_invk_temp.Page_is_caller, tmp_bfr);
sub_src = tmp_bfr.To_bry_and_clear();
} finally {
tmp_bfr.Mkr_rls();
}

// parse again
if (!wiki.Parser_mgr().Tmpl_stack_add(ttl.Full_db())) return null; // put template back on stack;
Expand Down
6 changes: 5 additions & 1 deletion 400_xowa/src/gplx/xowa/xtns/proofreadPage/Pp_pages_nde.java
Expand Up @@ -324,6 +324,7 @@ private byte[] Bld_wikitext_from_ttls(Bry_bfr full_bfr, Hash_adp_bry lst_page_re
Xoa_ttl end_page_ttl = end_page_bry == null ? null : ary[ary_len - 1];

Bry_bfr page_bfr = wiki.Utl__bfr_mkr().Get_m001();
try {
for (int i = 0; i < ary_len; i++) {
Xoa_ttl ttl = ary[i];
byte[] ttl_page_db = ttl.Page_db();
Expand Down Expand Up @@ -351,7 +352,10 @@ else if (ttl.Eq_page_db(end_page_ttl)) {
full_bfr.Add_bfr_and_clear(page_bfr);
full_bfr.Add(gplx.langs.htmls.entitys.Gfh_entity_.Space_bry); // $out.= "&#32;"; REF.MW:ProofreadPageRenderer.pn
}
page_bfr.Mkr_rls();
}
finally {
page_bfr.Mkr_rls();
}
return full_bfr.To_bry_and_clear();
}
private Xop_root_tkn Bld_root_nde(Bry_bfr page_bfr, Hash_adp_bry lst_page_regy, byte[] wikitext) {
Expand Down
7 changes: 5 additions & 2 deletions 400_xowa/src/gplx/xowa/xtns/scores/Score_xnde.java
Expand Up @@ -131,8 +131,11 @@ public void Hcmd_exec(Xoae_app app, Gfo_usr_dlg usr_dlg, Xoae_page page) {
}
else {
Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_m001();
ly_text = code_is_raw ? code : score_xtn.Lilypond_fmtr().Bld_bry_many(tmp_bfr, Score_xtn_mgr.Lilypond_version, code);
tmp_bfr.Mkr_rls();
try {
ly_text = code_is_raw ? code : score_xtn.Lilypond_fmtr().Bld_bry_many(tmp_bfr, Score_xtn_mgr.Lilypond_version, code);
} finally {
tmp_bfr.Mkr_rls();
}
Io_mgr.Instance.SaveFilBry(ly_file, ly_text);
}
ly_process.Working_dir_(ly_file.OwnerDir()); // NOTE: must change working_dir, else file will be dumped into same dir as lilypond.exe
Expand Down

0 comments on commit 571f0a2

Please sign in to comment.