THRIFT-3750 Check isSet in copyWithZone
Client: Cocoa
Patch: Zach Howe <zach@zachhowe.com>
This closes #958
diff --git a/compiler/cpp/src/generate/t_cocoa_generator.cc b/compiler/cpp/src/generate/t_cocoa_generator.cc
index 4258965..794fb44 100644
--- a/compiler/cpp/src/generate/t_cocoa_generator.cc
+++ b/compiler/cpp/src/generate/t_cocoa_generator.cc
@@ -795,12 +795,15 @@
for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
t_type* t = get_true_type((*m_iter)->get_type());
+ out << indent() << "if (_" << (*m_iter)->get_name() << "IsSet)" << endl;
+ scope_up(out);
if (type_can_be_null(t)) {
out << indent() << "val." << (*m_iter)->get_name() << " = [self." << (*m_iter)->get_name() << " copy];";
} else {
out << indent() << "val." << (*m_iter)->get_name() << " = self." << (*m_iter)->get_name() << ";";
}
out << endl;
+ scope_down(out);
}
out << indent() << "return val;" << endl;