indent(out) <<
"case " << (*f_iter)->get_key() << ":" << endl;
indent_up();
+ indent(out) <<
+ "if (ftype == " << type_to_enum((*f_iter)->get_type()) << ") {" << endl;
+ indent_up();
+
if (pointers && !(*f_iter)->get_type()->is_xception()) {
generate_deserialize_field(out, *f_iter, "(*(this->", "))");
} else {
generate_deserialize_field(out, *f_iter, "this->");
}
out <<
- indent() << "this->__isset." << (*f_iter)->get_name() << " = true;" << endl <<
+ indent() << "this->__isset." << (*f_iter)->get_name() << " = true;" << endl;
+ indent_down();
+ out <<
+ indent() << "} else {" << endl <<
+ indent() << " xfer += iprot->skip(ftype);" << endl <<
+ indent() << "}" << endl <<
indent() << "break;" << endl;
indent_down();
}
indent(out) <<
"case " << (*f_iter)->get_key() << ":" << endl;
indent_up();
+ indent(out) <<
+ "if (field.type == " << type_to_enum((*f_iter)->get_type()) << ") {" << endl;
+ indent_up();
+
generate_deserialize_field(out, *f_iter, "this.");
out <<
indent() << "this.__isset." << (*f_iter)->get_name() << " = true;" << endl;
- indent(out) <<
- "break;" << endl;
+ indent_down();
+ out <<
+ indent() << "} else { " << endl <<
+ indent() << " TProtocolUtil.skip(iprot, field.type);" << endl <<
+ indent() << "}" << endl <<
+ indent() << "break;" << endl;
indent_down();
}
indent(out) <<
"case " << (*f_iter)->get_key() << ":" << endl;
indent_up();
+ indent(out) << "if ($ftype == " << type_to_enum((*f_iter)->get_type()) << ") {" << endl;
+ indent_up();
generate_deserialize_field(out, *f_iter, "this->");
- indent(out) <<
- "break;" << endl;
+ indent_down();
+ out <<
+ indent() << "} else {" << endl;
+ if (binary_inline_) {
+ indent(out) << " $xfer += TProtocol::skipBinary($input, $ftype);" << endl;
+ } else {
+ indent(out) << " $xfer += $input->skip($ftype);" << endl;
+ }
+ out <<
+ indent() << "}" << endl <<
+ indent() << "break;" << endl;
indent_down();
}
}
out << "fid == " << (*f_iter)->get_key() << ":" << endl;
indent_up();
+ indent(out) << "if ftype == " << type_to_enum((*f_iter)->get_type()) << ":" << endl;
+ indent_up();
generate_deserialize_field(out, *f_iter, "self.");
indent_down();
+ out <<
+ indent() << "else:" << endl <<
+ indent() << " iprot.skip(ftype)" << endl;
+ indent_down();
}
// In the default case we skip the field
}
out << "(fid == " << (*f_iter)->get_key() << ")" << endl;
indent_up();
+ indent(out) << "if (ftype === " << type_to_enum((*f_iter)->get_type()) << ")" << endl;
+ indent_up();
generate_deserialize_field(out, *f_iter, "@");
indent_down();
+ out <<
+ indent() << "else" << endl <<
+ indent() << " iprot.skip(ftype)" << endl <<
+ indent() << "end" << endl;
}
// In the default case we skip the field