]> zoso.dev Git - buffer.git/commitdiff
Increase max buffer size to 2GB
authorFeross Aboukhadijeh <feross@feross.org>
Tue, 30 Jun 2015 23:20:18 +0000 (16:20 -0700)
committerFeross Aboukhadijeh <feross@feross.org>
Tue, 30 Jun 2015 23:20:18 +0000 (16:20 -0700)
There's no reason to match the limitation in node, plus this limitation
is going away soon with the buffer refactor for V8 4.4.

bin/download-node-tests.js
index.js
test/node/test-buffer.js

index 883ab981581e6ba4b084565c46b1fa9a52c2ae2b..da100d12685e19b6f7ef43859dc38c755d14645d 100755 (executable)
@@ -78,7 +78,10 @@ function testfixer (filename) {
     line = line.replace(/(.*)require\('buffer'\)(.*)/, '$1require(\'../../\')$2')
 
     // smalloc is only used for kMaxLength
-    line = line.replace(/require\('smalloc'\)/, '{ kMaxLength: 0x3FFFFFFF }')
+    line = line.replace(
+      /require\('smalloc'\)/,
+      '{ kMaxLength: process.env.OBJECT_IMPL ? 0x3fffffff : 0x7fffffff }'
+    )
 
     // comment out console logs
     line = line.replace(/(.*console\..*)/, '// $1')
index fac60da0a7f479506e12fafc3f36c083c0508b95..da0a4963bf97ea6d1ff6b08d3d6a42fe3f452a97 100644 (file)
--- a/index.js
+++ b/index.js
@@ -14,7 +14,6 @@ exports.SlowBuffer = SlowBuffer
 exports.INSPECT_MAX_BYTES = 50
 Buffer.poolSize = 8192 // not used by this implementation
 
-var kMaxLength = 0x3fffffff
 var rootParent = {}
 
 /**
@@ -52,6 +51,12 @@ Buffer.TYPED_ARRAY_SUPPORT = (function () {
   }
 })()
 
+function kMaxLength () {
+  return Buffer.TYPED_ARRAY_SUPPORT
+    ? 0x7fffffff
+    : 0x3fffffff
+}
+
 /**
  * Class: Buffer
  * =============
@@ -202,9 +207,9 @@ function allocate (that, length) {
 function checked (length) {
   // Note: cannot use `length < kMaxLength` here because that fails when
   // length is NaN (which is otherwise coerced to zero.)
-  if (length >= kMaxLength) {
+  if (length >= kMaxLength()) {
     throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
-                         'size: 0x' + kMaxLength.toString(16) + ' bytes')
+                         'size: 0x' + kMaxLength().toString(16) + ' bytes')
   }
   return length | 0
 }
index 77932a62217ccb276d1e5f638ab096c0828f6c96..551f883bf36f1cf2e3b156d9edbe6acd8dce4795 100644 (file)
@@ -6,7 +6,7 @@ var assert = require('assert');
 
 var Buffer = require('../../').Buffer;
 var SlowBuffer = require('../../').SlowBuffer;
-var smalloc = { kMaxLength: 0x3FFFFFFF };
+var smalloc = { kMaxLength: process.env.OBJECT_IMPL ? 0x3fffffff : 0x7fffffff };
 
 // counter to ensure unique value is always copied
 var cntr = 0;