mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Embeddable: Fix multi-threaded diffs due to non thread-safe parser function {{urldecode}}
This commit is contained in:
parent
fddc6e2737
commit
f683e272ee
@ -49,6 +49,7 @@ public class Xow_parser_mgr {
|
|||||||
wbase__time__msgs = Wdata_hwtr_msgs.new_(wiki.Msg_mgr());
|
wbase__time__msgs = Wdata_hwtr_msgs.new_(wiki.Msg_mgr());
|
||||||
return wbase__time__msgs;
|
return wbase__time__msgs;
|
||||||
} private Wdata_hwtr_msgs wbase__time__msgs;
|
} private Wdata_hwtr_msgs wbase__time__msgs;
|
||||||
|
public Bry_bfr Tmp_bfr() {return tmp_bfr;} private final Bry_bfr tmp_bfr = Bry_bfr_.New();
|
||||||
public int Tag__next_idx() {return ++tag_idx;} private int tag_idx; // NOTE:must be wiki-level variable, not page-level, b/c pre-compiled templates can reserve tag #s; PAGE:de.s:Seite:NewtonPrincipien.djvu/465 DATE:2015-02-03
|
public int Tag__next_idx() {return ++tag_idx;} private int tag_idx; // NOTE:must be wiki-level variable, not page-level, b/c pre-compiled templates can reserve tag #s; PAGE:de.s:Seite:NewtonPrincipien.djvu/465 DATE:2015-02-03
|
||||||
public void Tmpl_stack_del() {--tmpl_stack_ary_len;}
|
public void Tmpl_stack_del() {--tmpl_stack_ary_len;}
|
||||||
public boolean Tmpl_stack_add(byte[] key) {
|
public boolean Tmpl_stack_add(byte[] key) {
|
||||||
|
@ -24,8 +24,8 @@ public class Pfunc_urlencode extends Pf_func_base { // EX: {{urlencode:a b}} ->
|
|||||||
@Override public boolean Func_require_colon_arg() {return true;}
|
@Override public boolean Func_require_colon_arg() {return true;}
|
||||||
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
|
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
|
||||||
byte[] argx = Eval_argx(ctx, src, caller, self); if (argx == Bry_.Empty) return;
|
byte[] argx = Eval_argx(ctx, src, caller, self); if (argx == Bry_.Empty) return;
|
||||||
gplx.langs.htmls.encoders.Gfo_url_encoder_.Http_url.Encode(urlEncodeBfr, argx);
|
Bry_bfr tmp_bfr = ctx.Wiki().Parser_mgr().Tmp_bfr();
|
||||||
bfr.Add_bfr_and_preserve(urlEncodeBfr);
|
gplx.langs.htmls.encoders.Gfo_url_encoder_.Http_url.Encode(tmp_bfr, argx);
|
||||||
urlEncodeBfr.Clear();
|
bfr.Add_bfr_and_clear(tmp_bfr);
|
||||||
} private Bry_bfr urlEncodeBfr = Bry_bfr_.New_w_size(128);
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user