220 OptionCommand,
221 QuietCommand,
222 HelpCommand,
223 OracleCommandCount
224 };
225
226 // this must parallel the enum OracleCommand
227 static const char * command_names[] = {
228 "break",
229 "print",
230 "exclude",
231 "inline",
232 "dontinline",
233 "compileonly",
234 "log",
235 "option",
236 "quiet",
237 "help"
238 };
239
240 static const char * command_name(OracleCommand command) {
241 if (command < OracleFirstCommand || command >= OracleCommandCount) {
242 return "unknown command";
243 }
244 return command_names[command];
245 }
246
247 class MethodMatcher;
248 static MethodMatcher* lists[OracleCommandCount] = { 0, };
249
250
251 static bool check_predicate(OracleCommand command, methodHandle method) {
252 return ((lists[command] != NULL) &&
253 !method.is_null() &&
254 lists[command]->match(method));
255 }
256
257
258 static MethodMatcher* add_predicate(OracleCommand command,
259 Symbol* class_name, MethodMatcher::Mode c_mode,
260 Symbol* method_name, MethodMatcher::Mode m_mode,
261 Symbol* signature) {
262 assert(command != OptionCommand, "must use add_option_string");
263 if (command == LogCommand && !LogCompilation && lists[LogCommand] == NULL)
264 tty->print_cr("Warning: +LogCompilation must be enabled in order for individual methods to be logged.");
265 lists[command] = new MethodMatcher(class_name, c_mode, method_name, m_mode, signature, lists[command]);
266 return lists[command];
|
220 OptionCommand,
221 QuietCommand,
222 HelpCommand,
223 OracleCommandCount
224 };
225
226 // this must parallel the enum OracleCommand
227 static const char * command_names[] = {
228 "break",
229 "print",
230 "exclude",
231 "inline",
232 "dontinline",
233 "compileonly",
234 "log",
235 "option",
236 "quiet",
237 "help"
238 };
239
240 class MethodMatcher;
241 static MethodMatcher* lists[OracleCommandCount] = { 0, };
242
243
244 static bool check_predicate(OracleCommand command, methodHandle method) {
245 return ((lists[command] != NULL) &&
246 !method.is_null() &&
247 lists[command]->match(method));
248 }
249
250
251 static MethodMatcher* add_predicate(OracleCommand command,
252 Symbol* class_name, MethodMatcher::Mode c_mode,
253 Symbol* method_name, MethodMatcher::Mode m_mode,
254 Symbol* signature) {
255 assert(command != OptionCommand, "must use add_option_string");
256 if (command == LogCommand && !LogCompilation && lists[LogCommand] == NULL)
257 tty->print_cr("Warning: +LogCompilation must be enabled in order for individual methods to be logged.");
258 lists[command] = new MethodMatcher(class_name, c_mode, method_name, m_mode, signature, lists[command]);
259 return lists[command];
|