From 175341cb0d52c444d0e5aa13d46ef3cb658ec9f4 Mon Sep 17 00:00:00 2001 From: Yury Delendik Date: Sat, 2 Nov 2013 18:56:48 -0500 Subject: [PATCH] Resizes loca table when needed --- src/core/fonts.js | 11 ++++++++--- test/pdfs/.gitignore | 1 + test/pdfs/bug868745.pdf | Bin 0 -> 23766 bytes test/test_manifest.json | 6 ++++++ 4 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 test/pdfs/bug868745.pdf diff --git a/src/core/fonts.js b/src/core/fonts.js index f249e229b..1a7a58089 100644 --- a/src/core/fonts.js +++ b/src/core/fonts.js @@ -3262,6 +3262,13 @@ var Font = (function FontClosure() { }; } var locaData = loca.data; + var locaDataSize = itemSize * (1 + numGlyphs); + // is loca.data too short or long? + if (locaData.length !== locaDataSize) { + locaData = new Uint8Array(locaDataSize); + locaData.set(loca.data.subarray(0, locaDataSize)); + loca.data = locaData; + } // removing the invalid glyphs var oldGlyfData = glyf.data; var oldGlyfDataLength = oldGlyfData.length; @@ -3305,9 +3312,7 @@ var Font = (function FontClosure() { glyf.data.set(newGlyfData.subarray(0, writeOffset)); } glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset); - loca.data = new Uint8Array(locaData.length + itemSize); - loca.data.set(locaData); - itemEncode(loca.data, locaData.length, + itemEncode(loca.data, locaData.length - itemSize, writeOffset + firstEntryLength); } else { glyf.data = newGlyfData.subarray(0, writeOffset); diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index c330cd14a..ec7cb1773 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -39,6 +39,7 @@ !S2.pdf !helloworld-bad.pdf !zerowidthline.pdf +!bug868745.pdf !issue1002.pdf !issue925.pdf !gradientfill.pdf diff --git a/test/pdfs/bug868745.pdf b/test/pdfs/bug868745.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b92db20cc854b8f23a5b765aa67dba09165d57ed GIT binary patch literal 23766 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 T3*_BNs2Wwg z3YWSXtyb39=P#+&w@P_`Sv~B@>oz{_(86DGJRJ+Cukrb^IA-I@uiJOu%&Bkr-%&I( zCJ7MD^$tA;m@z*Ha7o=Htmwol5KpzRIgEvxwf9lI#N_P50FpmoqDaXadaJHqL7I1& z_rEhdjZD`i&sE}itiFQbL{>?_=e`K+W$~}>8Jv1i&gNd& zpi)%jODxcsHoS$|;7Uo3!P71FP-h%+_f+z*76@0kh97UQCudJvNvcG2)6$!qpg(Cc z_U6cu+ciH*p04D}tT=bczNA-cr14VolT1`v1&}IckmAHBR>Fu~)`BaZ7kH_NRDH+^ zG2lew{>}4;%9s;PWI`jp`q;XfL7innw!;Pw8+?3&-bSm>dek7AkR$ja0kORj9^J?H zIQm(?{t5od0G#iuz2U0l71#GF>7)hG*>3ZiB^TMF3A!|Rw{EBNIsC@IV)ZUOZTDA8 zjOHtdhbbPx4q1d7&~i zk;I zV2;OEEU%^ekk6{~CoMtOXtm|o1>!VIy;ajFv_&ARs-Xxuogyb8e(Y#`9!_w8InAn_ zN2Q{rr6wyb;o*3nF1;P+cKgEf?n7?XdELH`L=<2e$KfAcuFZ6Gn!Kl6f+ycJL%V0| z!yq|o`fxpwN`P#D&QvXFRR^{9W?tmj;2xnK%qv(0vJPt_(6+)o=^5f)ss+v zzHc01AkmKCqT;4-bGn=NT>_0=$Ls`CK@VvUo5x_YP#Z7)6qEK9`}nyUBnx_VJD z0v=2bqyc*zxY}C+pbtPn-Uywp1Zdon3?q(XjVg0u&tyvoJALRN^Pl~m6;GwPDXj6!`p^7E9I z%{0J^d!y1%{P#l+kMI*%@>4ZC(|hV{wBb?kaJoP zwn|*=ZQDAN$3p~XT7q4+qB%k?niaSiv_3b;eWaPl!wHCxRgGOXHlAMvbYfyNN2{x@ zwo|7^WUkd(d>4yQ4)opajfeGbZ)ox1t$NINEwR4zK{9s0LV{>(rcN?FT6l8e462)y zSE<|wcrU~+$u@#c9qUB)iTF%Oe5uF{iFC#xv^+Z|3BS;Y6%jl|n@pf1{3Es|+;4f` zhdY;l=j}r7vVMZB-*oP{C#?AJZ+e8W>*ZJ9$~4|cP7IM7+vGwe2sw_(Cv-=5wLrDF zVloWMgtS9el~l71wR8ihwYa*v-uQF+y=TWwaX#^tJq!@voOqC6H)3}c#_fgL>>zb( zEE7QhN+Qtk$b0k!*KJ5~)W*6)szKxCt2Pz2WpfJ_f&&qxJlcq^SPq^nN}Z`ti>JXq zFmVw%b0%=+sG;R)%%!JU7X~*-jrW)~*ur{tdNYy1BwLXUZkwygC=Rp6d^Dk|swsXU zi5<{g;pbJheSeX}EkbFX_M3I-wU*LAuy>ww;(8qrl31D z$m9W(B7#%e|6tjr-10q{&)kMY6dL^?)uuuhA4z#Ef3)h>%C;^~WxqWO@jg%=+`7Js zA|Iru`9k=jd|8hoa=?*4t^v{v!q!Y|i0uNwnKH+IgGMpX$dwDd4zfrPFiPlmH!h`v z=82wXCiP0o4-^)rsi;S3K*k}kW+Pfba3|1-ED745_Qn03e$E_4Eao`Cf!Uq`W{|+2 zn7$rv^T=-|qrnru7&C7(S^WT$E(rF-q9A83@x1>C)G^fyWRgb3;l@@%@+1Vv;oYsYTSmV<&xg52O7c49x zbALW&AZ_&aet)~emtsp70R5}6eoW8WDJQYUd8T9?|61erHJ`P%H7MseedRq3AkE z2?!nw=TL{Rpi)*w(JSDoL&6a6Y095h0JdKjptgBj0&Cb!Z10StE<=fPL6IU(1=I7o z7Es@}BntjS%Lywy3|6^hCCD&33#U1xPpU9tQym6Op$yi}9PG`Fem6yuJ=LdNZNsW` z!%Nb;Rtg;vyYAzdhF^o)aqs+`GQ&dRSwNw#A~@kcpy zw;LKG=mv{e*_XPAiLpoj2KS|70o{;6TbbDQWs^AScDO^SOL7O-J**A1@lDJ=L^a)_ zo(_mgI-w_%HVaooGg4xxYC0j)NX(;%ST!8UNg`1TUq6wk!j)$bpp~^)39f?MVa6Bf zkKA|0*y#5XP`Wi{&@E_aUL9}g12)o3t0myCVglYFh0qXRtp|c5SMjomOUs{T%w%Vbs=35snH8PMj8MPqecqc9OUCZ`o9++Tt6lbHenEC1S z9~>^~F#fY-0@MzMht8nVpd!*X?q$q#$Xmf5C~xmFY*Q}nI)`8d{wEHUTaIlyz&Lc9 z$pd&BAG+XnQUSK_7heG=xn^?9qUDS&J3nlh0kGGvLSIDFswARBcSKl+Nx6uY%iCm$ z=Bi7oRiK%vvY3N_B|0AxRPpEecw|*OZqxKPKS}bOpYHawDx%mPo0Dj%v&6Pu%(f7@ z+!@$zIP;)YnhFv0{HBLDYwxBr%+Zh)5^PEpB23$8rAF8UJ9RRN)ug2d#3ZQ{#XH1b zrGxk8B`+mE9s6GTeLTao_G)gXAlM*fZ;6^mH}>^Wbb@^wD3)t?%^(|-D{ZLT!14t( z4V8f?I|o6jerKT?*2{;~2Nr*Y>Og0W*O!@{mha;QDUb4k3{gWJ@&SY0ALmw`C+4HY z&{T*vI;0xn2mbhZf_$O^)cb?R#Cf`IX<{Jbf=`?>rrQRpFIlU^A7M=)(xoi10yrov z^dvdxWw%R^vzb-Rxx}p3$olIOglkK9B9%uuosu2}?GI10Y*R#dmsIdLx-}S>s4@Pp zm!qEHPwP*oG4Y#C;kOpMmDaD4>bD5+qsmMF|is59mMj~nuZDZ z@i>~K)HSSylHOa1xX09|;BD}o)>%0(`4ZnMQWpQ@xN=5)N`58WDgFFOW&Zk4Qq~$R zUAW0Sp;ALp|ES+lIQdn`P->{U<*ICyokJ33Cx_M{d8cYp5~LQJd9qwCAKW7`l$xQp zTFDorXT7;bO6QYe$NE#ej z*Vs%hsPZ`sEhMQ__~oV9j!(Hd0++Qu)F-&pZMYe&RK(R}xW6GRAy+PaK9Bx*?79)# zDZZF1y^>hJvv^;pO%i|1*~8;@yHC4%zm45e()B`)*sT;0M)%U~DVh#e#S?!)@`K?| z(jRxfE;vs#k!8J8zCuSF zg96@`q`Z#&!;e0Or+hKnj$2Y40+9P)6rD5S^;Hdgtx0W8?5Phsg6YtX=4Yavmx+q; zfvS33$9aQv&11<8Cw!|O-|gr+WJwcLmXGlwaxOl4XaCB900#yJSNZlv00Lnnq+)a(Qa1fW+7b0#^_}hA#aNN)Et6@6 zYldw`7j-H1l4M$BBN*&dW~quc`T@?PCXZsoxh+jv0l?}n=WS7hi@N` z-g$=e((XN(k_1>FO-KWIh~XH=6bLdw8WIJlHl_~bsPo7V%+^r&st%q#&f@18a!CHb zpw@YwE0|hXSqL7#Oy9&G!xV>S3gd@9-%no;ZQhG*)z^p{bvgh@$2N!~<2P zU!ZMWJ)~hYR>P@74hbKY)<}?+Q}RLE(`45pJkOb=zm;F+gB&V{Y0UlR$VQ#z?Mozj z^&rf`guybWQYU;|LnDmk!<;=D)zdMBM$Swm|I?XqHRhMmGsbmN6dohD%J>LWP0XsFE~oU~IlUMh04)nCYEe8v@<_~)vt26yhJ{6nc2HprWP!%?bqwZ zujpgepKmvuvGg}Q-g$j2|J=5O)u)LCuZSYE%V*Tl(et{!uu2CpA5Kw3mlSy=SMAPV zA5M86|1mGmHY4pOeCh9^5ZKyN2mmkSWa+=05eKfL3_)yJK^-UTp&HJH!hoDSRbf^n zYx&h^%VC%>G`eR+OPea2nuCTH7`thE(sZvOryf~MT)<9`23(RUMMU_O?t6|y#D|KkeyG>23#fMSN##$eO;w$$ZabT- zKX4e)EG}@XszaNk=JuC}tUT>TJ5fQ{_Ur!J0pzJ^kJrMdWntnHA82P!-d2vBniun~xnhc|P!)}{AGt*s=7eVU2G_P_CZP?OuCr$eGXR{8*3 zb$*Xi!!h`CY?~qXen{^FmUIJuQbr|^w`(zT5gVIcMx#mL_snC*Qb# z(AaElVJ`Hu#`dACi$x*R?S@y?d*3VT!}s5mn9k2`^L~=CJeQS?m0~-$4g6(r6H8!- zdC^t5$N44!pUSv#fV_BVuiSweBjssW2CiA-on6lc3?W{VmZ;)?{I~lptpHCG*3~kW z%fasS2GJ{VU|L$8IIGfcl>wC^2Z5BVp$=o zWZ}o^tKQ3>mtQl}hCYz=whBJe`?Yzx(2(mkWl>G^ojF#Fcc6vu@TK~za zm><>w%VleRE6uO!7HR|>nf?x~lvQvASTrO|a^k1)1qSb+t5TIj#O@k|Q6&SLgiZeR zx;8okiaP^1CO&-}*PPQM+mi>Cyf=le?{dqGIkjcpKYOx3kmLKL;0UbY!hH=66L-lX z&ToU$(__IeQs(1Efb|+-ln3$T!_2*Sf>y zi%U7VOZgX}pxnvdF9S!?DQK9=ZH^6+SUntNkLl3H9*EKOTZQlZNYl$c#R7+;p$`yI z1Q?lmo3@mZ^9ugH)gjAlBl{8>u{>!LrU&@sO%@we2N`l8MVLFdC-6f6C(P zAHAM*zh~@!CpP%Tb8gWY76^P4SHS#vIj2t1GtzQbaygr*&Vrh~+!ufRAGI)akBGX{ z)cJHM3b!4sV-o0f=mH(}1~M7JL77$GVg}DxLqqc0JdFeK(VaUYFKoA?Q*_+dkfirRRfed&`G;ArbJ3=e`-3^J z^ERa~_ogPO2UIdwgw(z18rL#)=*Rsj9W6R|(x2CrVNhRbL2#bUSj))AUoP<+!bXye zjT4P?jT&VR!cX9lvki~65$MdUJ(CauWJMhJW3oXBv zbWcGR*9wnmX7pxZze3v~H8a!dgJ6s)67VG<$Mmltusr1I3xp;r`fs7HAu+8!PZ@rc zAiv3&2djsyE0Hkkka%?a85cc*+t)>Wk>iNki6nR7O=6C_tjCkTA*Vghhe4FSidh3kh)Tw8I#w{ zsQuQL8xTo2lNF0j1L6K0APulW{y+S`kTmEU`s$DBDuvIL)?$qTk#}-{5+^o45aBr* zin!FE(nZXTp{y_P4s%QrHCsj)RaqAy_z@@JJp-C))v*f~e`ZHCw<~ABg(@6~^f4FH zszcwdTZ5Y*oC~p`Sv`fslU*=Lr7kW4c4IqocEq_x`*479Fk<~yS zAwf4|ldrgWfPd8Y8G%5^9MrO4cgAy!)=b)w=fMbvOX7C{iiM$hQNb_O+MNM!Yp|}7 z9T_R;XFs||0gZX+>;_(NJU61kqPCaT$Z|m5&QM~+ailLJQAXCtI8Z$sV+wz`$dG+9 z)p=6<>yZ&zNo>^TSEsFElQXyibfu@NQxrY!A+r)fH2T6Gbph)YMn90?y^lP*k~sp2 z6l#2XD#E)kAp{Q+1I0 z`K?9Gq_kr$WTbrqn~g0vu9lbi3`3Vj5yhLzY;Lr!Ue!eK$=Z~*$^UF$??g(~VeY0+ z;v@y`MY&@Z@Fg*|rHtoDZ^TuT=Sn23=3VI?h;7ofE#N(zEn7^BR$^r_8QrMI`+5_{tUctaW%#x- zak(!2NCzjUH_p3wyp`togK<%oUdo&zM^jdG#2*&vSi#y1VcXM`DXkHQH+Ctb*G$1> z6fB_KYnfQ9RFSse^=U4J+GJ~GYVOLJjtr%9ehm+TRRl}EWV{#6v2csvF;lUMSAF1- zXx_f;VNS$(Tw@)T1r@#?(Ym-|0>D~Yo?AthRMLR&St|H2(QwKQ%rJ zKfbB}X{qI+7`aRalFeUiUbMMGfjr;*@O*ph56cXSYGTsw2Lx$rsHW>42r{Ow$0O-! z5-hpQJ;W(mqZzt3pqRvSR4#1BdGV|7E$&~4vK#%}&AKhV=iR+=F7#`Hp=JphD>@R0 zixC`KmXb=4l*XS66Lj)$cA~q+q?Nikt4NF3$^75CGqz_Dyh8VwLoeJc727DRI6+Ma zy)Sd$Gj=%7dJW`nc#y)UOab_hF%&pw)v2$OAA0JEP`$g)$fxN02E4|WFVNHtM zF;JjRdAQL&x=V}~Ot2Uf+!&n@F99o9)u%S@ELnQsuHJpaJiTf>7|rfDH37&)>4SFQ z(VA2yMGF>2$LE>j+B|Od>u7W-R!MRXOu^f|=u^ekzI`yHUZXYIlI|hty`jSBBDCr{ z-gDAZ#mkcFE{Vs2c!K4Js8@Oe|_ z63@*6_=02%5ZU}r!EP6gIY^fvPwbFPE*fY1D8UvIS zyBRy;yf8ORnb%C2-w_0+s#~ywcS6hzcLjIu<0XP>xvfo3zQQ1RI;jm$GicOwMVvU( zz6P7+sFxy5ARHQVqvgY9X0~Qp3zcRHCj(KzESm4<1HSZ8d*-r(&wD{&g4$8* zNM~@ZJ1cA&H(7DmnrLnersxc&nHQ?P&U3bQKBGGn^N=z0YMQF5waEjx?bdGeXfoH1 zjZIY+B3cnGEkDb2O0<5;mIPd@PrjK14i^K}E$B+rc+D({zTnvAVwaD$ZEZ)A~aw84T1{rlX4lCm|8_P_zZ1IRe(?IdtQQ=)ZME`w!+Qi-0-)--r7d z{#e8tIe7WvQ*?l}nNHk6{uO4fr->4w7LsCLV&ySI_-ST+3qQbDhbDdwP4JxMhVg7G z%r)|WhNC~^o3n&$HE@5xaru)^q?oF(+sJd}Gh)=$yFW>XmXf)Emu7mfc~(S6x0T!`o#V9= zi*PbU3$(1)q6zxLd#`^eFvVOn^vhcd7buhu>~bIv;xTWPp2xD((=Ocn<_fSBEi#EZ zqJF68@6(QYjtlKh4Sl6dLdfc6p?388$V={Exl6H=(^_KMVKoc7cMy5;XQ_sd_F#LV z;&idXGtbo4=|Suhp38+y&Q12sY91&LbY#!gQ(SOWeHg_hFeC_8(;ucsHJ`>t2nu^k zM05pY-k6^TIxq=$X|cEkb~Yv#agln3;$bC(T6Rm}j}kVzzsNCv>zaA8p;WIQ{p*{YMIFupn)RbquOe$gsHf}vl!v{rbq(SjdFJCBN? zlOb|fdpRjq+mfiryh|Xn1NX{bi?tr=Wi5NA+awjTqF>K4p8!akwFMm&>M^vsD_Ipb zpYZVHkiGIsiwKA)LVPLR`ktrA zNDc=0RK@3X+igMQ`C;k)2(=dI!!4Be!Q%eC7kqtFitNp;Kas;6mfVkrrNGVGItFZ- zBt)$%&Cr|YA6K%&>wRmVi4H|GJs=wJOQ%Re2btQQ9?1`WcT!7<_kP8Wv6+XxZOV6= z_cgr3;@)etzRrftTE{k9G^DR;ob++rVn4tNQ;Xb|v=6o0&kx;>1~HYp-oDZ2UUBce zf#1+Zlv=H~k>71hYd5nsznhav^dlEz;?8B*!VdQ1X=hWG8bHNC4p}R4J=rWI#`15+ zndprWsc4Y1R*J4ySjQ8fY)`%_dGr1m;vggYOoieW zY*ToaMM8z1@5hu|{@gi;s{LbojW6Ca#4vg7Pk&zdcFT71F~UG!k@lX&e#7q=9>NEE zaa}M}G^*Z+EbSWSTnM3OSb=-zaZZEK3py8jQ>A`PpB%`Sm64?=;3QDXa8_TXH$1IA z0A9wg!@cN_@y;UqZ#~3FwT!fm4IMy&KgANYv4-AWDQ{)QY-+!7`b6w@!PNVVqj~Rw z5u2-I$X%oVW{4zaz4K;mT-JX1ZptNQrSqoW@G(y3k9tPASe5e_3PU0u!$p48C)npX zdK0$a0$TbCpK=%qxW2-9v;H@a*1nR~ryq(_zZY_~H@{p}!?;wpS6w9*nN&2Y6uDW5 zP+5HerO)YYnQ;9M6tQS1T1H5R0x8YF+WJW3$h7gi#N-4#yEl9S`6vvO#)R$^A&{R7 z+bvFnn*zV$Lm4)1@UL5i{kUh~1kqDWrIuBDl#F^fYEm3nan(IcKC@kCiC25+YOO`W zF~p+n9EfEQTNmh<{%<>mjs%sC#LL^km&P&a?VNUxC06rgs;qB6Cmd<fpk9>oHC)kB#OAq9uczgdnc?b(;M* z^75}3?7|ls+ijv?P|vc#`3oUQUPH!=>a*nAAHxoQ-l7LB&qEG!mze2svZLxq-&p(F zfExP`SZpY#*}I2zeTml=a7Ihn4y+R>x1<+$(maRnT&^Tt{1~rDF0ijEQbf}(neI%n z&nIDhLM1}ri%+!+3_pXYs@940#*1~67Oh0cXs94QjRN`rR|8{5CKGQLF>2sjCDA+v z8RpIHm)an}h`h&E!Kk+`$6nZrr&SojtgcdsOy7{uE2%?m`fNLT6>a)(m#GzKmayxY zwx7DT0uZYL(EvZBO*q*&y*4u{Z`HNqeI-Rn>lN?7Y+8h#77XYp;_i?8%Lb!PGu$VA zR!{RRT1$CLr<#kt*+!1I^)=?(5+1_c$PkA z0QdLp5Icugg@zurb_h^z%c1D1Pv6cf`@7N=6)8Hwz9}7$cFe12c~zUBQ^sxn0_b%% zx0DaEVY^O79Y%3hbY`r;XjHUK)M1&Z!ZMAlk$KoUYkA==Q!6S$M6x)iDD+IGkKo-b z^}e0__34NQg2N(sA~XZ^!o-FlG&!Aw4w&XBs3O=|U{qI;Xg%|Uy;QpvKUI0=Hvz~z zvVU-Y-MFWR_h{oRv+Bp?f-s`QlEnLOlrSe2H@Fy`HP`lkZ?7D6~JKYmQ&E1tq!N?RI|`hCzaB5LsdKbxzogRu!d=c8$w z^Plyc7YgNpJ~tuyk1d&t=zoNd=TQ~>pY`14kvwX#|3|o>oR8k?f5@X`_i|B)!G+S)!!!2e?_|F7cP(MjLI>A#1<%>&`%!3TlfDM|ky@}N5n literal 0 HcmV?d00001 diff --git a/test/test_manifest.json b/test/test_manifest.json index f6d672911..71de3b33a 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -189,6 +189,12 @@ "rounds": 1, "type": "load" }, + { "id": "bug868745", + "file": "pdfs/bug868745.pdf", + "md5": "86111ea5097dd7daffcdea891ad1b348", + "rounds": 1, + "type": "load" + }, { "id": "thuluthfont-pdf", "file": "pdfs/ThuluthFeatures.pdf", "md5": "b7e18bf7a3d6a9c82aefa12d721072fc",