0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 16:10:02 +01:00
nodejs/src
Ben Noordhuis 8fd3ce100e src: make base64 decoding 50% faster
Make the inner loop execute fewer compare-and-branch executions per
processed byte, resulting in a 50% or more speedup.

This coincidentally fixes an out-of-bounds read:

    while (unbase64(*src) < 0 && src < srcEnd)

Should have read:

    while (src < srcEnd && unbase64(*src) < 0)

But this commit removes the offending code altogether.

Fixes: https://github.com/nodejs/io.js/issues/2166
PR-URL: https://github.com/nodejs/io.js/pull/2193
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-07-25 19:07:23 +02:00
..
res install: new performance counters provider guid 2015-02-28 17:05:15 +01:00
async-wrap-inl.h async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
async-wrap.cc async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
async-wrap.h async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
base-object-inl.h Revert "core: set PROVIDER type as Persistent class id" 2015-05-28 21:48:44 +02:00
base-object.h Revert "core: set PROVIDER type as Persistent class id" 2015-05-28 21:48:44 +02:00
cares_wrap.cc async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
CNNICHashWhitelist.inc crypto: add cert check to CNNIC Whitelist 2015-06-16 23:26:29 +09:00
debug-agent.cc
debug-agent.h
env-inl.h core: implement runtime flag to trace sync io 2015-05-18 10:05:32 -06:00
env.cc core: implement runtime flag to trace sync io 2015-05-18 10:05:32 -06:00
env.h core: implement runtime flag to trace sync io 2015-05-18 10:05:32 -06:00
fs_event_wrap.cc async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
handle_wrap.cc timers: make Timer.close idempotent 2015-03-27 20:50:09 +02:00
handle_wrap.h
js_stream.cc _stream_wrap: prevent use after free in TLS 2015-06-30 20:09:22 -07:00
js_stream.h async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
node_buffer.cc buffer: prevent abort on bad proto 2015-06-25 13:07:01 -06:00
node_buffer.h
node_constants.cc
node_constants.h
node_contextify.cc vm: remove unnecessary HandleScopes 2015-06-17 17:49:52 +02:00
node_counters.cc
node_counters.h src: fix -Wempty-body compiler warnings 2015-03-05 20:08:30 +01:00
node_crypto_bio.cc node_crypto_bio: adjust external memory size 2015-03-08 19:07:46 -04:00
node_crypto_bio.h src: fix crypto bio integer wraparound on 32 bits 2015-03-18 20:06:20 +01:00
node_crypto_clienthello-inl.h
node_crypto_clienthello.cc
node_crypto_clienthello.h
node_crypto_groups.h
node_crypto.cc crypto: fix legacy SNICallback 2015-07-22 14:00:37 -07:00
node_crypto.h async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
node_dtrace.cc make: remove node_dtrace from cpplint excludes 2015-03-16 16:20:16 -04:00
node_dtrace.h
node_file.cc async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
node_file.h
node_http_parser.cc src: fix -Wmissing-field-initializers warning 2015-05-04 13:59:31 +02:00
node_http_parser.h
node_i18n.cc
node_i18n.h src: hide InitializeICUDirectory symbol 2015-06-02 21:44:18 +02:00
node_internals.h src: make accessors immune to context confusion 2015-03-23 10:40:12 +01:00
node_javascript.cc
node_javascript.h
node_lttng_provider.h
node_lttng_tp.h
node_lttng.cc
node_lttng.h
node_main.cc
node_object_wrap.h src: fix add-on builds, partially revert 8aed9d66 2015-02-18 00:07:49 +03:00
node_os.cc os: add homedir() 2015-06-05 22:58:14 -04:00
node_provider.d
node_root_certs.h crypto: update root certificates 2015-06-02 19:28:14 +02:00
node_stat_watcher.cc
node_stat_watcher.h async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
node_v8.cc src: add type check to v8.setFlagsFromString() 2015-05-08 19:09:45 +02:00
node_version.h Working on v2.4.1 2015-07-17 16:23:47 -07:00
node_watchdog.cc
node_watchdog.h
node_win32_etw_provider-inl.h
node_win32_etw_provider.cc
node_win32_etw_provider.h
node_win32_perfctr_provider.cc
node_win32_perfctr_provider.h
node_wrap.h streams: introduce StreamWrap and JSStream 2015-02-24 22:38:21 +03:00
node_zlib.cc async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
node.cc src: add --track-heap-objects 2015-07-10 15:27:07 -06:00
node.d
node.h src: export the ParseEncoding function on Windows 2015-05-07 12:30:12 -04:00
node.js process: resize stderr on SIGWINCH 2015-07-23 16:32:28 -07:00
node.stp
nolttng_macros.py
notrace_macros.py
perfctr_macros.py
pipe_wrap.cc async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
pipe_wrap.h async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
process_wrap.cc async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
req-wrap-inl.h
req-wrap.h
signal_wrap.cc async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
smalloc.cc src: deprecate smalloc public functions 2015-04-30 01:05:33 +02:00
smalloc.h src: deprecate smalloc public functions 2015-04-30 01:05:33 +02:00
spawn_sync.cc core: implement runtime flag to trace sync io 2015-05-18 10:05:32 -06:00
spawn_sync.h src: fix minor inefficiency in Buffer::New() call 2015-05-05 00:41:59 +02:00
stream_base-inl.h async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
stream_base.cc stream_base: dispatch reqs in the stream impl 2015-05-01 13:52:11 +02:00
stream_base.h async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
stream_wrap.cc stream_base: dispatch reqs in the stream impl 2015-05-01 13:52:11 +02:00
stream_wrap.h stream_base: .writev() has limited support 2015-02-28 16:50:36 -06:00
string_bytes.cc src: make base64 decoding 50% faster 2015-07-25 19:07:23 +02:00
string_bytes.h src: remove NODE_INVALID_UTF8 environment variable 2015-03-05 20:44:18 +01:00
tcp_wrap.cc async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
tcp_wrap.h async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
timer_wrap.cc async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
tls_wrap.cc _stream_wrap: prevent use after free in TLS 2015-06-30 20:09:22 -07:00
tls_wrap.h async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
tree.h
tty_wrap.cc tty: do not add shutdown method to handle 2015-03-05 13:38:22 -05:00
tty_wrap.h async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
udp_wrap.cc async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
udp_wrap.h async-wrap: add provider id and object info cb 2015-06-17 12:58:39 -06:00
util-inl.h
util.cc src: fix deprecation warnings 2015-04-30 01:05:32 +02:00
util.h src: simplify node::Utf8Value() 2015-03-05 20:44:19 +01:00
uv.cc
v8abbr.h
v8ustack.d