package kha.audio2.ogg.tools; import haxe.ds.Vector; /** * ... * @author shohei909 */ class Crc32 { static inline var POLY:UInt = 0x04c11db7; static var table:Vector; public static function init() { if (table != null) { return; } table = new Vector(256); for (i in 0...256) { var s:UInt = ((i:UInt) << (24:UInt)); for (j in 0...8) { s = (s << 1) ^ (s >= ((1:UInt) << 31) ? POLY : 0); } table[i] = s; } } public static inline function update(crc:UInt, byte:UInt):UInt { return (crc << 8) ^ table[byte ^ (crc >>> 24)]; } }