diff --git a/leveldown.js b/leveldown.js index 209e6f6..02a87f5 100644 --- a/leveldown.js +++ b/leveldown.js @@ -5,6 +5,7 @@ var eos = require('end-of-stream') var ids = require('numeric-id-map') var lpstream = require('length-prefixed-stream') var messages = require('./messages') +var bufferAlloc = require('buffer-alloc') var ENCODERS = [ messages.Get, @@ -206,7 +207,7 @@ Multilevel.prototype._batch = function (batch, opts, cb) { Multilevel.prototype._write = function (req) { if (this._requests.length + this._iterators.length === 1) ref(this._ref) var enc = ENCODERS[req.tag] - var buf = new Buffer(enc.encodingLength(req) + 1) + var buf = bufferAlloc(enc.encodingLength(req) + 1) buf[0] = req.tag enc.encode(req, buf, 1) this._encode.write(buf) diff --git a/package.json b/package.json index c276257..1da1301 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "main": "index.js", "dependencies": { "abstract-leveldown": "^2.4.1", + "buffer-alloc": "^1.1.0", "duplexify": "^3.4.2", "end-of-stream": "^1.1.0", "length-prefixed-stream": "^1.4.0", diff --git a/server.js b/server.js index f8775d3..ccfc21b 100644 --- a/server.js +++ b/server.js @@ -2,6 +2,7 @@ var lpstream = require('length-prefixed-stream') var eos = require('end-of-stream') var duplexify = require('duplexify') var messages = require('./messages') +var bufferAlloc = require('buffer-alloc') var DECODERS = [ messages.Get, @@ -72,7 +73,7 @@ module.exports = function (db, opts) { function callback (id, err, value) { var msg = {id: id, error: err && err.message, value: value} - var buf = new Buffer(messages.Callback.encodingLength(msg) + 1) + var buf = bufferAlloc(messages.Callback.encodingLength(msg) + 1) buf[0] = 0 messages.Callback.encode(msg, buf, 1) encode.write(buf) @@ -163,7 +164,7 @@ function Iterator (down, req, encode) { self._data.key = key self._data.value = value self.batch-- - var buf = new Buffer(messages.IteratorData.encodingLength(self._data) + 1) + var buf = bufferAlloc(messages.IteratorData.encodingLength(self._data) + 1) buf[0] = 1 messages.IteratorData.encode(self._data, buf, 1) encode.write(buf)