Show More
Commit Description:
prevent multiple place login using uuid cookie
Commit Description:
prevent multiple place login using uuid cookie
References:
File last commit:
Show/Diff file:
Action:
node_modules/fontkit/src/tables/directory.js
| 55 lines
| 1.3 KiB
| application/javascript
| JavascriptLexer
|
r789 | import r from 'restructure'; | |||
import Tables from './'; | ||||
let TableEntry = new r.Struct({ | ||||
tag: new r.String(4), | ||||
checkSum: r.uint32, | ||||
offset: new r.Pointer(r.uint32, 'void', { type: 'global' }), | ||||
length: r.uint32 | ||||
}); | ||||
let Directory = new r.Struct({ | ||||
tag: new r.String(4), | ||||
numTables: r.uint16, | ||||
searchRange: r.uint16, | ||||
entrySelector: r.uint16, | ||||
rangeShift: r.uint16, | ||||
tables: new r.Array(TableEntry, 'numTables') | ||||
}); | ||||
Directory.process = function() { | ||||
let tables = {}; | ||||
for (let table of this.tables) { | ||||
tables[table.tag] = table; | ||||
} | ||||
this.tables = tables; | ||||
}; | ||||
Directory.preEncode = function(stream) { | ||||
let tables = []; | ||||
for (let tag in this.tables) { | ||||
let table = this.tables[tag]; | ||||
if (table) { | ||||
tables.push({ | ||||
tag: tag, | ||||
checkSum: 0, | ||||
offset: new r.VoidPointer(Tables[tag], table), | ||||
length: Tables[tag].size(table) | ||||
}); | ||||
} | ||||
} | ||||
this.tag = 'true'; | ||||
this.numTables = tables.length; | ||||
this.tables = tables; | ||||
let maxExponentFor2 = Math.floor((Math.log(this.numTables) / Math.LN2)); | ||||
let maxPowerOf2 = Math.pow(2, maxExponentFor2); | ||||
this.searchRange = maxPowerOf2 * 16; | ||||
this.entrySelector = Math.log(maxPowerOf2) / Math.LN2; | ||||
this.rangeShift = this.numTables * 16 - this.searchRange; | ||||
}; | ||||
export default Directory; | ||||