File tree Expand file tree Collapse file tree 4 files changed +18
-15
lines changed Expand file tree Collapse file tree 4 files changed +18
-15
lines changed Original file line number Diff line number Diff line change @@ -64,15 +64,15 @@ protected function _parse() {
64
64
$ segCount = $ subtable ["segCountX2 " ] / 2 ;
65
65
$ subtable ["segCount " ] = $ segCount ;
66
66
67
- $ endCode = $ font ->r ( array ( self ::uint16, $ segCount) );
67
+ $ endCode = $ font ->readUInt16Many ( $ segCount );
68
68
69
69
$ font ->readUInt16 (); // reservedPad
70
70
71
- $ startCode = $ font ->r ( array ( self ::uint16, $ segCount) );
72
- $ idDelta = $ font ->r ( array ( self ::int16, $ segCount) );
71
+ $ startCode = $ font ->readUInt16Many ( $ segCount );
72
+ $ idDelta = $ font ->readInt16Many ( $ segCount );
73
73
74
74
$ ro_start = $ font ->pos ();
75
- $ idRangeOffset = $ font ->r ( array ( self ::uint16, $ segCount) );
75
+ $ idRangeOffset = $ font ->readUInt16Many ( $ segCount );
76
76
77
77
$ glyphIndexArray = array ();
78
78
for ($ i = 0 ; $ i < $ segCount ; $ i ++) {
Original file line number Diff line number Diff line change @@ -25,9 +25,10 @@ protected function _parse() {
25
25
$ font ->seek ($ offset );
26
26
27
27
$ data = array ();
28
- for ($ gid = 0 ; $ gid < $ numOfLongHorMetrics ; $ gid ++) {
29
- $ advanceWidth = $ font ->readUInt16 ();
30
- $ leftSideBearing = $ font ->readUInt16 ();
28
+ $ metrics = $ font ->readUInt16Many ($ numOfLongHorMetrics * 2 );
29
+ for ($ gid = 0 , $ mid = 0 ; $ gid < $ numOfLongHorMetrics ; $ gid ++) {
30
+ $ advanceWidth = $ metrics [$ mid ++];
31
+ $ leftSideBearing = $ metrics [$ mid ++];
31
32
$ data [$ gid ] = array ($ advanceWidth , $ leftSideBearing );
32
33
}
33
34
Original file line number Diff line number Diff line change @@ -44,10 +44,15 @@ protected function _parse() {
44
44
$ pairs = array ();
45
45
$ tree = array ();
46
46
47
- for ($ i = 0 ; $ i < $ subtable ["nPairs " ]; $ i ++) {
48
- $ left = $ font ->readUInt16 ();
49
- $ right = $ font ->readUInt16 ();
50
- $ value = $ font ->readInt16 ();
47
+ $ values = $ font ->readUInt16Many ($ subtable ["nPairs " ] * 3 );
48
+ for ($ i = 0 , $ idx = 0 ; $ i < $ subtable ["nPairs " ]; $ i ++) {
49
+ $ left = $ values [$ idx ++];
50
+ $ right = $ values [$ idx ++];
51
+ $ value = $ values [$ idx ++];
52
+
53
+ if ($ value >= 0x8000 ) {
54
+ $ value -= 0x10000 ;
55
+ }
51
56
52
57
$ pairs [] = array (
53
58
"left " => $ left ,
Original file line number Diff line number Diff line change @@ -42,10 +42,7 @@ protected function _parse() {
42
42
case 2 :
43
43
$ data ["numberOfGlyphs " ] = $ font ->readUInt16 ();
44
44
45
- $ glyphNameIndex = array ();
46
- for ($ i = 0 ; $ i < $ data ["numberOfGlyphs " ]; $ i ++) {
47
- $ glyphNameIndex [] = $ font ->readUInt16 ();
48
- }
45
+ $ glyphNameIndex = $ font ->readUInt16Many ($ data ["numberOfGlyphs " ]);
49
46
50
47
$ data ["glyphNameIndex " ] = $ glyphNameIndex ;
51
48
You can’t perform that action at this time.
0 commit comments