From 0a7531cb33c465e53532be4af039af24e5a37106 Mon Sep 17 00:00:00 2001
From: Vivien Nicolas <21@vingtetun.org>
Date: Wed, 29 Jun 2011 21:29:33 +0200
Subject: [PATCH] Calculate correct checksum for the field header

---
 fonts.js | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/fonts.js b/fonts.js
index e25b2ae2d..e4dfd3541 100644
--- a/fonts.js
+++ b/fonts.js
@@ -247,12 +247,9 @@ var Font = (function () {
     var length = data.length;
 
     // checksum
-    var checksum = tag.charCodeAt(0) +
-                   tag.charCodeAt(1) +
-                   tag.charCodeAt(2) +
-                   tag.charCodeAt(3) +
-                   offset +
-                   length;
+    var checksum = 0;
+    for (var i = 0; i < length; i+=4)
+      checksum += FontsUtils.bytesToInteger([data[i], data[i+1], data[i+2], data[i+3]]);
 
     var tableEntry = tag + string32(checksum) + string32(offset) + string32(length);
     tableEntry = stringToArray(tableEntry);