From 4ce2874fd50acaff7fa5b0f571098f50623752cc Mon Sep 17 00:00:00 2001 From: David Reiss Date: Wed, 27 Feb 2008 07:45:05 +0000 Subject: [PATCH] Make limited reflection optional (off by default). Limited reflection is deprecated, and it is slowing down compilation. This change will disable generation of static reflection by default, but it adds a command line argument to re-enable it. Tested by running make check and building the C++ test client and server. git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665520 13f79535-47bb-0310-9956-ffa450edef68 --- compiler/cpp/src/generate/t_cpp_generator.cc | 12 +++++++++++- test/Makefile.am | 6 +++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/compiler/cpp/src/generate/t_cpp_generator.cc b/compiler/cpp/src/generate/t_cpp_generator.cc index 27753ac1..93ad7eed 100644 --- a/compiler/cpp/src/generate/t_cpp_generator.cc +++ b/compiler/cpp/src/generate/t_cpp_generator.cc @@ -41,6 +41,9 @@ class t_cpp_generator : public t_oop_generator { iter = parsed_options.find("include_prefix"); use_include_prefix_ = (iter != parsed_options.end()); + iter = parsed_options.find("reflection_limited"); + gen_reflection_limited_ = (iter != parsed_options.end()); + out_dir_base_ = "gen-cpp"; } @@ -192,6 +195,11 @@ class t_cpp_generator : public t_oop_generator { */ std::string get_include_prefix(const t_program& program) const; + /** + * True iff we should generate limited reflectors for services. + */ + bool gen_reflection_limited_; + /** * True iff we should generate local reflection metadata for TDenseProtocol. */ @@ -1316,7 +1324,9 @@ void t_cpp_generator::generate_service_helpers(t_service* tservice) { generate_function_helpers(tservice, *f_iter); } - generate_service_limited_reflector(tservice); + if (gen_reflection_limited_) { + generate_service_limited_reflector(tservice); + } } /** diff --git a/test/Makefile.am b/test/Makefile.am index 118d8694..c6907909 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -66,13 +66,13 @@ ReflectionTest_LDADD = \ THRIFT = $(top_srcdir)/compiler/cpp/thrift gen-cpp/DebugProtoTest_types.cpp gen-cpp/PartiallyReflectable.cpp: DebugProtoTest.thrift - $(THRIFT) --gen cpp $< + $(THRIFT) --gen cpp:dense,reflection_limited $< gen-cpp/OptionalRequiredTest_types.cpp: OptionalRequiredTest.thrift - $(THRIFT) --gen cpp $< + $(THRIFT) --gen cpp:dense $< gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp: StressTest.thrift - $(THRIFT) --gen cpp $< + $(THRIFT) --gen cpp:dense,reflection_limited $< INCLUDES = \ -- 2.17.1