Ben Noordhuis
3f7e88a852
buffer: accept negative indices in Buffer#slice()
...
A negative start or end parameter now indexes from the end of the
buffer. More in line with String#slice() and ArrayBuffer#slice().
2013-02-12 17:09:19 -08:00
isaacs
5cc3569f6d
Merge remote-tracking branch 'ry/v0.8' into master
...
Conflicts:
AUTHORS
ChangeLog
deps/npm/html/api/bin.html
deps/npm/html/api/bugs.html
deps/npm/html/api/commands.html
deps/npm/html/api/config.html
deps/npm/html/api/deprecate.html
deps/npm/html/api/docs.html
deps/npm/html/api/edit.html
deps/npm/html/api/explore.html
deps/npm/html/api/help-search.html
deps/npm/html/api/init.html
deps/npm/html/api/install.html
deps/npm/html/api/link.html
deps/npm/html/api/load.html
deps/npm/html/api/ls.html
deps/npm/html/api/npm.html
deps/npm/html/api/outdated.html
deps/npm/html/api/owner.html
deps/npm/html/api/pack.html
deps/npm/html/api/prefix.html
deps/npm/html/api/prune.html
deps/npm/html/api/publish.html
deps/npm/html/api/rebuild.html
deps/npm/html/api/restart.html
deps/npm/html/api/root.html
deps/npm/html/api/run-script.html
deps/npm/html/api/search.html
deps/npm/html/api/shrinkwrap.html
deps/npm/html/api/start.html
deps/npm/html/api/stop.html
deps/npm/html/api/submodule.html
deps/npm/html/api/tag.html
deps/npm/html/api/test.html
deps/npm/html/api/uninstall.html
deps/npm/html/api/unpublish.html
deps/npm/html/api/update.html
deps/npm/html/api/version.html
deps/npm/html/api/view.html
deps/npm/html/api/whoami.html
deps/npm/html/doc/README.html
deps/npm/html/doc/adduser.html
deps/npm/html/doc/bin.html
deps/npm/html/doc/bugs.html
deps/npm/html/doc/build.html
deps/npm/html/doc/bundle.html
deps/npm/html/doc/cache.html
deps/npm/html/doc/changelog.html
deps/npm/html/doc/coding-style.html
deps/npm/html/doc/completion.html
deps/npm/html/doc/config.html
deps/npm/html/doc/dedupe.html
deps/npm/html/doc/deprecate.html
deps/npm/html/doc/developers.html
deps/npm/html/doc/disputes.html
deps/npm/html/doc/docs.html
deps/npm/html/doc/edit.html
deps/npm/html/doc/explore.html
deps/npm/html/doc/faq.html
deps/npm/html/doc/folders.html
deps/npm/html/doc/global.html
deps/npm/html/doc/help-search.html
deps/npm/html/doc/help.html
deps/npm/html/doc/index.html
deps/npm/html/doc/init.html
deps/npm/html/doc/install.html
deps/npm/html/doc/json.html
deps/npm/html/doc/link.html
deps/npm/html/doc/ls.html
deps/npm/html/doc/npm.html
deps/npm/html/doc/outdated.html
deps/npm/html/doc/owner.html
deps/npm/html/doc/pack.html
deps/npm/html/doc/prefix.html
deps/npm/html/doc/prune.html
deps/npm/html/doc/publish.html
deps/npm/html/doc/rebuild.html
deps/npm/html/doc/registry.html
deps/npm/html/doc/removing-npm.html
deps/npm/html/doc/restart.html
deps/npm/html/doc/rm.html
deps/npm/html/doc/root.html
deps/npm/html/doc/run-script.html
deps/npm/html/doc/scripts.html
deps/npm/html/doc/search.html
deps/npm/html/doc/semver.html
deps/npm/html/doc/shrinkwrap.html
deps/npm/html/doc/star.html
deps/npm/html/doc/start.html
deps/npm/html/doc/stop.html
deps/npm/html/doc/submodule.html
deps/npm/html/doc/tag.html
deps/npm/html/doc/test.html
deps/npm/html/doc/uninstall.html
deps/npm/html/doc/unpublish.html
deps/npm/html/doc/update.html
deps/npm/html/doc/version.html
deps/npm/html/doc/view.html
deps/npm/html/doc/whoami.html
deps/npm/man/man1/global.1
deps/npm/man/man1/ls.1
deps/npm/man/man1/npm.1
deps/npm/man/man1/rm.1
deps/npm/man/man3/npm.3
deps/npm/node_modules/glob/glob.js
deps/npm/node_modules/glob/package.json
deps/npm/node_modules/node-gyp/package.json
deps/npm/node_modules/npm-registry-client/package.json
deps/npm/node_modules/npmconf/package.json
deps/npm/node_modules/read-installed/package.json
deps/npm/node_modules/rimraf/package.json
deps/npm/node_modules/rimraf/rimraf.js
deps/npm/package.json
deps/uv/src/win/error.c
doc/api/crypto.markdown
lib/zlib.js
src/node_version.h
src/node_zlib.cc
test/simple/test-buffer.js
2013-02-06 16:29:30 -08:00
Trevor Norris
65249ccd9b
buffer: slow buffer copy compatibility fix
...
Fix issue where SlowBuffers couldn't be passed as target to Buffer
copy().
Also included checks to see if Argument parameters are defined before
assigning their values. This offered ~3x's performance gain.
Backport of 16bbecc from master branch. Closes #4633 .
2013-01-25 10:42:38 -08:00
Trevor Norris
49175e6ae2
buffer: clean up copy() asserts and tests
...
Argument checks were simplified by setting all undefined/NaN or out of
bounds values equal to their defaults.
Also copy() tests had a flaw that each buffer had the same bit pattern at
the same offset. So even if the copy failed, the bit-by-bit comparison
would have still been true. This was fixed by filling each buffer with a
unique value before copy operations.
2013-01-25 11:59:21 +01:00
Trevor Norris
16bbeccd40
buffer: slow buffer copy compatibility fix
...
Fix issue where SlowBuffers couldn't be passed as target to Buffer
copy().
Also included checks to see if Argument parameters are defined before
assigning their values. This offered ~3x's performance gain.
2013-01-25 11:58:51 +01:00
isaacs
3d7818fc42
Merge remote-tracking branch 'ry/v0.8' into master
...
Conflicts:
AUTHORS
ChangeLog
src/node_version.h
test/simple/test-buffer.js
2013-01-18 12:58:16 -08:00
Ben Noordhuis
498200b87c
buffer: reject negative SlowBuffer offsets
...
Reject negative offsets in SlowBuffer::MakeFastBuffer(), it allows
the creation of buffers that point to arbitrary addresses.
Reported by Trevor Norris.
2013-01-17 01:22:11 +01:00
Trevor Norris
22b84e6216
buffer: floating point read/write improvements
...
Improvements:
* floating point operations are approx 4x's faster
* Now write quiet NaN's
* all read/write on floating point now done in C, so no more need for
lib/buffer_ieee754.js
* float values have more accurate min/max value checks
* add additional benchmarks for buffers read/write
* created benchmark/_bench_timer.js which is a simple library that
can be included into any benchmark and provides an intelligent tracker
for sync and async tests
* add benchmarks for DataView set methods
* add checks and tests to make sure offset is greater than 0
2013-01-16 10:17:20 -08:00
Ben Noordhuis
9668df8b39
v8: work around String::WriteAscii segfault
...
See http://code.google.com/p/v8/issues/detail?id=2493 for details.
Once the patch lands in upstream V8, this commit can be reverted.
2013-01-15 23:46:30 +01:00
isaacs
77ed12fe7a
Merge remote-tracking branch 'ry/v0.8' into master
...
Conflicts:
AUTHORS
ChangeLog
deps/uv/test/test-spawn.c
deps/uv/uv.gyp
src/cares_wrap.cc
src/node.cc
src/node_version.h
test/simple/test-buffer.js
tools/gyp/pylib/gyp/common.py
tools/install.py
2012-12-13 16:57:58 -08:00
Trevor Norris
6772308883
buffer: Don't double-negate numeric buffer arg
...
Fix #4331
Using double negate forces values into 32bit space. Because of this
Math.ceil needs to be used. Since NaN comparisons are always false, use
that to our advantage to return 0 if it is.
Also added two tests to verify the changes.
2012-11-30 16:23:49 -08:00
Nathan Rajlich
4b238b4c2a
Merge remote-tracking branch 'origin/v0.8'
...
Conflicts:
AUTHORS
ChangeLog
deps/uv/test/runner-win.c
doc/api/process.markdown
lib/repl.js
src/node_crypto.cc
src/node_version.h
2012-10-13 16:16:56 -07:00
Ricky Ng-Adam
8bd4590a31
buffer: include encoding value in exception when invalid
...
Encoding failures can be somewhat confusing, especially when they are due to
control flow frameworks auto-filling parameters from the previous step output
values to functions (such as toString and write) that developers don't expect
to take an encoding parameter. By outputting the value as part of the message,
should make it easier to track down these sort of bugs.
2012-10-09 16:18:26 +02:00
koichik
fbb0ee6f24
buffer: fix byteLength with UTF-16LE
...
Fixes #4075 .
2012-10-04 18:18:15 +09:00
Nathan Rajlich
a4ef01df07
buffer: implement Buffer.prototype.toJSON()
...
Returns an Array-representation of the Buffer.
Closes #3905 .
2012-09-09 11:04:16 -07:00
isaacs
05282588e0
Buffer.isEncoding(enc)
...
Re: #3918
2012-08-27 13:01:29 -07:00
Karl Skomski
57d53a47e8
Use parent SlowBuffer, if any, when Buffer is sliced
...
Closes #3416
Closes #3477
2012-06-21 01:46:04 +02:00
koichik
ebbd4039bc
buffer: add UTF-16LE encoding name.
2012-05-03 23:56:17 +09:00
Ben Noordhuis
b9127eb0a5
buffer: support decoding of URL-safe base64
2012-02-21 15:33:14 +01:00
Ben Noordhuis
f101f7c9ba
buffers: honor length argument in base64 decoder
...
Honor the length argument in `buf.write(s, 0, buf.length, 'base64')`. Before
this commit, the length argument was ignored. The decoder would keep writing
until it hit the end of the buffer. Since most buffers in Node are slices of
a parent buffer (the slab), this bug would overwrite the content of adjacent
buffers.
The bug is trivially demonstrated with the following test case:
var assert = require('assert');
var a = Buffer(3);
var b = Buffer('xxx');
a.write('aaaaaaaa', 'base64');
assert.equal(b.toString(), 'xxx');
This commit coincidentally also fixes a bug where Buffer._charsWritten was not
updated for zero length buffers.
2012-02-02 19:13:56 +01:00
Ryan Dahl
d77ce4b998
Fixes #1860 . Remove process.writeError
...
Breaks a few tests in "make test-message"
2011-10-18 13:12:50 -07:00
Colton Baker
87286cc737
Fixed a lot of jslint errors.
...
Fixes #1831
2011-10-05 18:51:06 -07:00
Ben Noordhuis
d157131439
buffers: handle bad length argument in constructor
...
Coerce fractional, negative and non-numeric length arguments to numbers.
Fractional numbers are rounded up, negative numbers and non-numeric values
are set to zero.
2011-09-24 18:27:03 +02:00
koichik
526c54c979
buffer: write() should always set _charsWritten.
...
Fixes #1633 .
2011-09-08 11:47:32 +09:00
Ryan Dahl
52044fd1b1
Merge remote branch 'origin/v0.4'
...
Conflicts:
lib/net.js
test/simple/test-buffer.js
2011-09-07 17:51:33 -07:00
koichik
3e853e627e
buffer: write() should always set _charsWritten.
...
Refs #1633 .
2011-09-03 11:48:27 +09:00
koichik
96ede8cc9b
buffer: Avoid overrun with 'binary' encoding.
...
Fixes #1624 .
2011-09-02 09:56:58 +09:00
koichik
50e147bd03
Add an optional length argument to Buffer.write()
...
Fixes #243 .
Fixes #1361 .
2011-07-24 02:01:02 +09:00
Ryan Dahl
041c983290
Merge branch 'v0.4'
...
Conflicts:
deps/libev/wscript
doc/api/modules.markdown
2011-07-14 15:52:08 -07:00
koichik
5208abe723
Fix Buffer drops last null character in UTF-8
...
Reproduce:
$ node
> buf = new Buffer('\0')
<Buffer >
> buf.length
0
> buf = new Buffer(1)
<Buffer 28>
> buf.write('\0')
0
Fixes #394 .
Fixes #1210 .
2011-07-14 02:21:56 +09:00
Ben Noordhuis
8e0d788842
Test for #402 : writing base64 at position > 0 should not mangle the result.
...
This is a regression test, the bug itself was fixed in v0.3.x.
2011-07-04 17:07:50 +02:00
Ryan Dahl
59274e8a33
Merge branch 'v0.4'
...
Conflicts:
lib/crypto.js
lib/tls.js
2011-05-20 10:29:16 -07:00
Ryan Dahl
6461af1baa
Fix buffer test
2011-05-19 12:41:17 -07:00
Ryan Dahl
5e409c2f1a
makeFastBuffer should not segfault but rather throw on non-buffer
2011-05-19 12:13:48 -07:00
Ryan Dahl
85bc8d02fa
Merge branch 'v0.4'
...
Conflicts:
src/node_crypto.cc
2011-05-16 19:29:02 -07:00
Ryan Dahl
103a450d3a
Remove 'binary' encoding assert - add tests
...
Don't write large characters to buffers with binary encoding. You will be
silently injured.
2011-05-16 15:01:33 -07:00
isaacs
205b9beb6b
Merge branch 'v0.4'
...
Conflicts:
lib/tls.js
lib/url.js
src/node_version.h
test/simple/test-buffer.js
test/simple/test-url.js
2011-05-07 20:38:32 -07:00
Konstantin Käfer
5e1b7cadb4
Add Buffer::fill method to do memset
...
Fixes #477 .
2011-05-06 13:39:12 -07:00
koichik
fcc04e67c8
Fix SlowBuffer.write() with 'ucs2' throws ReferenceError.
2011-04-28 04:57:00 -04:00
Ryan Dahl
598792ba91
Merge branch 'v0.4'
...
Conflicts:
src/platform_sunos.cc
test/simple/test-os.js
2011-04-14 01:11:21 +00:00
koichik
9533e879f0
Fix Buffer.write() with UCS-2 should not be write partial char
...
closes #916 .
2011-04-13 09:55:49 -07:00
Ryan Dahl
bfa9db9dd6
Merge branch 'v0.4'
...
Conflicts:
src/node_version.h
test/simple/test-buffer.js
2011-04-03 23:42:56 -07:00
Ryan Dahl
038306a6c3
Closes GH-843. Fix SlowBuffer.prototype.slice
2011-03-29 10:47:14 -07:00
isaacs
3c9fb3ec1a
Fix invalid end handling for SlowBuffer#hexSlice
2011-03-15 11:39:11 -07:00
Ryan Dahl
247d880113
Merge branch 'v0.4'
...
Conflicts:
src/node_version.h
2011-03-14 17:45:15 -07:00
Ryan Dahl
55048cdf79
Update copyright headers
2011-03-14 17:37:05 -07:00
isaacs
0aa1a8a005
Closes GH-695 Add 'hex' encoding to Buffer
2011-02-19 19:24:23 -08:00
Ryan Dahl
0474ce6790
Revert "buffer.toString() shouldn't include null values"
...
This reverts commit 909a5b39d2 .
Will fix inside V8's String::New instead.
2011-02-15 12:07:43 -08:00
Ryan Dahl
909a5b39d2
buffer.toString() shouldn't include null values
2011-02-14 14:27:02 -08:00
isaacs
2e6a263e29
Closes GH-609 Support array-ish args to Buffer ctor
...
Any array-ish thing (whether a Buffer, an Array, or just an object with
a numeric "length") is interpreted as a list of bytes.
2011-02-07 14:13:18 -08:00