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

Side by Side Diff: runtime/vm/flags.h

Issue 1663863002: Add product mode: (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Reworked the flags setting: Moving to single file for all flag defintions. Created 4 years, 10 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
« no previous file with comments | « runtime/vm/flag_list.h ('k') | runtime/vm/flags.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_FLAGS_H_ 5 #ifndef VM_FLAGS_H_
6 #define VM_FLAGS_H_ 6 #define VM_FLAGS_H_
7 7
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "vm/flag_list.h"
9 #include "vm/globals.h" 10 #include "vm/globals.h"
10 11
12
11 typedef const char* charp; 13 typedef const char* charp;
12 14
13 #define DECLARE_FLAG(type, name) \ 15 #define DECLARE_FLAG(type, name) \
14 extern type FLAG_##name 16 extern type FLAG_##name
15 17
16 #define DEFINE_FLAG(type, name, default_value, comment) \ 18 #define DEFINE_FLAG(type, name, default_value, comment) \
17 type FLAG_##name = Flags::Register_##type(&FLAG_##name, \ 19 type FLAG_##name = Flags::Register_##type(&FLAG_##name, \
18 #name, \ 20 #name, \
19 default_value, \ 21 default_value, \
20 comment) 22 comment);
21 23
22 #define DEFINE_FLAG_HANDLER(handler, name, comment) \ 24 #define DEFINE_FLAG_HANDLER(handler, name, comment) \
23 bool DUMMY_##name = Flags::Register_func(handler, #name, comment) 25 bool DUMMY_##name = Flags::Register_func(handler, #name, comment);
24 26
25 27
26 #if defined(DEBUG)
27 #define DECLARE_DEBUG_FLAG(type, name) DECLARE_FLAG(type, name)
28 #define DEFINE_DEBUG_FLAG(type, name, default_value, comment) \
29 DEFINE_FLAG(type, name, default_value, comment)
30 #else
31 #define DECLARE_DEBUG_FLAG(type, name)
32 #define DEFINE_DEBUG_FLAG(type, name, default_value, comment)
33 #endif
34
35 namespace dart { 28 namespace dart {
36 29
37 typedef void (*FlagHandler)(bool value); 30 typedef void (*FlagHandler)(bool value);
38 31
39 // Forward declarations. 32 // Forward declarations.
40 class Flag; 33 class Flag;
41 class JSONArray; 34 class JSONArray;
42 class JSONStream; 35 class JSONStream;
43 36
44 class Flags { 37 class Flags {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 93
101 static void PrintFlagToJSONArray(JSONArray* jsarr, const Flag* flag); 94 static void PrintFlagToJSONArray(JSONArray* jsarr, const Flag* flag);
102 95
103 // Testing needs direct access to private methods. 96 // Testing needs direct access to private methods.
104 friend void Dart_TestParseFlags(); 97 friend void Dart_TestParseFlags();
105 98
106 DISALLOW_ALLOCATION(); 99 DISALLOW_ALLOCATION();
107 DISALLOW_IMPLICIT_CONSTRUCTORS(Flags); 100 DISALLOW_IMPLICIT_CONSTRUCTORS(Flags);
108 }; 101 };
109 102
103 #define PRODUCT_FLAG_MARCO(name, type, default_value, comment) \
104 extern type FLAG_##name;
105
106 #if defined(DEBUG)
107 #define DEBUG_FLAG_MARCO(name, type, default_value, comment) \
108 extern type FLAG_##name;
109 #else // defined(DEBUG)
110 #define DEBUG_FLAG_MARCO(name, type, default_value, comment) \
111 const type FLAG_##name = default_value;
112 #endif // defined(DEBUG)
113
114 #if defined(PRODUCT)
115 #define RELEASE_FLAG_MARCO(name, product_value, type, default_value, comment) \
116 const type FLAG_##name = product_value;
117
118 #else // defined(PRODUCT)
119
120 #define RELEASE_FLAG_MARCO(name, product_value, type, default_value, comment) \
121 extern type FLAG_##name;
122
123 #endif // defined(PRODUCT)
124
125 // Now declare all flags here.
126 FLAG_LIST(PRODUCT_FLAG_MARCO, RELEASE_FLAG_MARCO, DEBUG_FLAG_MARCO)
127
128 #undef RELEASE_FLAG_MARCO
129 #undef DEBUG_FLAG_MARCO
130 #undef PRODUCT_FLAG_MARCO
131
110 } // namespace dart 132 } // namespace dart
111 133
112 #endif // VM_FLAGS_H_ 134 #endif // VM_FLAGS_H_
OLDNEW
« no previous file with comments | « runtime/vm/flag_list.h ('k') | runtime/vm/flags.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698