- Feb 23, 2013
-
-
isaacs authored
Also, this adds a test that guarantees that the ordering of several push() calls in a row is always preserved in synchronous readable streams
-
- Feb 22, 2013
-
-
isaacs authored
There are cases where a push() call would return true, even though the thing being pushed was in fact way way larger than the high water mark, simply because the 'needReadable' was already set, and would not get unset until nextTick. In some cases, this could lead to an infinite loop of pushing data into the buffer, never getting to the 'readable' event which would unset the needReadable flag. Fix by splitting up the emitReadable function, so that it always sets the flag on this tick, even if it defers until nextTick to actually emit the event. Also, if we're not ending or already in the process of reading, it now calls read(0) if we're below the high water mark. Thus, the highWaterMark value is the intended amount to buffer up to, and it is smarter about hitting the target.
-
isaacs authored
It seems like a good idea on the face of it, but lowWaterMarks are actually not useful, and in practice should always be set to zero. It would be worthwhile for writers if we actually did some kind of writev() type of thing, but actually this just delays calling write() and the overhead of doing a bunch of Buffer copies is not worth the slight benefit of calling write() fewer times.
-
isaacs authored
-
Nathan Rajlich authored
-
Nathan Rajlich authored
-
Arianit Uka authored
lib/path.js: - throws a TypeError on the filter if the argument is not a string. test/simple/test-path.js: - removed the test to check if non-string types are filtered. - added a test to check if path.join throws TypeError on arguments that are not strings. -
Fedor Indutny authored
lib/http.js is using stream._handle.readStart/readStop to control data-flow coming out from underlying stream. If this methods are not present - data might be buffered regardless of whether it'll be read. see #4657
-
Trevor Norris authored
Apperently there is a case where calling the spinner was required after passing a callback to nextTick(). This fixes that issue.
-
- Feb 21, 2013
-
-
isaacs authored
Fix #4795
-
Ben Noordhuis authored
It's a buffer so it's never bigger than Buffer::kMaxLength bytes, which in turn is always < INT_MAX.
-
Ben Noordhuis authored
-
Trevor Norris authored
Checks have been simplified and optimized for most-used cases. Calling Buffer with another Buffer as the subject will now use the SlowBuffer Copy method instead of the for loop. No need to call for value coercion, just place the ternary inline.
-
isaacs authored
-
- Feb 20, 2013
-
-
Ben Noordhuis authored
It's not used outside of src/node.cc so make it static.
-
Ben Noordhuis authored
ASN1_STRING_to_UTF8() passes an ASN1_STRING to ASN1_STRING_set() but forgot to initialize the `length` field. Fixes the following valgrind error: $ valgrind -q --track-origins=yes --num-callers=19 \ out/Debug/node test/simple/test-tls-client-abort.js ==2690== Conditional jump or move depends on uninitialised value(s) ==2690== at 0x784B69: ASN1_STRING_set (asn1_lib.c:382) ==2690== by 0x809564: ASN1_mbstring_ncopy (a_mbstr.c:204) ==2690== by 0x8090F0: ASN1_mbstring_copy (a_mbstr.c:86) ==2690== by 0x782F1F: ASN1_STRING_to_UTF8 (a_strex.c:570) ==2690== by 0x78F090: asn1_string_canon (x_name.c:409) ==2690== by 0x78EF17: x509_name_canon (x_name.c:354) ==2690== by 0x78EA7D: x509_name_ex_d2i (x_name.c:210) ==2690== by 0x788058: ASN1_item_ex_d2i (tasn_dec.c:239) ==2690== by 0x7890D4: asn1_template_noexp_d2i (tasn_dec.c:746) ==2690== by 0x788CB6: asn1_template_ex_d2i (tasn_dec.c:607) ==2690== by 0x78877A: ASN1_item_ex_d2i (tasn_dec.c:448) ==2690== by 0x7890D4: asn1_template_noexp_d2i (tasn_dec.c:746) ==2690== by 0x788CB6: asn1_template_ex_d2i (tasn_dec.c:607) ==2690== by 0x78877A: ASN1_item_ex_d2i (tasn_dec.c:448) ==2690== by 0x787C93: ASN1_item_d2i (tasn_dec.c:136) ==2690== by 0x78F5E4: d2i_X509 (x_x509.c:141) ==2690== by 0x7C9B91: PEM_ASN1_read_bio (pem_oth.c:81) ==2690== by 0x7CA506: PEM_read_bio_X509 (pem_x509.c:67) ==2690== by 0x703C9A: node::crypto::SecureContext::AddRootCerts(v8::Arguments const&) (node_crypto.cc:497) ==2690== Uninitialised value was created by a stack allocation ==2690== at 0x782E89: ASN1_STRING_to_UTF8 (a_strex.c:560) -
Bert Belder authored
When perlasm generates MASM code it sets the assembler target to 468. In this mode MASM refuses to assemble a couple of instructions. Bumping the target to 686 solves this problem.
-
Bert Belder authored
It used to be off before. It's extremely unlikely that such an attack would be a viable attack against node. And it makes AES much slower.
-
Fedor Indutny authored
-
isaacs authored
-
isaacs authored
-
isaacs authored
For throughput benchmarks, run with just 5s durations rather than 1s and 3s. For startup benchmark, run with just a single 1s duration, since it's very consistent anyway.
-
isaacs authored
-
isaacs authored
-
isaacs authored
-
isaacs authored
Remove ab, since it's no longer used.
-
isaacs authored
-
isaacs authored
-
isaacs authored
-
isaacs authored
-
isaacs authored
-
isaacs authored
-
isaacs authored
-
isaacs authored
Also, make it work properly with current node.
-
isaacs authored
-
isaacs authored
Better covered by the other benchmark/fs scripts.
-
isaacs authored
-
isaacs authored
-
isaacs authored
-
isaacs authored
-