From ef4ff1d6a4f2343440e278ef1177b07f6af8f5dc Mon Sep 17 00:00:00 2001 From: Qunxin Liu Date: Wed, 20 Sep 2023 11:35:33 -0700 Subject: [PATCH] [instancer] make varstore items sorting method match fonttool's Also update expected tests --- src/hb-ot-var-common.hh | 9 ++++++++- ...-codepoint.wght=200-300-500,wdth=80-90.ttf | Bin 8432 -> 8432 bytes ...ain-all-codepoint.wght=300-600,wdth=85.ttf | Bin 7336 -> 7336 bytes ...-codepoint.wght=200-300-500,wdth=80-90.ttf | Bin 7484 -> 7484 bytes ...ain-all-codepoint.wght=300-600,wdth=85.ttf | Bin 6848 -> 6848 bytes ...int.wght=200-600,wdth=80-90,CTGR=20-60.ttf | Bin 4108 -> 4108 bytes ...ions.retain-all-codepoint.wght=300-600.ttf | Bin 6616 -> 6616 bytes ...ions.retain-all-codepoint.wght=300-600.ttf | Bin 197056 -> 197056 bytes ...ions.retain-all-codepoint.wght=500-800.ttf | Bin 145004 -> 145004 bytes 9 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/hb-ot-var-common.hh b/src/hb-ot-var-common.hh index b173fba17..00bea20ac 100644 --- a/src/hb-ot-var-common.hh +++ b/src/hb-ot-var-common.hh @@ -2174,7 +2174,14 @@ struct item_variations_t const hb_vector_t** a = (const hb_vector_t**) pa; const hb_vector_t** b = (const hb_vector_t**) pb; - return ((*b)->as_array ()).cmp ((*a)->as_array ()); + for (unsigned i = 0; i < (*b)->length; i++) + { + int va = (*a)->arrayZ[i]; + int vb = (*b)->arrayZ[i]; + if (va != vb) + return va < vb ? -1 : 1; + } + return 0; } }; diff --git a/test/subset/data/expected/glyf_partial_instancing/Roboto-Variable.ABC.no-tables-with-item-variations.retain-all-codepoint.wght=200-300-500,wdth=80-90.ttf b/test/subset/data/expected/glyf_partial_instancing/Roboto-Variable.ABC.no-tables-with-item-variations.retain-all-codepoint.wght=200-300-500,wdth=80-90.ttf index e2162ab6a42be5bba01e8ec2bb398e7f6e288c97..0d97017141eb44ccfb472d39807eefcf916de3b0 100644 GIT binary patch delta 87 zcmez1_`z|40!!2T?-?6ae3)3Ih1!=*E@8T3$;`mW#K6eFz+eU@c^FuLY&IZfWME=o j2J%=R9%8oiXZ&`MSyYvQVK);qI|Ji2poYzz%;~ZKvE>qO delta 87 zcmez1_`z|40!zckpJ^Lae3)3|`I=WvE@8T3$;iaaz`)4Bz+eU@c^FuLY&IZfWME=o i2J%=Lb~7=vGcaBQDSCK_+0vi!+d*bg)y9PQmwGwUs diff --git a/test/subset/data/expected/glyf_partial_instancing/Roboto-Variable.ABC.no-tables-with-item-variations.retain-all-codepoint.wght=300-600,wdth=85.ttf b/test/subset/data/expected/glyf_partial_instancing/Roboto-Variable.ABC.no-tables-with-item-variations.retain-all-codepoint.wght=300-600,wdth=85.ttf index 4c8a5a88e80c9bce13049fec22eb3b0286e6d1a7..ef2b65b784e86e5d7b2a8d16f035e46d235f5674 100644 GIT binary patch delta 64 zcmZ2sxx#XS0?T`sqnR63QkYmuHa?y+xrfO`iJ5_siGh)Ufk6&T@-VOf*-SvpcwFI) P#9vkhhRvUtwn+j2NbC>Z delta 64 zcmZ2sxx#XS0?U!Wcd;8)QkYmyO`o`Bau1V>5(6U>GXo<71A`oxvZV%r8 diff --git a/test/subset/data/expected/glyf_partial_instancing/Roboto-Variable.composite.no-tables-with-item-variations.retain-all-codepoint.wght=200-300-500,wdth=80-90.ttf b/test/subset/data/expected/glyf_partial_instancing/Roboto-Variable.composite.no-tables-with-item-variations.retain-all-codepoint.wght=200-300-500,wdth=80-90.ttf index 7442e4298f4c4660371d3312b61be81ed83fdf8f..2e34bb8878e571a2e8add2ba26c32d64e91a831e 100644 GIT binary patch delta 68 zcmdmEwa03L0!y!4@~w?3K1?j#e`cp`E@5h6WMO7tWSabkSwZF&1CwJ21H-d9EQV$b XjL&DY8ksXPGG1e30D{dHEG&`$0J{?N delta 68 zcmdmEwa03L0?QXZ^Nkx-e3)4F$$Z|ixrC{Ok%fVgiFxuLW(66>Ym5v)aEpP-F@%BP Y*&G%_GX}=zvssPI85uWQu&_u10PP|Y@&Et; diff --git a/test/subset/data/expected/glyf_partial_instancing/Roboto-Variable.composite.no-tables-with-item-variations.retain-all-codepoint.wght=300-600,wdth=85.ttf b/test/subset/data/expected/glyf_partial_instancing/Roboto-Variable.composite.no-tables-with-item-variations.retain-all-codepoint.wght=300-600,wdth=85.ttf index 16a99018c0a61c08562e2e6ecdea09dc820e4c81..95bf757e3babe4ed0ae0257f56008bec4b192e37 100644 GIT binary patch delta 62 zcmX?Ldcbso0?P&c1MwSGQkYn#m-?Gc?qPCKU}9ioWME`qV2}ZmJPgc0HWLst?w3Bt M!N9Qj1Jea@0PxEVf&c&j delta 62 zcmX?Ldcbso0?U5q3%(mwQkYnF`sznb?qPCKU|?ioVqj!oV2}ZmJPgc0HWLs7#r8{| L4G=_?PCps diff --git a/test/subset/data/expected/mvar_partial_instance/NotoSans-VF.abc.no-tables-with-item-variations.retain-all-codepoint.wght=200-600,wdth=80-90,CTGR=20-60.ttf b/test/subset/data/expected/mvar_partial_instance/NotoSans-VF.abc.no-tables-with-item-variations.retain-all-codepoint.wght=200-600,wdth=80-90,CTGR=20-60.ttf index 35249b4e5f4b9c8c6ec9d6257cd3428922d45b75..2cf4eb41bcc2ebb7d082a0241737a02e3a9f1667 100644 GIT binary patch delta 88 zcmeBC=uw!Uz~Z0HBEC`O1tZHZ*SSwO3or>Vu`n|*GEG)tQPa6`>l*_DlMEvR!_(_u r{xdT3Gcz)LzWd|Xe_95CSLy1ONd71Cu-iDGU1m+XDa-0Q>s| W0Fz_{Bm@8h01K0_1Q@fh1Sl1#ZxYi0 diff --git a/test/subset/data/expected/update_def_wght/SourceSerifVariable-Roman.no-tables-with-item-variations.retain-all-codepoint.wght=300-600.ttf b/test/subset/data/expected/update_def_wght/SourceSerifVariable-Roman.no-tables-with-item-variations.retain-all-codepoint.wght=300-600.ttf index 1ea11a59c5e20156c36ac6cec9459e09513ad34c..b26b28aa27f6de98ec3632540aec9b56694f4851 100644 GIT binary patch delta 2488 zcmchYd3+N^6vy|sNA6^s(9$C*Z3W~I@fI%xR1iEt>wVyX7vhQcwbiPiq9Ro+pomHl z5ygUv0%AE-R0PFaK?M=7(llvE0^RKT+qC%vXp#Qq=lhwNCybJTXLfLy(DOU;7W=*pe zfHfG4#aN9w_!3L;8-@!KreOotVHMuRH=Lah4bNc$uE7-if&}j1xAwayI7mlx^SO6Gb6q0S=@P+%;!5c9>{2AS}sbdr~ zY+^h&X;#-E)-d!Ii+5u+55uAs7YibfrQ@vU!Dvg_SzN)hv>3iurt!S9Y~a~jtlI;t z(s^+=Gh-Z^ovnqj=}eigFZ?!+;?uf`e^OV7D2qbs=8FM|c839F7yA;}KM$ zFmp<~j+h50w(W|w0-dlBCu10t^dXL8z8~4@TI;y0owUxuT3g}&Az_Uz6>Qw9R>RV< zjK!mx#qjcU?R%5|cChM)nLdkgH1Da05$Og$ilB1cN!X9_DA#|BiTDazaSCq4edvv= zus@^t6vw%O9bcmuE{w;ycmexR=Ot=v<;vb#cFf*HWh87QTN=`SEh(@#VV{XY-EzffMiv-`V#O!a3<0+sw6( zjb_ENO6MwcW&zniBa^9i2(F}=?zok=B0%%GxD3zJ%jg`er=gzIuqvii zqz0j1YxcMVH>9#-l#VQB6`G(2oX8ri1;Eo5q~5v(kp645f!6S)E)IjgH4VmwW&ue64PU1 zOpbYCYRtdQtTKW{ed9u0ipz0Z+#S!2cZruJQVB6(OQ?xJA}^7jC`g(~B&DP+=}QKZ zovVh1y2Gp*6AEd1Qa5!)x9N7>sk?QL?$cF0SI^f=QmK@fQc}K@YBU?VAsUL|GCYRY zP>md;laXh}&6H^~y{6C1G5uzt88VBR4>~WTletxdpcoT(h`I>TF1kdI=oibRsMIXk zC8y+)awNYLkTsX=mOZjhR^?o|v$9QzD=9@*oJx)oQ1X>hn`l$*&34)DuzT&QBks^0 zDMx{$*iqtixp%nj?tFL9UFK1}F0a=c@a3!9)u7+$FDi@+9)YPPASp<)&F*k})#5(< bFV+cloDhV8M69SZLgS1O78)UO`R0EC8qlBB delta 2404 zcmb7_349Y(5XSf0>?WIRl1)PIw6xVCAc&}VTTfI}yl)gQMDakpPju0WD4>D`ttY6c zc#Ejug@~XisHli?Du@bNgrwOdu$!#krmaC*r1t-NZ_{~iW@qNjo1IQY%@y z;Lx-~GzO5Th`~54Zx<&>eK6zPn)SJ;6O24h>+3uAyph?;(}|hOBQcAubYnid>CV(4 zB22x5dmBPL42LY96~JTZIF&pYUF78OBG1xc!VX!*^UhPnvv(-j4r;D0X0tLDaP;SB zW@fHZ44viD%=NkFTozBqIei#F<@WKIRKb zD_G560{#*d+)f@PPOYDddAU){=RACe3Iq`pTv)K@B1e3U0uj48Tf5c=wjl1wLrs50S zgwNVZVta|r$(pmtHntjl(N~ZJ56AWpwpod`Y{akd;#*vRTQDAn<4gR4^XkX0bc9n zY*Vl2x>AP!9mamVHxJg0J9vXmrmvUb44jYCxbJ>kP5HjuUyj8nMQ=Qax9|yu;bmOQ z_`c_Jqu@pvF2adeh$pZHms009YV_vLVMO1^g@qIj<9r=Z7AIcpoy^9br1^INgPA_M)5pa0T7$iXJ!!2jgPggNf*ayHTC%>;Q$>9oH$8NohOsbQ|h(a;anaC&n;vH_cL z8}Od?<2fC2m_&B9}>{+_rGetrRg3-LH~rvVQy*?0jz)8xJ66g% zTbuJHcm*Ht=MpSoE|0-cI2uQ?p9o@4LF8OgzpyN*GafHDmC;lZ7F&@=^of2kELMvN zaf@iVJT9-x=L)&Pu81q{G9{m+N`5IQX;OhyBulba4#^R@Sgw){IVoq{qFeJw9>o*z zXdY83Q7V*5C8=0S#_Ll(YOxwstJN)jE#M0T0+FCvtVOlWVQ;vsG+Do_tk&ai3^t}4 zt@_TIva{j6vgT`(n6Hr=LT`ptkDG(%>@EHX>YGPBaOE!lEg9?NT~ zmfs3mnpI#GTa{MYvNK{v&IB`BCX*Gja@LpiX9HO+8_IUd7G}+?WxMTw9kfGs*enifs5KAOGXAN9TAj$PEU$hdO&#??>XqgUnb&aO5U4oF@H?(tMU*tnz{W1YDx8Vo5+F7V z(?u9brPFCNVbUl&md}r05t8p`5SEAN$flPl&1S^-F)aq5jAv4u$ca@6A^!}NY{Zgg zlk<-FerMfP-Ig1ZC5jrMY#(t}l)b zN~%SC3!lfjmQ&yVA~q&1PN%p@w#l+f&eAk- zyoi!}$p}!5M|$?!aHdgNJs3_B7g1bm6QwChs_Msk$#qOPPX8Yu*7=Cj(g0DA7g#W7 z86Lkc_Yrg|9b^Ukc}m)6yMD0b2VLVrKut^l+z#7;O1pvYQwRee_GzPIl|)4mx8fFH z8S56;hnY+Z<I~1Y}c4glih?sX(_Exps6Atf?{b4CTR-Zz49q~@SsO$(7Rv3 z@gU!Xs|RP8aXLEA_}}r*CM~v%{mty|+uh{lz4ZI(en0(mM%WM*j$al|V?yQ0>G`WS zu@~tcXhPx!Zp?3Bm9;y5pas*+OzbNuPbRibp{QfUsv4;bX0)W*Ibu*E!HIU=P{2jO z_~Z}VYcv{oL}k79P^U9|#1G$}z@Lt=fh9APm`vfkA(;zcicBQxJ)O%?O8;vpyx_uO z!+aMkt2%E;M%my}sZ3-hlNt4NDY{>Zr~_!jj^svqqcE2Xb6(Ubg%*=kla0KR%f|+Z z!dau1MivMHA;)oe%9R~KKuAD~i|gyW7fMSM=yYz5G2eGoM|D+oK7Vik9kW&({W8W3 zqX*LC2jj6}T)qqULP8K@M~Cqwh$q#!f0&48fpnA6hpko_cN)Q-=9=AdD#$7}UCMS;=DHa93}bZ`=)H2Q+sp?dLN{Qk-gZ3? z5*gRwuG?(|LAOgxQ?9|y0)%CHDC0EKO>&Fo%yf=jCs->&xFqYUqFA#!E<%af- e@zduoU%!3-@$=X3KabAP<1-X{eTL%COMe0HTAKL)