thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (THRIFT-4399) plugin.thrift t_const_value is not used as a union in C++ code -- fix this
Date Sat, 02 Dec 2017 01:43:00 GMT

    [ https://issues.apache.org/jira/browse/THRIFT-4399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16275353#comment-16275353
] 

ASF GitHub Bot commented on THRIFT-4399:
----------------------------------------

GitHub user chetmurthy opened a pull request:

    https://github.com/apache/thrift/pull/1434

    THRIFT-4399 fix plugin.thrift & assoc C++ code to respect unions

    plugin.thrift defines t_const_value as a union.  But in plugin_output.cc
    and plugin.cc, the converters clearly either (a) SET NEITHER of
    identifier_val & enum_val, or (b) SET BOTH.  But these are two different
    fields in the union.  So clearly, the type t_const_value isn't being
    treated as a union.
    
    I think we need to fix Thrift's treatment of unions, but independently,
    the plugin should use Thrift's type system in a correct manner.  This is
    easy-to-fix, but since the current plugin relies on a bug, the fix will
    be a breaking change.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/chetmurthy/thrift THRIFT-4399-plugin-t_const_value-union-fix

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/thrift/pull/1434.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1434
    
----
commit 915549d9f6ac5bb14e3ef296bd551b90c06a2896
Author: Chet Murthy <chetsky@gmail.com>
Date:   2017-12-02T01:34:24Z

    THRIFT-4399 fix plugin.thrift & assoc C++ code to respect unions
    
    plugin.thrift defines t_const_value as a union.  But in plugin_output.cc
    and plugin.cc, the converters clearly either (a) SET NEITHER of
    identifier_val & enum_val, or (b) SET BOTH.  But these are two different
    fields in the union.  So clearly, the type t_const_value isn't being
    treated as a union.
    
    I think we need to fix Thrift's treatment of unions, but independently,
    the plugin should use Thrift's type system in a correct manner.  This is
    easy-to-fix, but since the current plugin relies on a bug, the fix will
    be a breaking change.

----


> plugin.thrift t_const_value is not used as a union in C++ code -- fix this
> --------------------------------------------------------------------------
>
>                 Key: THRIFT-4399
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4399
>             Project: Thrift
>          Issue Type: Bug
>          Components: Compiler (General)
>    Affects Versions: 0.10.0
>         Environment: Ubuntu 16.04 amd64
>            Reporter: Chet Murthy
>            Priority: Minor
>
> plugin.thrift defines t_const_value as a union.  But in plugin_output.cc and plugin.cc,
the converters clearly either (a) SET NEITHER of identifier_val & enum_val, or (b) SET
BOTH.  But these are two different fields in the union.  So clearly, the type t_const_value
isn't being treated as a union.
> I think we need to fix Thrift's treatment of unions, but independently, the plugin should
use Thrift's type system in a correct manner.  This is easy-to-fix, but since the current
plugin relies on a bug, the fix will be a breaking change.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message