File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -61,7 +61,7 @@ JvmObjectEvaluator::~JvmObjectEvaluator() {
6161}
6262
6363
64- void JvmObjectEvaluator::Initialize () {
64+ void JvmObjectEvaluator::Initialize (const Options& options ) {
6565 generic_.reset (new GenericTypeEvaluator);
6666
6767 array_[static_cast <int >(JType::Boolean)].reset (
@@ -83,10 +83,18 @@ void JvmObjectEvaluator::Initialize() {
8383 array_[static_cast <int >(JType::Object)].reset (
8484 new ArrayTypeEvaluator<jobject>);
8585
86- iterable_.reset (new IterableTypeEvaluator);
87- map_entry_.reset (new MapEntryTypeEvaluator);
88- map_.reset (new MapTypeEvaluator);
89- stringable_.reset (new StringableTypeEvaluator);
86+ if (options.pretty_print_iterable ) {
87+ iterable_.reset (new IterableTypeEvaluator);
88+ }
89+ if (options.pretty_print_map_entry ) {
90+ map_entry_.reset (new MapEntryTypeEvaluator);
91+ }
92+ if (options.pretty_print_map ) {
93+ map_.reset (new MapTypeEvaluator);
94+ }
95+ if (options.pretty_print_stringable ) {
96+ stringable_.reset (new StringableTypeEvaluator);
97+ }
9098}
9199
92100
Original file line number Diff line number Diff line change @@ -34,12 +34,33 @@ namespace cdbg {
3434
3535class JvmObjectEvaluator : public ObjectEvaluator {
3636 public:
37+ struct Options {
38+ // Determines whether classes that implement the Iterable interface should
39+ // be pretty printed.
40+ bool pretty_print_iterable = true ;
41+
42+ // Determines whether classes that implement the Map interface should be
43+ // pretty printed.
44+ bool pretty_print_map = true ;
45+
46+ // Determines whether classes that implement the Map.Entry interface should
47+ // be pretty printed.
48+ bool pretty_print_map_entry = true ;
49+
50+ // Determines whether supported classes should be pretty printed using
51+ // "toString()". StringableTypeEvaluator::IsSupported() is used to determine
52+ // if a class is supported for pretty printing using "toString()".
53+ bool pretty_print_stringable = true ;
54+ };
55+
3756 JvmObjectEvaluator (
3857 ClassMetadataReader* class_metadata_reader);
3958
4059 ~JvmObjectEvaluator () override ;
4160
42- void Initialize ();
61+ void Initialize () { Initialize (Options ()); }
62+
63+ void Initialize (const Options& options);
4364
4465 void Evaluate (
4566 MethodCaller* method_caller,
@@ -73,4 +94,3 @@ class JvmObjectEvaluator : public ObjectEvaluator {
7394} // namespace devtools
7495
7596#endif // DEVTOOLS_CDBG_DEBUGLETS_JAVA_JVM_OBJECT_EVALUATOR_H_
76-
You can’t perform that action at this time.
0 commit comments