37 class ClassPrinter::KlassPrintClosure : public LockedClassesDo {
38 const char* _class_name_pattern;
39 const char* _method_name_pattern;
40 const char* _method_signature_pattern;
41 bool _always_print_class_name;
42 int _flags;
43 outputStream* _st;
44 int _num;
45 bool _has_printed_methods;
46 GrowableArray<InstanceKlass*> _klasses;
47
48 public:
49 KlassPrintClosure(const char* class_name_pattern,
50 const char* method_name_pattern,
51 const char* method_signature_pattern,
52 bool always_print_class_name,
53 int flags, outputStream* st)
54 : _always_print_class_name(always_print_class_name),
55 _flags(flags), _st(st), _num(0), _has_printed_methods(false)
56 {
57 if (has_mode(_flags, PRINT_METHOD_HANDLE)) {
58 _flags |= (PRINT_METHOD_NAME | PRINT_BYTECODE);
59 }
60 if (has_mode(_flags, PRINT_DYNAMIC)) {
61 _flags |= (PRINT_METHOD_NAME | PRINT_BYTECODE);
62 }
63 if (has_mode(_flags, PRINT_BYTECODE_ADDR)) {
64 _flags |= (PRINT_METHOD_NAME | PRINT_BYTECODE);
65 }
66 if (has_mode(_flags, PRINT_BYTECODE)) {
67 _flags |= (PRINT_METHOD_NAME);
68 }
69
70 if (has_mode(_flags, PRINT_CLASS_DETAILS)) {
71 _always_print_class_name = true;
72 }
73
74 _class_name_pattern = copy_pattern(class_name_pattern);
75 _method_name_pattern = copy_pattern(method_name_pattern);
76 _method_signature_pattern = copy_pattern(method_signature_pattern);
|
37 class ClassPrinter::KlassPrintClosure : public LockedClassesDo {
38 const char* _class_name_pattern;
39 const char* _method_name_pattern;
40 const char* _method_signature_pattern;
41 bool _always_print_class_name;
42 int _flags;
43 outputStream* _st;
44 int _num;
45 bool _has_printed_methods;
46 GrowableArray<InstanceKlass*> _klasses;
47
48 public:
49 KlassPrintClosure(const char* class_name_pattern,
50 const char* method_name_pattern,
51 const char* method_signature_pattern,
52 bool always_print_class_name,
53 int flags, outputStream* st)
54 : _always_print_class_name(always_print_class_name),
55 _flags(flags), _st(st), _num(0), _has_printed_methods(false)
56 {
57 _flags |= (PRINT_PROFILE);
58 if (has_mode(_flags, PRINT_METHOD_HANDLE)) {
59 _flags |= (PRINT_METHOD_NAME | PRINT_BYTECODE);
60 }
61 if (has_mode(_flags, PRINT_DYNAMIC)) {
62 _flags |= (PRINT_METHOD_NAME | PRINT_BYTECODE);
63 }
64 if (has_mode(_flags, PRINT_BYTECODE_ADDR)) {
65 _flags |= (PRINT_METHOD_NAME | PRINT_BYTECODE);
66 }
67 if (has_mode(_flags, PRINT_BYTECODE)) {
68 _flags |= (PRINT_METHOD_NAME);
69 }
70
71 if (has_mode(_flags, PRINT_CLASS_DETAILS)) {
72 _always_print_class_name = true;
73 }
74
75 _class_name_pattern = copy_pattern(class_name_pattern);
76 _method_name_pattern = copy_pattern(method_name_pattern);
77 _method_signature_pattern = copy_pattern(method_signature_pattern);
|