buffer: add comment explaining buffer alignment

Avoids alignment issues (unaligned loads/stores) on ARM. Originally
added in commit 285d8c6.

Fixes #3030.
This commit is contained in:
Ben Noordhuis 2013-06-27 03:18:41 +02:00
parent 2a8c5ddc46
commit cf6acf2a1a

View File

@ -199,8 +199,8 @@ function Buffer(subject, encoding, offset) {
if (!pool || pool.length - pool.used < this.length) allocPool(); if (!pool || pool.length - pool.used < this.length) allocPool();
this.parent = pool; this.parent = pool;
this.offset = pool.used; this.offset = pool.used;
pool.used += this.length; // Align on 8 byte boundary to avoid alignment issues on ARM.
if (pool.used & 7) pool.used = (pool.used + 8) & ~7; pool.used = (pool.used + this.length + 7) & ~7;
} else { } else {
// Zero-length buffer // Zero-length buffer