mirror of https://github.com/nodejs/node.git
buffer: fix map and set parent to undefined
In 4c9b30d
removal of the prototype attributes meant NativeBuffer() no
longer had the same object map as Buffer(). By now setting the same
properties in the same order both constructors will produce the same
map.
The same commit changed "parent" from undefined to null. This caused a
failure in Buffer#slice() where it was checked if parent === undefined.
Causing the incorrect parent to be set.
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
pull/23396/head
parent
7fd35e6ea4
commit
7c3c51b8ff
|
@ -66,7 +66,7 @@ function Buffer(subject, encoding) {
|
||||||
'size: 0x' + kMaxLength.toString(16) + ' bytes');
|
'size: 0x' + kMaxLength.toString(16) + ' bytes');
|
||||||
}
|
}
|
||||||
|
|
||||||
this.parent = null;
|
this.parent = undefined;
|
||||||
if (this.length <= (Buffer.poolSize >>> 1) && this.length > 0) {
|
if (this.length <= (Buffer.poolSize >>> 1) && this.length > 0) {
|
||||||
if (this.length > poolSize - poolOffset)
|
if (this.length > poolSize - poolOffset)
|
||||||
createPool();
|
createPool();
|
||||||
|
@ -118,7 +118,9 @@ function SlowBuffer(length) {
|
||||||
// Objects created in C++. Significantly faster than calling the Buffer
|
// Objects created in C++. Significantly faster than calling the Buffer
|
||||||
// function.
|
// function.
|
||||||
function NativeBuffer(length) {
|
function NativeBuffer(length) {
|
||||||
this.length = length;
|
this.length = length >>> 0;
|
||||||
|
// Set this to keep the object map the same.
|
||||||
|
this.parent = undefined;
|
||||||
}
|
}
|
||||||
NativeBuffer.prototype = Buffer.prototype;
|
NativeBuffer.prototype = Buffer.prototype;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue