diff --git a/autogen/generate.js b/autogen/generate.js index 3297cf2..4f89104 100644 --- a/autogen/generate.js +++ b/autogen/generate.js @@ -252,7 +252,7 @@ function genReq(req, last) if (req.body.length == 0) { result.push(' function() {'); - result.push(' return new Buffer([' + req.opcode + ', 0, 1, 0]);'); + result.push(' return Buffer.from([' + req.opcode + ', 0, 1, 0]);'); } else { result.push(' function (args) {'); result.push(' var extraLength = 0;'); @@ -287,10 +287,10 @@ function genReq(req, last) var reqLen4 = ((reqLen + 3) >> 2); if (extraLength) - result.push(' var data = new Buffer(' + reqLen + ' + extraLength);'); + result.push(' var data = Buffer.alloc(' + reqLen + ' + extraLength);'); else { result.pop(); - result.push(' var data = new Buffer(' + reqLen + ');'); + result.push(' var data = Buffer.alloc(' + reqLen + ');'); } result.push(' data[0] = ' + req.opcode + ';'); if (req.body.length != 0) { diff --git a/examples/kbdheatmap/node-jpg.js b/examples/kbdheatmap/node-jpg.js index 236c14e..51bfbf1 100644 --- a/examples/kbdheatmap/node-jpg.js +++ b/examples/kbdheatmap/node-jpg.js @@ -571,7 +571,7 @@ module.exports.readJpeg = function(path) var imageData = {}; imageData.width = j.width; imageData.height = j.height; - imageData.data = new Buffer(j.width*j.height*4); + imageData.data = Buffer.from(j.width*j.height*4); j.copyToImageData(imageData); return imageData; } diff --git a/examples/png/node-png.js b/examples/png/node-png.js index 7047cf5..66f1aeb 100644 --- a/examples/png/node-png.js +++ b/examples/png/node-png.js @@ -874,7 +874,7 @@ module.exports.readPng = function(path) var imageData = {}; imageData.width = j.width; imageData.height = j.height; - imageData.data = new Buffer(j.width*j.height*4); + imageData.data = Buffer.alloc(j.width*j.height*4); j.render(imageData); return imageData; } diff --git a/examples/simple/text/render-glyph.js b/examples/simple/text/render-glyph.js index 24c521e..0d256af 100644 --- a/examples/simple/text/render-glyph.js +++ b/examples/simple/text/render-glyph.js @@ -26,7 +26,7 @@ function padWidth(buf, width) { return buf; else { var stride = (width+3)&~3; - var res = new Buffer(height*stride); + var res = Buffer.alloc(height*stride); res.fill(0); for (var y=0; y < height; ++y) { // memcpy(tmpbitmap+y*stride, bitmap->buffer+y*ginfo.width, ginfo.width); @@ -88,7 +88,7 @@ var xclient = x11.createClient({ debug: true }, function(err, display) { var glyphFromCode = []; glyphs.forEach(function(g) { if (!g.image || (g.image.length == 0)) { - g.image = new Buffer(64); + g.image = Buffer.alloc(64); g.image.fill(0); g.width = 8; g.height = 8; diff --git a/examples/smoketest/bmp.js b/examples/smoketest/bmp.js index 6aa92f0..3d89aa3 100644 --- a/examples/smoketest/bmp.js +++ b/examples/smoketest/bmp.js @@ -6,7 +6,7 @@ var Pixmap = require('./pixmap').Pixmap; var Buffer = require('buffer').Buffer; require('../../lib/unpackbuffer').addUnpack(Buffer); -var reversed = new Buffer(256); +var reversed = Buffer.alloc(256); for (var i=0; i < 256; ++i) { var res = 0; @@ -42,4 +42,4 @@ module.exports.decodeBuffer = function(buffer) data[i] = 255 - reversed[data[i]]; return new Pixmap(header.bpp, header.width, header.height, data); -} \ No newline at end of file +} diff --git a/examples/smoketest/putimage.js b/examples/smoketest/putimage.js index 5f83574..0ac4785 100644 --- a/examples/smoketest/putimage.js +++ b/examples/smoketest/putimage.js @@ -8,7 +8,7 @@ var xclient = x11.createClient(); var Exposure = x11.eventMask.Exposure; var PointerMotion = x11.eventMask.PointerMotion; -var bitmap = new Buffer(128*128/8); // 16384 bits, 2048 bytes bitmap +var bitmap = Buffer.alloc(128*128/8); // 16384 bits, 2048 bytes bitmap for (var i=0; i < bitmap.length; ++i) { bitmap[i] = i % 256; diff --git a/examples/smoketest/putimage1.js b/examples/smoketest/putimage1.js index 71f354b..bccc20c 100644 --- a/examples/smoketest/putimage1.js +++ b/examples/smoketest/putimage1.js @@ -4,7 +4,7 @@ var x11 = require('../../lib'); var Exposure = x11.eventMask.Exposure; var PointerMotion = x11.eventMask.PointerMotion; -var bitmap = new Buffer(128*128*4); // 16384 bits, 2048 bytes bitmap +var bitmap = Buffer.alloc(128*128*4); // 16384 bits, 2048 bytes bitmap for (var i=0; i < bitmap.length; ++i) { var byteNum = i%4; diff --git a/examples/tetris.js b/examples/tetris.js index 67a3565..6337162 100644 --- a/examples/tetris.js +++ b/examples/tetris.js @@ -25,7 +25,7 @@ var Buffer = require('buffer').Buffer; var startpos = [4, 15]; var cupsize = [10, 20]; -var cup = new Buffer(cupsize[0]*cupsize[1]); +var cup = Buffer.alloc(cupsize[0]*cupsize[1]); var moveInterval; function clearCup() diff --git a/examples/vncviewer/d3des.js b/examples/vncviewer/d3des.js index be3c348..16528ff 100644 --- a/examples/vncviewer/d3des.js +++ b/examples/vncviewer/d3des.js @@ -56,8 +56,8 @@ var pc2 = [ function deskey(key, edf) { var i, j, l, m, n; - var pc1m = new Buffer(56); - var pcr = new Buffer(56); + var pc1m = Buffer.alloc(56); + var pcr = Buffer.alloc(56); var kn = new Array(32); for ( j = 0; j < 56; j++ ) { @@ -388,17 +388,17 @@ function desfunc(block, keys) module.exports.response = function(challenge, password) { - var key = new Buffer(8); + var key = Buffer.alloc(8); key.fill(0); key.write(password.substring(0,8)); var in1 = challenge.slice(0,8); var in2 = challenge.slice(8,16); - var res1 = new Buffer(8); - var res2 = new Buffer(8); + var res1 = Buffer.alloc(8); + var res2 = Buffer.alloc(8); deskey(key, EN0); des(in1, res1); des(in2, res2); - var resp = new Buffer(16); + var resp = Buffer.alloc(16); res1.copy(resp); res2.copy(resp, 8); return resp; diff --git a/examples/vncviewer/hexy.js b/examples/vncviewer/hexy.js index e807e21..d19c006 100644 --- a/examples/vncviewer/hexy.js +++ b/examples/vncviewer/hexy.js @@ -7,7 +7,7 @@ // It should create a pleasant looking hex dumb by default: // // var hexy = require('hexy.js'), -// b = new Buffer("\000\001\003\005\037\012\011bcdefghijklmnopqrstuvwxyz0123456789") +// b = Buffer.from("\000\001\003\005\037\012\011bcdefghijklmnopqrstuvwxyz0123456789") // // console.log(hexy.hexy(b)) // @@ -258,4 +258,4 @@ console.log(hexy(data, format)) console.log("doen") */ -exports.hexy = hexy \ No newline at end of file +exports.hexy = hexy diff --git a/examples/vncviewer/rfbclient.js b/examples/vncviewer/rfbclient.js index 2b45e54..954258e 100644 --- a/examples/vncviewer/rfbclient.js +++ b/examples/vncviewer/rfbclient.js @@ -400,7 +400,7 @@ RfbClient.prototype.readHextileTile = function(rect, cb) }); return; } - tile.buffer = new Buffer(tilebuflen); + tile.buffer = Buffer.alloc(tilebuflen); function solidBackground() { clog('solidBackground'); @@ -667,8 +667,8 @@ function createConnection(params) var wstream = fs.createWriteStream(params.rfbFileOut); wstream.write('FBS 001.001\n'); stream.on('data', function(data) { - var sizeBuf = new Buffer(4); - var timeBuf = new Buffer(4); + var sizeBuf = Buffer.alloc(4); + var timeBuf = Buffer.alloc(4); var size = data.length; sizeBuf.writeInt32BE(size, 0); wstream.write(sizeBuf); @@ -676,7 +676,7 @@ function createConnection(params) timeBuf.writeInt32BE(+new Date() - start, 0); wstream.write(timeBuf); var padding = 3 - ((size - 1) & 0x03); - var pbuf = new Buffer(padding); + var pbuf = Buffer.alloc(padding); wstream.write(pbuf); }).on('end', function() { wstream.end(); diff --git a/examples/vncviewer/rfbserver.js b/examples/vncviewer/rfbserver.js index 60f94c9..2c52f1f 100644 --- a/examples/vncviewer/rfbserver.js +++ b/examples/vncviewer/rfbserver.js @@ -62,7 +62,7 @@ RfbServer.prototype.processSecurity = function() break; case rfb.security.VNC: // generate random 16 byte challenge - serv.challenge = new Buffer(16); + serv.challenge = Buffer.alloc(16); serv.challenge.write('1234567890abcdef'); console.log(['sending challenge', serv.challenge]); serv.pack_stream.pack('a', [serv.challenge]).flush(); diff --git a/examples/vncviewer/unpackstream.js b/examples/vncviewer/unpackstream.js index 807b27b..ccbe205 100644 --- a/examples/vncviewer/unpackstream.js +++ b/examples/vncviewer/unpackstream.js @@ -34,7 +34,7 @@ function ReadFixedRequest(length, callback) this.length = length; this.callback = callback; //clog(length); - this.data = new Buffer(length); + this.data = Buffer.alloc(length); this.received_bytes = 0; } @@ -328,7 +328,7 @@ UnpackStream.prototype.pack = function(format, args) } } - var buf = new Buffer(packetlength); + var buf = Buffer.alloc(packetlength); var offset = 0; var arg = 0; for (var i = 0; i < format.length; ++i) diff --git a/examples/xpm/node-xpm.js b/examples/xpm/node-xpm.js index 782ac71..a43e435 100644 --- a/examples/xpm/node-xpm.js +++ b/examples/xpm/node-xpm.js @@ -95,7 +95,7 @@ PixmapFromFile.prototype.mapColors = function(content,size){ } PixmapFromFile.prototype.toBuffer = function (colors,content,size) { - var buf = new Buffer(size.width*size.height*4); + var buf = Buffer.alloc(size.width*size.height*4); var offset = 0, byte,color; var copy; if( !this.options.format || this.options.format.toUpperCase() === "BGRA"){ diff --git a/lib/corereqs.js b/lib/corereqs.js index 83f4922..81ffdef 100644 --- a/lib/corereqs.js +++ b/lib/corereqs.js @@ -464,7 +464,7 @@ var templates = { function(mode, wid, name, type, units, data) { var padded4 = (data.length + 3) >> 2; - var pad = new Buffer( (padded4<<2) - data.length); + var pad = Buffer.alloc( (padded4<<2) - data.length); var format = 'CCSLLLCxxxLaa'; var requestLength = 6 + padded4; var dataLenInFormatUnits = data.length / (units >> 3); @@ -850,7 +850,7 @@ var templates = { var padded = xutil.padded_length(data.length); var reqLen = 6 + padded/4; // (length + 3) >> 2 ??? var padLength = padded - data.length; - var pad = new Buffer(padLength); // TODO: new pack format 'X' - skip amount of bytes supplied in numerical argument + var pad = Buffer.alloc(padLength); // TODO: new pack format 'X' - skip amount of bytes supplied in numerical argument // TODO: move code to calculate reqLength and use BigReq if needed outside of corereq.js // NOTE: big req is used here (first 'L' in format, 0 and +1 in params), won't work if not enabled @@ -1019,6 +1019,12 @@ var templates = { return [ 'CxSssCCxx', [107, 3, timeout, interval, preferBlanking, allowExposures]]; } ], + + Bell: [ + function(percent) { + return ["CxCs",[108,1]]; + } + ], ForceScreenSaver: [ function(activate) { diff --git a/lib/ext/glx.js b/lib/ext/glx.js index df3c42d..ab8432e 100644 --- a/lib/ext/glx.js +++ b/lib/ext/glx.js @@ -258,7 +258,7 @@ exports.requireExt = function(display, callback) ext.BindTexImage = function(ctx, drawable, buffer, attribs) { if (!attribs) attribs = []; - var data = new Buffer(12 + attribs.length*4); + var data = Buffer.alloc(12 + attribs.length*4); data.writeUInt32LE(drawable, 0); data.writeUInt32LE(buffer, 4); data.writeUInt32LE(attribs.length, 8); @@ -268,7 +268,7 @@ exports.requireExt = function(display, callback) } ext.ReleaseTexImage = function(ctx, drawable, buffer) { - var data = new Buffer(8); + var data = Buffer.alloc(8); data.writeUint32LE(drawable, 0); data.writeUint32LE(buffer, 4); ext.VendorPrivate(ctx, 1331, data); @@ -287,7 +287,7 @@ exports.requireExt = function(display, callback) X.pack_stream.pack('CCSLSSL', [ext.majorOpcode, 2, length, ctx, requestNum, requestTotal, data.length]); X.pack_stream.write_queue.push(data); - var pad = new Buffer(padLength); + var pad = Buffer.alloc(padLength); pad.fill(0); X.pack_stream.write_queue.push(pad); X.pack_stream.flush(); diff --git a/lib/ext/glxrender.js b/lib/ext/glxrender.js index 17d4624..1560ac9 100644 --- a/lib/ext/glxrender.js +++ b/lib/ext/glxrender.js @@ -16,7 +16,7 @@ module.exports = function(GLX, ctx) { throw Error('Buffer too big. Make sure you are using RenderLarge for large commands'); currentLength += len; - var res = Buffer(len); + var res = Buffer.alloc(len); res.writeUInt16LE(len, 0); res.writeUInt16LE(opcode, 2); return res; @@ -266,7 +266,7 @@ module.exports = function(GLX, ctx) { typeSize[constants.BYTE] = 1; typeSize[constants.UNSIGNED_BYTE] = 1; - var res = new Buffer(60 + data.length*typeSize[type]); + var res = Buffer.alloc(60 + data.length*typeSize[type]); res.writeUInt32LE(res.length, 0); res.writeUInt32LE(110, 4); diff --git a/lib/ext/render.js b/lib/ext/render.js index bdf5e99..f821af1 100644 --- a/lib/ext/render.js +++ b/lib/ext/render.js @@ -437,7 +437,7 @@ exports.requireExt = function(display, callback) glyph = glyphs[i]; if (glyph.width % 4 !== 0) { var stride = (glyph.width+3)&~3; - var res = new Buffer(glyph.height*stride); + var res = Buffer.alloc(glyph.height*stride); res.fill(0); for (var y=0; y < glyph.height; ++y) { glyph.image.copy(res, y*stride, y*glyph.width, y*glyph.width + glyph.width); @@ -503,7 +503,7 @@ exports.requireExt = function(display, callback) function wstring(bits, s) { var charLength = bits / 8; var dataLength = s.length*charLength; - var res = new Buffer(xutil.padded_length(dataLength)); + var res = Buffer.alloc(xutil.padded_length(dataLength)); debugger; var write = res[bufferWriteBits[bits]] res.fill(0); diff --git a/lib/hexy.js b/lib/hexy.js index e807e21..a402c45 100644 --- a/lib/hexy.js +++ b/lib/hexy.js @@ -7,7 +7,7 @@ // It should create a pleasant looking hex dumb by default: // // var hexy = require('hexy.js'), -// b = new Buffer("\000\001\003\005\037\012\011bcdefghijklmnopqrstuvwxyz0123456789") +// b = Buffer.alloc("\000\001\003\005\037\012\011bcdefghijklmnopqrstuvwxyz0123456789") // // console.log(hexy.hexy(b)) // @@ -258,4 +258,4 @@ console.log(hexy(data, format)) console.log("doen") */ -exports.hexy = hexy \ No newline at end of file +exports.hexy = hexy diff --git a/lib/unpackstream.js b/lib/unpackstream.js index 934f2f6..c461a3d 100644 --- a/lib/unpackstream.js +++ b/lib/unpackstream.js @@ -23,7 +23,7 @@ function ReadFixedRequest(length, callback) { this.length = length; this.callback = callback; - this.data = new Buffer(length); + this.data = Buffer.alloc(length); this.received_bytes = 0; } @@ -201,7 +201,7 @@ UnpackStream.prototype.pstr = function(str) var len = xutil.padded_length(str.length); if (len == 0) return; // nothing to write - var buf = new Buffer(len); + var buf = Buffer.alloc(len); buf.write(str, 'binary'); this.write_queue.push(buf); } @@ -231,7 +231,7 @@ UnpackStream.prototype.pack = function(format, args) } } - var buf = new Buffer(packetlength); + var buf = Buffer.alloc(packetlength); var offset = 0; var arg = 0; for (var i = 0; i < format.length; ++i) @@ -269,12 +269,14 @@ UnpackStream.prototype.pack = function(format, args) buf[offset++] = (n >> 16) & 0xff; buf[offset++] = (n >> 24) & 0xff; break; - case 'a': // string or buffer + case 'a': // string, buffer, or array var str = args[arg++]; if (Buffer.isBuffer(str)) { str.copy(buf, offset); offset += str.length; + } else if(Array.isArray(str)) { + for(var item of str) buf[offset++] = item; } else { // TODO: buffer.write could be faster for (var c = 0; c < str.length; ++c) diff --git a/lib/xcore.js b/lib/xcore.js index e43efed..f62d346 100644 --- a/lib/xcore.js +++ b/lib/xcore.js @@ -508,7 +508,7 @@ XClient.prototype.expectReplyHeader = function() // raw event 32-bytes packet (primarily for use in SendEvent); // TODO: Event::pack based on event parameters, inverse to unpackEvent - ev.rawData = new Buffer(32); + ev.rawData = Buffer.alloc(32); headerBuf.copy(ev.rawData); buf.copy(ev.rawData, 8); diff --git a/test/change-property.js b/test/change-property.js index 6090856..38c802b 100644 --- a/test/change-property.js +++ b/test/change-property.js @@ -27,7 +27,7 @@ describe('ChangeProperty', function() { var self = this; this.X.InternAtom(false, TEST_PROPERTY, function(err, atom) { should.not.exist(err); - var raw = new Buffer(4); + var raw = Buffer.alloc(4); raw.writeUInt32LE(self.wid, 0); self.X.ChangeProperty(0, self.wid, atom, self.X.atoms.WINDOW, 32, raw); self.X.once('event', function(ev) { @@ -47,7 +47,7 @@ describe('ChangeProperty', function() { var self = this; this.X.InternAtom(false, TEST_PROPERTY, function(err, atom) { should.not.exist(err); - var raw = new Buffer(new Array(8)); + var raw = Buffer.from(new Array(8)); raw.writeUInt32LE(self.wid, 0); raw.writeUInt32LE(self.wid_helper, 4); self.X.ChangeProperty(0, self.wid, atom, self.X.atoms.ATOM, 32, raw); @@ -69,7 +69,7 @@ describe('ChangeProperty', function() { var self = this; this.X.InternAtom(false, TEST_PROPERTY, function(err, atom) { should.not.exist(err); - var raw = new Buffer(0); + var raw = Buffer.alloc(0); self.X.ChangeProperty(0, self.wid, atom, self.X.atoms.WINDOW, 32, raw); self.X.once('event', function(ev) { ev.type.should.equal(28); diff --git a/test/client-message.js b/test/client-message.js index f9bcc10..f1c57bb 100644 --- a/test/client-message.js +++ b/test/client-message.js @@ -40,7 +40,7 @@ describe('ClientMessage', function() { }); var X = dpy.client; - var eventData = new Buffer(32); + var eventData = Buffer.alloc(32); eventData.writeInt8(33, 0); //Event Type 33 = ClientMessage eventData.writeInt8(8, 1); //Format eventData.writeInt32LE(self.wid, 4); //Window ID @@ -67,7 +67,7 @@ describe('ClientMessage', function() { }); var X = dpy.client; - var eventData = new Buffer(32); + var eventData = Buffer.alloc(32); eventData.writeInt8(33, 0); //Event Type 33 = ClientMessage eventData.writeInt8(16, 1); //Format eventData.writeInt32LE(self.wid, 4); //Window ID @@ -94,7 +94,7 @@ describe('ClientMessage', function() { }); var X = dpy.client; - var eventData = new Buffer(32); + var eventData = Buffer.alloc(32); eventData.writeInt8(33, 0); //Event Type 33 = ClientMessage eventData.writeInt8(32, 1); //Format eventData.writeInt32LE(self.wid, 4); //Window ID