Skip to content

Commit

Permalink
buffer: align chunks on 8-byte boundary
Browse files Browse the repository at this point in the history
When slicing global pool - ensure that the underlying buffer's data ptr
is 8-byte alignment to do not ruin expectations of 3rd party C++ addons.

NOTE: 0.10 node.js always returned aligned pointers and v0.12 should do
this too for compatibility.

PR-URL: nodejs/node-v0.x-archive#9375
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
  • Loading branch information
indutny committed Mar 11, 2015
1 parent cc6ee3f commit a33f23c
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions lib/buffer.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,12 @@ function Buffer(subject, encoding) {
poolOffset,
poolOffset + this.length);
poolOffset += this.length;

// Ensure aligned slices
if (poolOffset & 0x7) {
poolOffset |= 0x7;
poolOffset++;
}
} else {
alloc(this, this.length);
}
Expand Down

0 comments on commit a33f23c

Please sign in to comment.