1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2024-10-27 20:34:16 +00:00

Dev: Release bry_bfr in Tag_html_wkr_basic [#351]

This commit is contained in:
gnosygnu 2019-02-05 22:37:45 -05:00
parent ba40cf6c69
commit 571f0a2388
7 changed files with 37 additions and 11 deletions

View File

@ -110,8 +110,10 @@ public class Http_server_mgr implements Gfo_invk {
// 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 // 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 { else {
Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_m001(); 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); try {
ttl_bry = tmp_bfr.To_bry_and_clear_and_rls(); 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_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 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

View File

@ -48,6 +48,7 @@ public class Xoh_page_wtr_wkr {
break; 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 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; Xoh_wtr_ctx hctx = null;
if (page_mode == Xopg_page_.Tid_html if (page_mode == Xopg_page_.Tid_html
&& wiki.Html__hdump_mgr().Load_mgr().Html_mode().Tid() == Xow_hdump_mode.Hdump_save.Tid()) { && wiki.Html__hdump_mgr().Load_mgr().Html_mode().Tid() == Xow_hdump_mode.Hdump_save.Tid()) {
@ -65,6 +66,7 @@ public class Xoh_page_wtr_wkr {
Write_page_by_tid(ctx, hctx, page_mode, rv, mgr.Page_html_fmtr(), Gfh_utl.Escape_html_as_bry(rv.To_bry_and_clear())); 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); wdata_lang_wtr.Page_(null);
} }
} finally {page_bfr.Mkr_rls();}
} }
else else
Write_body(rv, ctx, Xoh_wtr_ctx.Basic, page); Write_body(rv, ctx, Xoh_wtr_ctx.Basic, page);
@ -183,6 +185,7 @@ public class Xoh_page_wtr_wkr {
// 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 // 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(); Bry_bfr tidy_bfr = wiki.Utl__bfr_mkr().Get_m001();
try {
// write wikitext // write wikitext
if (page.Html_data().Skip_parse()) { if (page.Html_data().Skip_parse()) {
tidy_bfr.Add(page.Html_data().Custom_body()); tidy_bfr.Add(page.Html_data().Custom_body());
@ -206,7 +209,9 @@ public class Xoh_page_wtr_wkr {
// add back to main bfr // add back to main bfr
bfr.Add_bfr_and_clear(tidy_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 // 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(); int ctgs_len = page.Wtxt().Ctgs__len();

View File

@ -19,9 +19,11 @@ import gplx.xowa.parsers.xndes.*; import gplx.xowa.parsers.miscs.*;
public class Xot_tmpl_wtr { public class Xot_tmpl_wtr {
public static byte[] Write_all(Xop_ctx ctx, Xot_invk frame, Xop_root_tkn root, byte[] src) { 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); 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); try {
byte[] rv = bfr.To_bry_and_rls(); Write_tkn(bfr, ctx, frame, src, src.length, root);
return ctx.Wiki().Parser_mgr().Uniq_mgr().Parse(rv); // NOTE: noops if no UNIQs; // UNIQ; DATE:2017-03-31 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) { 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()) { switch (tkn.Tkn_tid()) {

View File

@ -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); cur_bfr = ctx.Wiki().Utl__bfr_mkr().Get_m001().Reset_if_gt(Io_mgr.Len_mb);
} }
try {
// write tag_bgn; EX: <poem> // write tag_bgn; EX: <poem>
cur_bfr.Add_mid(src, tag_open_bgn, tag_open_end); cur_bfr.Add_mid(src, tag_open_bgn, tag_open_end);
@ -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); byte[] key = ctx.Wiki().Parser_mgr().Uniq_mgr().Add(Bool_.Y, tag.Name_bry(), val);
bfr.Add(key); bfr.Add(key);
} }
} finally {
if (is_tmpl_mode) {
cur_bfr.Mkr_rls();
}
}
} }
break; break;
} }

View File

@ -44,8 +44,12 @@ public class Lst_pfunc_itm {
// eval tmpl // eval tmpl
Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_m001(); Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_m001();
tmpl.Tmpl_evaluate(sub_ctx, Xot_invk_temp.Page_is_caller, tmp_bfr); try {
sub_src = tmp_bfr.To_bry_and_rls(); 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 // parse again
if (!wiki.Parser_mgr().Tmpl_stack_add(ttl.Full_db())) return null; // put template back on stack; if (!wiki.Parser_mgr().Tmpl_stack_add(ttl.Full_db())) return null; // put template back on stack;

View File

@ -324,6 +324,7 @@ public class Pp_pages_nde implements Xox_xnde, Mwh_atr_itm_owner1 {
Xoa_ttl end_page_ttl = end_page_bry == null ? null : ary[ary_len - 1]; Xoa_ttl end_page_ttl = end_page_bry == null ? null : ary[ary_len - 1];
Bry_bfr page_bfr = wiki.Utl__bfr_mkr().Get_m001(); Bry_bfr page_bfr = wiki.Utl__bfr_mkr().Get_m001();
try {
for (int i = 0; i < ary_len; i++) { for (int i = 0; i < ary_len; i++) {
Xoa_ttl ttl = ary[i]; Xoa_ttl ttl = ary[i];
byte[] ttl_page_db = ttl.Page_db(); byte[] ttl_page_db = ttl.Page_db();
@ -351,7 +352,10 @@ public class Pp_pages_nde implements Xox_xnde, Mwh_atr_itm_owner1 {
full_bfr.Add_bfr_and_clear(page_bfr); 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 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(); 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) { private Xop_root_tkn Bld_root_nde(Bry_bfr page_bfr, Hash_adp_bry lst_page_regy, byte[] wikitext) {

View File

@ -131,8 +131,11 @@ public class Score_xnde implements Xox_xnde, Mwh_atr_itm_owner1, Xoh_cmd_itm {
} }
else { else {
Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_m001(); 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); try {
tmp_bfr.Mkr_rls(); 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); 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 ly_process.Working_dir_(ly_file.OwnerDir()); // NOTE: must change working_dir, else file will be dumped into same dir as lilypond.exe