return new Buffer(subject, encoding);
if (util.isNumber(subject)) {
- this.length = subject > 0 ? subject >>> 0 : 0;
+ this.length = +subject;
} else if (util.isString(subject)) {
if (!util.isString(encoding) || encoding.length === 0)
} else if (util.isObject(subject)) {
if (subject.type === 'Buffer' && util.isArray(subject.data))
subject = subject.data;
- // Must use floor() because array length may be > kMaxLength.
- this.length = +subject.length > 0 ? Math.floor(+subject.length) : 0;
+ this.length = +subject.length;
} else {
throw new TypeError('must start with number, buffer, array or string');
'size: 0x' + kMaxLength.toString(16) + ' bytes');
}
+ if (this.length < 0)
+ this.length = 0;
+ else
+ this.length >>>= 0; // Coerce to uint32.
+
this.parent = undefined;
if (this.length <= (Buffer.poolSize >>> 1) && this.length > 0) {
if (this.length > poolSize - poolOffset)