diff options
author | Karl Berry <karl@freefriends.org> | 2011-10-20 23:54:25 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-10-20 23:54:25 +0000 |
commit | aab2e556f1318df74659f9b6bd11b7792ed4220e (patch) | |
tree | faaacdfd56031946183b9b6b55e5537d149f6bb1 /Build/source | |
parent | f549020980c0e11f4510a3a7b6d52de6a57cf801 (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
Diffstat (limited to 'Build/source')
-rw-r--r-- | Build/source/texk/web2c/ptexdir/ptex-base.ch | 20 |
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 } |