buffer: Don't assign .parent if none exists
authorTrevor Norris <trev.norris@gmail.com>
Mon, 9 Mar 2015 18:28:31 +0000 (12:28 -0600)
committerTrevor Norris <trev.norris@gmail.com>
Mon, 9 Mar 2015 18:46:20 +0000 (12:46 -0600)
The .parent property of the allocated buffer should remain undefined in
the case that it's not a slice. Also included test to verify this.

PR-URL: https://github.com/iojs/io.js/pull/1109
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
lib/buffer.js
test/parallel/test-buffer.js

index 5427a5a..dde229a 100644 (file)
@@ -141,7 +141,10 @@ function fromJsonObject(that, object) {
 
 function allocate(that, length) {
   var fromPool = length !== 0 && length <= Buffer.poolSize >>> 1;
-  that.parent = fromPool ? palloc(that, length) : alloc(that, length);
+  if (fromPool)
+    that.parent = palloc(that, length);
+  else
+    alloc(that, length);
   that.length = length;
 }
 
index f4e89e2..9b16b7b 100644 (file)
@@ -1174,3 +1174,8 @@ assert.throws(function() {
 
 // Regression test for https://github.com/iojs/io.js/issues/649.
 assert.throws(function() { Buffer(1422561062959).toString('utf8'); });
+
+var ps = Buffer.poolSize;
+Buffer.poolSize = 0;
+assert.equal(Buffer(1).parent, undefined);
+Buffer.poolSize = ps;