You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Vladimir Strisovsky (JIRA)" <ji...@apache.org> on 2013/07/30 09:15:54 UTC
[jira] [Created] (THRIFT-2105) Generated code for default values of
collections ignores t_field::T_REQUIRED
Vladimir Strisovsky created THRIFT-2105:
-------------------------------------------
Summary: Generated code for default values of collections ignores t_field::T_REQUIRED
Key: THRIFT-2105
URL: https://issues.apache.org/jira/browse/THRIFT-2105
Project: Thrift
Issue Type: Bug
Components: C++ - Compiler
Reporter: Vladimir Strisovsky
I have very simple thrift structure:
struct FloatProcessValue
{
1: required ID id,
2: required Value value
}
FloatProcessValue contains only required fileds, so no __isset structure is generated. But when this structure is used in collection with some default values:
4: required map<i32, basic_types.FloatProcessValue> mapi32ToFloat = { 1:{'id':0, 'value':0.4}},
compilation fails because constructor tries to set __isset.value and __isset.id
::simpletest::FloatProcessValue tmp0;
::simpletest::ID tmp1;
tmp1 = 0;
tmp0.id = tmp1;
tmp0.__isset.id = true; // error: ‘class simpletest::FloatProcessValue’ has no member named ‘__isset’
::simpletest::Value tmp2;
tmp2 = 0.4;
tmp0.value = tmp2;
tmp0.__isset.value = true; error: ‘class simpletest::FloatProcessValue’ has no member named ‘__isset’
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira