[Pkg] The Trunk: TrueType-ul.49.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Apr 24 13:21:41 UTC 2017


Levente Uzonyi uploaded a new version of TrueType to project The Trunk:
http://source.squeak.org/trunk/TrueType-ul.49.mcz

==================== Summary ====================

Name: TrueType-ul.49
Author: ul
Time: 24 April 2017, 1:16:55.146396 pm
UUID: 872ce35f-3479-4c01-8c43-4acd73e74843
Ancestors: TrueType-ul.48

- rewrote senders of #clone to use #shallowCopy

=============== Diff against TrueType-ul.48 ===============

Item was changed:
  ----- Method: TTCFontReader>>readFrom:fromOffset:at: (in category 'as yet unclassified') -----
  readFrom: fontData fromOffset: offset at: encodingTag
  
  	| headerEntry maxProfileEntry nameEntry indexLocEntry charMapEntry glyphEntry horzHeaderEntry horzMetricsEntry kerningEntry glyphOffset cmap numHMetrics indexToLocFormat fontDescription0 fontDescription1 array result |
  
  	"Search the tables required to build the font"
  	(headerEntry := self getTableDirEntry: 'head' from: fontData offset: offset) == nil ifTrue:[
  		^self error:'This font does not have a header table'].
  	(maxProfileEntry := self getTableDirEntry: 'maxp' from: fontData offset: offset) == nil ifTrue:[
  		^self error:'This font does not have a maximum profile table'].
  	(nameEntry := self getTableDirEntry: 'name' from: fontData offset: offset) == nil ifTrue:[
  		^self error:'This font does not have a name table'].
  	(indexLocEntry := self getTableDirEntry: 'loca' from: fontData offset: offset) == nil ifTrue:[
  		^self error:'This font does not have a relocation table'].
  	(charMapEntry := self getTableDirEntry: 'cmap' from: fontData offset: offset) == nil ifTrue:[
  		^self error:'This font does not have a character map table'].
  	(glyphEntry := self getTableDirEntry: 'glyf' from: fontData  offset: offset) == nil ifTrue:[
  		^self error:'This font does not have a glyph table'].
  	(horzHeaderEntry := self getTableDirEntry: 'hhea' from: fontData offset: offset) == nil ifTrue:[
  		^self error:'This font does not have a horizontal header table'].
  	(horzMetricsEntry := self getTableDirEntry: 'hmtx' from: fontData offset: offset) == nil ifTrue:[
  		^self error:'This font does not have a horizontal metrics table'].
  	(kerningEntry := self getTableDirEntry: 'kern' from: fontData offset: offset) == nil ifTrue:[
  		Transcript cr; show:'This font does not have a kerning table';endEntry].
  
  
  	"Process the data"
  	indexToLocFormat := self processFontHeaderTable: headerEntry.
  	self processMaximumProfileTable: maxProfileEntry.
  	self processNamingTable: nameEntry.
  	glyphOffset := self processIndexToLocationTable: indexLocEntry format: indexToLocFormat.
  	cmap := self processCharacterMappingTable: charMapEntry.
  	(cmap == nil or:[cmap value == nil])
  		ifTrue:[^self error:'This font has no suitable character mappings'].
  	self processGlyphDataTable: glyphEntry offsets: glyphOffset.
  	numHMetrics := self processHorizontalHeaderTable: horzHeaderEntry.
  	self processHorizontalMetricsTable: horzMetricsEntry length: numHMetrics.
  	kerningEntry isNil 
  		ifTrue:[kernPairs := #()]
  		ifFalse:[self processKerningTable: kerningEntry].
  	array := self processCharMap: cmap.
+ 	fontDescription0 := fontDescription shallowCopy.
+ 	fontDescription1 := fontDescription shallowCopy.
- 	fontDescription0 := fontDescription clone.
- 	fontDescription1 := fontDescription clone.
  	fontDescription0 setGlyphs: (array at: 1) mapping: (array at: 1)..
  	fontDescription1 setGlyphs: (array at: 2) mapping: (array at: 2)..
  	fontDescription0 setKernPairs: kernPairs.
  	fontDescription1 setKernPairs: kernPairs.
  	result := OrderedCollection new.
  	(encodingTag = nil or: [encodingTag = 0]) ifTrue: [^ Array with: fontDescription1].
  	result add: fontDescription0.
  	encodingTag -1 timesRepeat: [result add: nil].
  	result add: fontDescription1.
  	^ result asArray.
  
  !



More information about the Packages mailing list