From 581481f232be3f70945f2333c9a53ae5ea5346f8 Mon Sep 17 00:00:00 2001 From: Jake Farrell Date: Fri, 7 Oct 2011 00:25:46 +0000 Subject: [PATCH] Thrift-1379: fix uninitialized enum values in thrift C++ objects Client: cpp Patch: Dave Watson The thrift-generated code for C++ class objects does not provide any initialization for enum values, so they wind up containing random/uninitialized data. This causes problems when clients do not send argument data, as the server receives random data rather than zero for unpassed args. Enums should be initialized to zero. git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1179909 13f79535-47bb-0310-9956-ffa450edef68 --- compiler/cpp/src/generate/t_cpp_generator.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/cpp/src/generate/t_cpp_generator.cc b/compiler/cpp/src/generate/t_cpp_generator.cc index e75573e0..5291875d 100755 --- a/compiler/cpp/src/generate/t_cpp_generator.cc +++ b/compiler/cpp/src/generate/t_cpp_generator.cc @@ -847,7 +847,7 @@ void t_cpp_generator::generate_struct_definition(ofstream& out, for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) { t_type* t = get_true_type((*m_iter)->get_type()); - if (t->is_base_type()) { + if (t->is_base_type() || t->is_enum()) { string dval; if (t->is_enum()) { dval += "(" + type_name(t) + ")"; -- 2.17.1