|
|
@ -199,8 +199,9 @@ function coerce(length) { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Buffer
|
|
|
|
var zeroBuffer = new SlowBuffer(0); |
|
|
|
|
|
|
|
// Buffer
|
|
|
|
function Buffer(subject, encoding, offset) { |
|
|
|
if (!(this instanceof Buffer)) { |
|
|
|
return new Buffer(subject, encoding, offset); |
|
|
@ -242,13 +243,18 @@ function Buffer(subject, encoding, offset) { |
|
|
|
this.parent = new SlowBuffer(this.length); |
|
|
|
this.offset = 0; |
|
|
|
|
|
|
|
} else { |
|
|
|
} else if (this.length > 0) { |
|
|
|
// Small buffer.
|
|
|
|
if (!pool || pool.length - pool.used < this.length) allocPool(); |
|
|
|
this.parent = pool; |
|
|
|
this.offset = pool.used; |
|
|
|
pool.used += this.length; |
|
|
|
if (pool.used & 7) pool.used = (pool.used + 8) & ~7; |
|
|
|
|
|
|
|
} else { |
|
|
|
// Zero-length buffer
|
|
|
|
this.parent = zeroBuffer; |
|
|
|
this.offset = 0; |
|
|
|
} |
|
|
|
|
|
|
|
// Treat array-ish objects as a byte array.
|
|
|
|