OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 #include <ctype.h> | 5 #include <ctype.h> |
6 #include <stdlib.h> | 6 #include <stdlib.h> |
7 | 7 |
8 #include "src/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #include "src/assembler.h" | 10 #include "src/assembler.h" |
(...skipping 27 matching lines...) Expand all Loading... |
38 const char* cmt_; // A comment about the flags purpose. | 38 const char* cmt_; // A comment about the flags purpose. |
39 bool owns_ptr_; // Does the flag own its string value? | 39 bool owns_ptr_; // Does the flag own its string value? |
40 | 40 |
41 FlagType type() const { return type_; } | 41 FlagType type() const { return type_; } |
42 | 42 |
43 const char* name() const { return name_; } | 43 const char* name() const { return name_; } |
44 | 44 |
45 const char* comment() const { return cmt_; } | 45 const char* comment() const { return cmt_; } |
46 | 46 |
47 bool* bool_variable() const { | 47 bool* bool_variable() const { |
48 ASSERT(type_ == TYPE_BOOL); | 48 DCHECK(type_ == TYPE_BOOL); |
49 return reinterpret_cast<bool*>(valptr_); | 49 return reinterpret_cast<bool*>(valptr_); |
50 } | 50 } |
51 | 51 |
52 MaybeBoolFlag* maybe_bool_variable() const { | 52 MaybeBoolFlag* maybe_bool_variable() const { |
53 ASSERT(type_ == TYPE_MAYBE_BOOL); | 53 DCHECK(type_ == TYPE_MAYBE_BOOL); |
54 return reinterpret_cast<MaybeBoolFlag*>(valptr_); | 54 return reinterpret_cast<MaybeBoolFlag*>(valptr_); |
55 } | 55 } |
56 | 56 |
57 int* int_variable() const { | 57 int* int_variable() const { |
58 ASSERT(type_ == TYPE_INT); | 58 DCHECK(type_ == TYPE_INT); |
59 return reinterpret_cast<int*>(valptr_); | 59 return reinterpret_cast<int*>(valptr_); |
60 } | 60 } |
61 | 61 |
62 double* float_variable() const { | 62 double* float_variable() const { |
63 ASSERT(type_ == TYPE_FLOAT); | 63 DCHECK(type_ == TYPE_FLOAT); |
64 return reinterpret_cast<double*>(valptr_); | 64 return reinterpret_cast<double*>(valptr_); |
65 } | 65 } |
66 | 66 |
67 const char* string_value() const { | 67 const char* string_value() const { |
68 ASSERT(type_ == TYPE_STRING); | 68 DCHECK(type_ == TYPE_STRING); |
69 return *reinterpret_cast<const char**>(valptr_); | 69 return *reinterpret_cast<const char**>(valptr_); |
70 } | 70 } |
71 | 71 |
72 void set_string_value(const char* value, bool owns_ptr) { | 72 void set_string_value(const char* value, bool owns_ptr) { |
73 ASSERT(type_ == TYPE_STRING); | 73 DCHECK(type_ == TYPE_STRING); |
74 const char** ptr = reinterpret_cast<const char**>(valptr_); | 74 const char** ptr = reinterpret_cast<const char**>(valptr_); |
75 if (owns_ptr_ && *ptr != NULL) DeleteArray(*ptr); | 75 if (owns_ptr_ && *ptr != NULL) DeleteArray(*ptr); |
76 *ptr = value; | 76 *ptr = value; |
77 owns_ptr_ = owns_ptr; | 77 owns_ptr_ = owns_ptr; |
78 } | 78 } |
79 | 79 |
80 JSArguments* args_variable() const { | 80 JSArguments* args_variable() const { |
81 ASSERT(type_ == TYPE_ARGS); | 81 DCHECK(type_ == TYPE_ARGS); |
82 return reinterpret_cast<JSArguments*>(valptr_); | 82 return reinterpret_cast<JSArguments*>(valptr_); |
83 } | 83 } |
84 | 84 |
85 bool bool_default() const { | 85 bool bool_default() const { |
86 ASSERT(type_ == TYPE_BOOL); | 86 DCHECK(type_ == TYPE_BOOL); |
87 return *reinterpret_cast<const bool*>(defptr_); | 87 return *reinterpret_cast<const bool*>(defptr_); |
88 } | 88 } |
89 | 89 |
90 int int_default() const { | 90 int int_default() const { |
91 ASSERT(type_ == TYPE_INT); | 91 DCHECK(type_ == TYPE_INT); |
92 return *reinterpret_cast<const int*>(defptr_); | 92 return *reinterpret_cast<const int*>(defptr_); |
93 } | 93 } |
94 | 94 |
95 double float_default() const { | 95 double float_default() const { |
96 ASSERT(type_ == TYPE_FLOAT); | 96 DCHECK(type_ == TYPE_FLOAT); |
97 return *reinterpret_cast<const double*>(defptr_); | 97 return *reinterpret_cast<const double*>(defptr_); |
98 } | 98 } |
99 | 99 |
100 const char* string_default() const { | 100 const char* string_default() const { |
101 ASSERT(type_ == TYPE_STRING); | 101 DCHECK(type_ == TYPE_STRING); |
102 return *reinterpret_cast<const char* const *>(defptr_); | 102 return *reinterpret_cast<const char* const *>(defptr_); |
103 } | 103 } |
104 | 104 |
105 JSArguments args_default() const { | 105 JSArguments args_default() const { |
106 ASSERT(type_ == TYPE_ARGS); | 106 DCHECK(type_ == TYPE_ARGS); |
107 return *reinterpret_cast<const JSArguments*>(defptr_); | 107 return *reinterpret_cast<const JSArguments*>(defptr_); |
108 } | 108 } |
109 | 109 |
110 // Compare this flag's current value against the default. | 110 // Compare this flag's current value against the default. |
111 bool IsDefault() const { | 111 bool IsDefault() const { |
112 switch (type_) { | 112 switch (type_) { |
113 case TYPE_BOOL: | 113 case TYPE_BOOL: |
114 return *bool_variable() == bool_default(); | 114 return *bool_variable() == bool_default(); |
115 case TYPE_MAYBE_BOOL: | 115 case TYPE_MAYBE_BOOL: |
116 return maybe_bool_variable()->has_value == false; | 116 return maybe_bool_variable()->has_value == false; |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 | 218 |
219 | 219 |
220 // static | 220 // static |
221 List<const char*>* FlagList::argv() { | 221 List<const char*>* FlagList::argv() { |
222 List<const char*>* args = new List<const char*>(8); | 222 List<const char*>* args = new List<const char*>(8); |
223 Flag* args_flag = NULL; | 223 Flag* args_flag = NULL; |
224 for (size_t i = 0; i < num_flags; ++i) { | 224 for (size_t i = 0; i < num_flags; ++i) { |
225 Flag* f = &flags[i]; | 225 Flag* f = &flags[i]; |
226 if (!f->IsDefault()) { | 226 if (!f->IsDefault()) { |
227 if (f->type() == Flag::TYPE_ARGS) { | 227 if (f->type() == Flag::TYPE_ARGS) { |
228 ASSERT(args_flag == NULL); | 228 DCHECK(args_flag == NULL); |
229 args_flag = f; // Must be last in arguments. | 229 args_flag = f; // Must be last in arguments. |
230 continue; | 230 continue; |
231 } | 231 } |
232 { | 232 { |
233 bool disabled = f->type() == Flag::TYPE_BOOL && !*f->bool_variable(); | 233 bool disabled = f->type() == Flag::TYPE_BOOL && !*f->bool_variable(); |
234 OStringStream os; | 234 OStringStream os; |
235 os << (disabled ? "--no" : "--") << f->name(); | 235 os << (disabled ? "--no" : "--") << f->name(); |
236 args->Add(StrDup(os.c_str())); | 236 args->Add(StrDup(os.c_str())); |
237 } | 237 } |
238 if (f->type() != Flag::TYPE_BOOL) { | 238 if (f->type() != Flag::TYPE_BOOL) { |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
541 | 541 |
542 | 542 |
543 // static | 543 // static |
544 void FlagList::EnforceFlagImplications() { | 544 void FlagList::EnforceFlagImplications() { |
545 #define FLAG_MODE_DEFINE_IMPLICATIONS | 545 #define FLAG_MODE_DEFINE_IMPLICATIONS |
546 #include "src/flag-definitions.h" | 546 #include "src/flag-definitions.h" |
547 #undef FLAG_MODE_DEFINE_IMPLICATIONS | 547 #undef FLAG_MODE_DEFINE_IMPLICATIONS |
548 } | 548 } |
549 | 549 |
550 } } // namespace v8::internal | 550 } } // namespace v8::internal |
OLD | NEW |