From 9cb9ad771d2e5b8cbb45e79b5b76c4256b56d028 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Thu, 12 May 2011 16:24:40 -0400 Subject: [PATCH] forward zlib decompression errors instead of failing hard --- lib/mbtiles.js | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/lib/mbtiles.js b/lib/mbtiles.js index 8f66868..61eb640 100644 --- a/lib/mbtiles.js +++ b/lib/mbtiles.js @@ -231,16 +231,21 @@ MBTiles.prototype.grid = function(x, y, z, callback) { function(err, row, rows) { if (err) return callback(err); if (!row || !row.grid) return callback('Grid does not exist'); - var grid = zlib.inflate( - !Buffer.isBuffer(row.grid) - ? new Buffer(row.grid, 'binary') - : row.grid - ).toString(); - var data = rows.reduce(function(memo, r) { - memo[r.key_name] = JSON.parse(r.key_json); - return memo; - }, {}); - callback(null, _(JSON.parse(grid)).extend({ data: data })); + + try { + var grid = zlib.inflate( + !Buffer.isBuffer(row.grid) + ? new Buffer(row.grid, 'binary') + : row.grid + ).toString(); + var data = rows.reduce(function(memo, r) { + memo[r.key_name] = JSON.parse(r.key_json); + return memo; + }, {}); + callback(null, _(JSON.parse(grid)).extend({ data: data })); + } catch(err) { + callback(err); + } } ); };