[
https://issues.apache.org/jira/browse/THRIFT-3868?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jens Geyer resolved THRIFT-3868.
--------------------------------
Resolution: Fixed
Assignee: Dustin Pho
Fix Version/s: 0.10.0
Committed.
> Java struct equals should do identity check before field comparison
> -------------------------------------------------------------------
>
> Key: THRIFT-3868
> URL: https://issues.apache.org/jira/browse/THRIFT-3868
> Project: Thrift
> Issue Type: Improvement
> Components: Java - Compiler
> Affects Versions: 0.9.3, 0.10.0
> Reporter: Mike Rettig
> Assignee: Dustin Pho
> Priority: Minor
> Fix For: 0.10.0
>
>
> The identity check is cheap and should be done before comparing fields of a
> struct. Idiomatic equals methods always include this check especially if the
> field by field comparison can be expensive.
> Check to add:
> if(that == this) return true;
> 1864 out << indent() << "public boolean equals(" << tstruct->get_name() <<
> " that) {" << endl;
> 1865 indent_up();
> 1866 out << indent() << "if (that == null)" << endl << indent() << "
> return false;" << endl;
> INSERT IDENTITY CHECK HERE
> 1867
> 1868 const vector<t_field*>& members = tstruct->get_members();
> 1869 vector<t_field*>::const_iterator m_iter;
> 1870 for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
> 1871 out << endl;
> 1872
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)