diff options
Diffstat (limited to 'chromium/v8/src/list.h')
-rw-r--r-- | chromium/v8/src/list.h | 47 |
1 files changed, 19 insertions, 28 deletions
diff --git a/chromium/v8/src/list.h b/chromium/v8/src/list.h index ea67b8b0c6c..2244d67f9f0 100644 --- a/chromium/v8/src/list.h +++ b/chromium/v8/src/list.h @@ -1,38 +1,16 @@ // Copyright 2011 the V8 project authors. All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. #ifndef V8_LIST_H_ #define V8_LIST_H_ -#include "utils.h" +#include "src/utils.h" namespace v8 { namespace internal { +template<typename T> class Vector; // ---------------------------------------------------------------------------- // The list is a template for very light-weight lists. We are not @@ -91,6 +69,10 @@ class List { inline T& last() const { return at(length_ - 1); } inline T& first() const { return at(0); } + typedef T* iterator; + inline iterator begin() const { return &data_[0]; } + inline iterator end() const { return &data_[length_]; } + INLINE(bool is_empty() const) { return length_ == 0; } INLINE(int length() const) { return length_; } INLINE(int capacity() const) { return capacity_; } @@ -196,14 +178,23 @@ class List { DISALLOW_COPY_AND_ASSIGN(List); }; + +template<typename T, class P> +size_t GetMemoryUsedByList(const List<T, P>& list) { + return list.length() * sizeof(T) + sizeof(list); +} + + class Map; -class Type; +template<class> class TypeImpl; +struct HeapTypeConfig; +typedef TypeImpl<HeapTypeConfig> HeapType; class Code; template<typename T> class Handle; typedef List<Map*> MapList; typedef List<Code*> CodeList; typedef List<Handle<Map> > MapHandleList; -typedef List<Handle<Type> > TypeHandleList; +typedef List<Handle<HeapType> > TypeHandleList; typedef List<Handle<Code> > CodeHandleList; // Perform binary search for an element in an already sorted |