From b5b8ff117c8581945d0c8c3a4b18d53f4b33b86f Mon Sep 17 00:00:00 2001 From: Roman Reiss Date: Fri, 29 May 2015 19:35:43 +0200 Subject: [PATCH] lib: don't use global Buffer Port of https://github.com/joyent/node/pull/8603 The race condition present in the original PR didn't occur, so no workaround was needed. PR-URL: https://github.com/nodejs/io.js/pull/1794 Reviewed-By: Trevor Norris --- lib/_debugger.js | 1 + lib/_http_client.js | 1 + lib/_http_outgoing.js | 1 + lib/_stream_readable.js | 1 + lib/_stream_writable.js | 1 + lib/_tls_legacy.js | 1 + lib/_tls_wrap.js | 1 + lib/assert.js | 1 + lib/child_process.js | 1 + lib/crypto.js | 1 + lib/dgram.js | 1 + lib/fs.js | 1 + lib/internal/child_process.js | 1 + lib/internal/smalloc.js | 1 + lib/net.js | 1 + lib/querystring.js | 1 + lib/readline.js | 1 + lib/string_decoder.js | 2 ++ lib/tls.js | 1 + lib/util.js | 1 + lib/zlib.js | 1 + 21 files changed, 22 insertions(+) diff --git a/lib/_debugger.js b/lib/_debugger.js index 83086ff..831cc08 100644 --- a/lib/_debugger.js +++ b/lib/_debugger.js @@ -9,6 +9,7 @@ const repl = Module.requireRepl(); const inherits = util.inherits; const assert = require('assert'); const spawn = require('child_process').spawn; +const Buffer = require('buffer').Buffer; exports.start = function(argv, stdin, stdout) { argv || (argv = process.argv.slice(2)); diff --git a/lib/_http_client.js b/lib/_http_client.js index f8239fe..a7d714f 100644 --- a/lib/_http_client.js +++ b/lib/_http_client.js @@ -13,6 +13,7 @@ const freeParser = common.freeParser; const debug = common.debug; const OutgoingMessage = require('_http_outgoing').OutgoingMessage; const Agent = require('_http_agent'); +const Buffer = require('buffer').Buffer; function ClientRequest(options, cb) { diff --git a/lib/_http_outgoing.js b/lib/_http_outgoing.js index 952b2ed..b513852 100644 --- a/lib/_http_outgoing.js +++ b/lib/_http_outgoing.js @@ -4,6 +4,7 @@ const assert = require('assert').ok; const Stream = require('stream'); const timers = require('timers'); const util = require('util'); +const Buffer = require('buffer').Buffer; const common = require('_http_common'); const CRLF = common.CRLF; diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js index bebbc80..709a445 100644 --- a/lib/_stream_readable.js +++ b/lib/_stream_readable.js @@ -5,6 +5,7 @@ Readable.ReadableState = ReadableState; const EE = require('events').EventEmitter; const Stream = require('stream'); +const Buffer = require('buffer').Buffer; const util = require('util'); const debug = util.debuglog('stream'); var StringDecoder; diff --git a/lib/_stream_writable.js b/lib/_stream_writable.js index 06bde55..5b37468 100644 --- a/lib/_stream_writable.js +++ b/lib/_stream_writable.js @@ -9,6 +9,7 @@ Writable.WritableState = WritableState; const util = require('util'); const Stream = require('stream'); +const Buffer = require('buffer').Buffer; util.inherits(Writable, Stream); diff --git a/lib/_tls_legacy.js b/lib/_tls_legacy.js index 2ae922a..e0c60db 100644 --- a/lib/_tls_legacy.js +++ b/lib/_tls_legacy.js @@ -7,6 +7,7 @@ const tls = require('tls'); const util = require('util'); const common = require('_tls_common'); const debug = util.debuglog('tls-legacy'); +const Buffer = require('buffer').Buffer; const Timer = process.binding('timer_wrap').Timer; var Connection = null; try { diff --git a/lib/_tls_wrap.js b/lib/_tls_wrap.js index 31e755a..fe40421 100644 --- a/lib/_tls_wrap.js +++ b/lib/_tls_wrap.js @@ -8,6 +8,7 @@ const util = require('util'); const listenerCount = require('events').listenerCount; const common = require('_tls_common'); const StreamWrap = require('_stream_wrap').StreamWrap; +const Buffer = require('buffer').Buffer; const Duplex = require('stream').Duplex; const debug = util.debuglog('tls'); const Timer = process.binding('timer_wrap').Timer; diff --git a/lib/assert.js b/lib/assert.js index 70e784a..ea142ed 100644 --- a/lib/assert.js +++ b/lib/assert.js @@ -27,6 +27,7 @@ // UTILITY const compare = process.binding('buffer').compare; const util = require('util'); +const Buffer = require('buffer').Buffer; const pSlice = Array.prototype.slice; // 1. The assert module provides functions that throw diff --git a/lib/child_process.js b/lib/child_process.js index d8d2ec6..6856c53 100644 --- a/lib/child_process.js +++ b/lib/child_process.js @@ -6,6 +6,7 @@ const constants = require('constants'); const uv = process.binding('uv'); const spawn_sync = process.binding('spawn_sync'); +const Buffer = require('buffer').Buffer; const Pipe = process.binding('pipe_wrap').Pipe; const child_process = require('internal/child_process'); diff --git a/lib/crypto.js b/lib/crypto.js index d0ecef4..510e8bf 100644 --- a/lib/crypto.js +++ b/lib/crypto.js @@ -15,6 +15,7 @@ try { throw new Error('node.js not compiled with openssl crypto support.'); } +const Buffer = require('buffer').Buffer; const constants = require('constants'); const stream = require('stream'); const util = require('util'); diff --git a/lib/dgram.js b/lib/dgram.js index 2b65b94..22dc7a2 100644 --- a/lib/dgram.js +++ b/lib/dgram.js @@ -1,6 +1,7 @@ 'use strict'; const assert = require('assert'); +const Buffer = require('buffer').Buffer; const util = require('util'); const events = require('events'); const constants = require('constants'); diff --git a/lib/fs.js b/lib/fs.js index add2344..12a3ff0 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -10,6 +10,7 @@ const pathModule = require('path'); const binding = process.binding('fs'); const constants = require('constants'); const fs = exports; +const Buffer = require('buffer').Buffer; const Stream = require('stream').Stream; const EventEmitter = require('events').EventEmitter; const FSReqWrap = binding.FSReqWrap; diff --git a/lib/internal/child_process.js b/lib/internal/child_process.js index 428250c..c6bb41f 100644 --- a/lib/internal/child_process.js +++ b/lib/internal/child_process.js @@ -1,6 +1,7 @@ 'use strict'; const StringDecoder = require('string_decoder').StringDecoder; +const Buffer = require('buffer').Buffer; const EventEmitter = require('events').EventEmitter; const net = require('net'); const dgram = require('dgram'); diff --git a/lib/internal/smalloc.js b/lib/internal/smalloc.js index f181cb6..bf7fc33 100644 --- a/lib/internal/smalloc.js +++ b/lib/internal/smalloc.js @@ -1,6 +1,7 @@ 'use strict'; const smalloc = process.binding('smalloc'); +const Buffer = require('buffer').Buffer; const kMaxLength = smalloc.kMaxLength; const kMinType = smalloc.kMinType; const kMaxType = smalloc.kMaxType; diff --git a/lib/net.js b/lib/net.js index 5309521..c5e1997 100644 --- a/lib/net.js +++ b/lib/net.js @@ -8,6 +8,7 @@ const assert = require('assert'); const cares = process.binding('cares_wrap'); const uv = process.binding('uv'); +const Buffer = require('buffer').Buffer; const TTYWrap = process.binding('tty_wrap'); const TCP = process.binding('tcp_wrap').TCP; const Pipe = process.binding('pipe_wrap').Pipe; diff --git a/lib/querystring.js b/lib/querystring.js index 6aa1887..8735d28 100644 --- a/lib/querystring.js +++ b/lib/querystring.js @@ -3,6 +3,7 @@ 'use strict'; const QueryString = exports; +const Buffer = require('buffer').Buffer; function charCode(c) { diff --git a/lib/readline.js b/lib/readline.js index 4107c99..865b6e0 100644 --- a/lib/readline.js +++ b/lib/readline.js @@ -10,6 +10,7 @@ const kHistorySize = 30; const util = require('util'); const inherits = util.inherits; +const Buffer = require('buffer').Buffer; const EventEmitter = require('events').EventEmitter; diff --git a/lib/string_decoder.js b/lib/string_decoder.js index 62ea38e..0c9fdfb 100644 --- a/lib/string_decoder.js +++ b/lib/string_decoder.js @@ -1,5 +1,7 @@ 'use strict'; +const Buffer = require('buffer').Buffer; + function assertEncoding(encoding) { // Do not cache `Buffer.isEncoding`, some modules monkey-patch it to support // additional encodings diff --git a/lib/tls.js b/lib/tls.js index 10c8286..714fdeb 100644 --- a/lib/tls.js +++ b/lib/tls.js @@ -4,6 +4,7 @@ const net = require('net'); const url = require('url'); const util = require('util'); const binding = process.binding('crypto'); +const Buffer = require('buffer').Buffer; // Allow {CLIENT_RENEG_LIMIT} client-initiated session renegotiations // every {CLIENT_RENEG_WINDOW} seconds. An error event is emitted if more diff --git a/lib/util.js b/lib/util.js index c4aea9d..177cf45 100644 --- a/lib/util.js +++ b/lib/util.js @@ -1,6 +1,7 @@ 'use strict'; const uv = process.binding('uv'); +const Buffer = require('buffer').Buffer; const Debug = require('vm').runInDebugContext('Debug'); const internalUtil = require('internal/util'); diff --git a/lib/zlib.js b/lib/zlib.js index 4dd8b30..ebb0377 100644 --- a/lib/zlib.js +++ b/lib/zlib.js @@ -1,5 +1,6 @@ 'use strict'; +const Buffer = require('buffer').Buffer; const Transform = require('_stream_transform'); const binding = process.binding('zlib'); const util = require('util'); -- 2.7.4