summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-10-20 23:54:25 +0000
committerKarl Berry <karl@freefriends.org>2011-10-20 23:54:25 +0000
commitaab2e556f1318df74659f9b6bd11b7792ed4220e (patch)
treefaaacdfd56031946183b9b6b55e5537d149f6bb1
parentf549020980c0e11f4510a3a7b6d52de6a57cf801 (diff)
branch2011: import memory corruption, part of r23592, per Hironori Kitagawa, 19 Oct 2011 07:44:35
git-svn-id: svn://tug.org/texlive/branches/branch2011@24347 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/web2c/ptexdir/ptex-base.ch20
1 files changed, 14 insertions, 6 deletions
diff --git a/Build/source/texk/web2c/ptexdir/ptex-base.ch b/Build/source/texk/web2c/ptexdir/ptex-base.ch
index acbcf143a81..a8162e12527 100644
--- a/Build/source/texk/web2c/ptexdir/ptex-base.ch
+++ b/Build/source/texk/web2c/ptexdir/ptex-base.ch
@@ -5855,6 +5855,9 @@ function get_jfm_pos(@!kcode:KANJI_code;@!f:internal_font_number):eight_bits;
var @!jc:KANJI_code; {temporary register for KANJI}
@!sp,@!mp,@!ep:pointer;
begin@/
+if f=null_font then
+ begin get_jfm_pos:=kchar_type(null_font)(0); return;
+ end;
jc:=toDVI(kcode);
sp:=1; { start position }
ep:=font_num_ext[f]-1; { end position }
@@ -6684,11 +6687,13 @@ main_i:=orig_char_info(main_f)(qi(0));
goto main_loop_j+3;
@#
main_loop_j+1: space_factor:=1000;
- fast_get_avail(main_p); font(main_p):=main_f; character(main_p):=cur_l;
- link(tail):=main_p; tail:=main_p; last_jchr:=tail;
- fast_get_avail(main_p); info(main_p):=KANJI(cur_chr);
- link(tail):=main_p; tail:=main_p;
- cx:=cur_chr; @<Insert kinsoku penalty@>;
+ if main_f<>null_font then
+ begin fast_get_avail(main_p); font(main_p):=main_f; character(main_p):=cur_l;
+ link(tail):=main_p; tail:=main_p; last_jchr:=tail;
+ fast_get_avail(main_p); info(main_p):=KANJI(cur_chr);
+ link(tail):=main_p; tail:=main_p;
+ cx:=cur_chr; @<Insert kinsoku penalty@>;
+ end;
ins_kp:=false;
again_2:
get_next;
@@ -6724,7 +6729,10 @@ again_2:
@#
main_loop_j+3:
if ins_kp=true then @<Insert |pre_break_penalty| of |cur_chr|@>;
- @<Look ahead for glue or kerning@>;
+ if main_f<>null_font then
+ begin @<Look ahead for glue or kerning@>;
+ end
+ else inhibit_glue_flag:=false;
if ins_kp=false then begin { Kanji -> Kanji }
goto main_loop_j+1;
end else if ins_kp=true then begin { Kanji -> Ascii }