Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(115)

Side by Side Diff: src/vector.h

Issue 1911313002: Pass debug name as Vector instead of const char* (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@wasm-offset-table-1
Patch Set: rebase Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_VECTOR_H_ 5 #ifndef V8_VECTOR_H_
6 #define V8_VECTOR_H_ 6 #define V8_VECTOR_H_
7 7
8 #include <string.h> 8 #include <string.h>
9 #include <algorithm> 9 #include <algorithm>
10 10
11 #include "src/allocation.h" 11 #include "src/allocation.h"
12 #include "src/checks.h" 12 #include "src/checks.h"
13 #include "src/globals.h" 13 #include "src/globals.h"
14 14
15 namespace v8 { 15 namespace v8 {
16 namespace internal { 16 namespace internal {
17 17
18 18
19 template <typename T> 19 template <typename T>
20 class Vector { 20 class Vector {
21 public: 21 public:
22 Vector() : start_(NULL), length_(0) {} 22 Vector() : start_(NULL), length_(0) {}
23 Vector(T* data, int length) : start_(data), length_(length) { 23 Vector(T* data, int length) : start_(data), length_(length) {
24 DCHECK(length == 0 || (length > 0 && data != NULL)); 24 DCHECK(length == 0 || (length > 0 && data != NULL));
25 } 25 }
26 26
27 template <int N>
28 explicit Vector(T (&arr)[N]) : start_(arr), length_(N) {}
29
27 static Vector<T> New(int length) { 30 static Vector<T> New(int length) {
28 return Vector<T>(NewArray<T>(length), length); 31 return Vector<T>(NewArray<T>(length), length);
29 } 32 }
30 33
31 // Returns a vector using the same backing storage as this one, 34 // Returns a vector using the same backing storage as this one,
32 // spanning from and including 'from', to but not including 'to'. 35 // spanning from and including 'from', to but not including 'to'.
33 Vector<T> SubVector(int from, int to) { 36 Vector<T> SubVector(int from, int to) {
34 DCHECK(0 <= from); 37 DCHECK(0 <= from);
35 SLOW_DCHECK(from < to); 38 SLOW_DCHECK(from < to);
36 SLOW_DCHECK(static_cast<unsigned>(to) <= static_cast<unsigned>(length_)); 39 SLOW_DCHECK(static_cast<unsigned>(to) <= static_cast<unsigned>(length_));
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 197
195 inline Vector<char> MutableCStrVector(char* data) { 198 inline Vector<char> MutableCStrVector(char* data) {
196 return Vector<char>(data, StrLength(data)); 199 return Vector<char>(data, StrLength(data));
197 } 200 }
198 201
199 inline Vector<char> MutableCStrVector(char* data, int max) { 202 inline Vector<char> MutableCStrVector(char* data, int max) {
200 int length = StrLength(data); 203 int length = StrLength(data);
201 return Vector<char>(data, (length < max) ? length : max); 204 return Vector<char>(data, (length < max) ? length : max);
202 } 205 }
203 206
207 template <typename T, int N>
208 inline Vector<T> ArrayVector(T (&arr)[N]) {
209 return Vector<T>(arr);
210 }
204 211
205 } // namespace internal 212 } // namespace internal
206 } // namespace v8 213 } // namespace v8
207 214
208 #endif // V8_VECTOR_H_ 215 #endif // V8_VECTOR_H_
OLDNEW
« no previous file with comments | « src/compiler/wasm-compiler.cc ('k') | src/wasm/wasm-opcodes.h » ('j') | src/wasm/wasm-opcodes.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698