diff options
author | Michaël Zasso <targos@protonmail.com> | 2017-02-14 11:27:26 +0100 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2017-02-22 15:55:42 +0100 |
commit | 7a77daf24344db7942e34c962b0f1ee729ab7af5 (patch) | |
tree | e7cbe7bf4e2f4b802a8f5bc18336c546cd6a0d7f /deps/v8/src/compiler/node-aux-data.h | |
parent | 5f08871ee93ea739148cc49e0f7679e33c70295a (diff) | |
download | node-new-7a77daf24344db7942e34c962b0f1ee729ab7af5.tar.gz |
deps: update V8 to 5.6.326.55
PR-URL: https://github.com/nodejs/node/pull/10992
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Diffstat (limited to 'deps/v8/src/compiler/node-aux-data.h')
-rw-r--r-- | deps/v8/src/compiler/node-aux-data.h | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/deps/v8/src/compiler/node-aux-data.h b/deps/v8/src/compiler/node-aux-data.h index b50ff3885d..277ff18034 100644 --- a/deps/v8/src/compiler/node-aux-data.h +++ b/deps/v8/src/compiler/node-aux-data.h @@ -15,20 +15,20 @@ namespace compiler { // Forward declarations. class Node; -template <class T> +template <class T, T def()> class NodeAuxData { public: explicit NodeAuxData(Zone* zone) : aux_data_(zone) {} void Set(Node* node, T const& data) { size_t const id = node->id(); - if (id >= aux_data_.size()) aux_data_.resize(id + 1); + if (id >= aux_data_.size()) aux_data_.resize(id + 1, def()); aux_data_[id] = data; } T Get(Node* node) const { size_t const id = node->id(); - return (id < aux_data_.size()) ? aux_data_[id] : T(); + return (id < aux_data_.size()) ? aux_data_[id] : def(); } class const_iterator; @@ -41,9 +41,8 @@ class NodeAuxData { ZoneVector<T> aux_data_; }; - -template <class T> -class NodeAuxData<T>::const_iterator { +template <class T, T def()> +class NodeAuxData<T, def>::const_iterator { public: typedef std::forward_iterator_tag iterator_category; typedef int difference_type; @@ -76,14 +75,16 @@ class NodeAuxData<T>::const_iterator { size_t current_; }; -template <class T> -typename NodeAuxData<T>::const_iterator NodeAuxData<T>::begin() const { - return typename NodeAuxData<T>::const_iterator(&aux_data_, 0); +template <class T, T def()> +typename NodeAuxData<T, def>::const_iterator NodeAuxData<T, def>::begin() + const { + return typename NodeAuxData<T, def>::const_iterator(&aux_data_, 0); } -template <class T> -typename NodeAuxData<T>::const_iterator NodeAuxData<T>::end() const { - return typename NodeAuxData<T>::const_iterator(&aux_data_, aux_data_.size()); +template <class T, T def()> +typename NodeAuxData<T, def>::const_iterator NodeAuxData<T, def>::end() const { + return typename NodeAuxData<T, def>::const_iterator(&aux_data_, + aux_data_.size()); } } // namespace compiler |