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 83086ffb59e91f..831cc08cd6a8a5 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 f8239feb071320..a7d714f7e0b0b2 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 952b2ed082644a..b513852110ea76 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 bebbc80e2bf8dc..709a44587989a3 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 06bde5561683a3..5b374688b018fc 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 2ae922a81ea91e..e0c60dbdf6ea83 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 31e755a774f069..fe404213c24077 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 70e784a50c34b9..ea142ed01f8f6e 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 d8d2ec6aacff56..6856c53266804a 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 d0ecef42a2412f..510e8bfbdb09c6 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 2b65b94bce551a..22dc7a23192042 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 add234420ec7a7..12a3ff0ffe2f55 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 428250cb9ee20a..c6bb41ffdeb544 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 f181cb60cf2d7c..bf7fc3310d0fc7 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 53095210fdd808..c5e199725233a5 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 6aa188725ae25a..8735d2814bc307 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 4107c998242069..865b6e0b56117a 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 62ea38e08f051c..0c9fdfb416dd4e 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 10c82860ba826e..714fdebfc079bd 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 c4aea9d58890b5..177cf454eeca91 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 4dd8b30b28a768..ebb0377912ce82 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');