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

Simon South commented on THRIFT-4622:
-------------------------------------

Thanks for reporting this, [~Gowri4950]. The issue was the compiler failing to 
resolve the list's typedef'd element type to its true type before generating 
the declaration for the list in C. Consequently, different parts of the 
generated code disagreed on how the list ought to be accessed.

As noted above, I've submitted a pull request on GitHub with a fix.

> glibC compilation issue
> -----------------------
>
>                 Key: THRIFT-4622
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4622
>             Project: Thrift
>          Issue Type: Bug
>          Components: C glib - Compiler, C glib - Library
>    Affects Versions: 0.11.0
>         Environment: Thrift 0.11.0
> glib 2.0
>            Reporter: Gowrishankar Murali
>            Assignee: Simon South
>            Priority: Minor
>
> {color:#707070}*Generated glibC files results in compiler error.*{color}
> /usr/include/glib-2.0/glib/garray.h:88:9: note: expected ‘GArray * \{aka 
> struct _GArray *}’ but argument is of type ‘GPtrArray * \{aka struct 
> _GPtrArray *}’
>  GArray* g_array_append_vals (GArray *array,
>  ^
>  ../gen-c_glib/c__h_w_handling_h_d__handling_types.c: In function 
> ‘c__h_w_handling_image_info_write’:
>  /usr/include/glib-2.0/glib/garray.h:67:54: error: ‘GPtrArray \{aka struct 
> _GPtrArray}’ has no member named ‘data’
>  #define g_array_index(a,t,i) (((t*) (void *) (a)->data) [(i)])
>  ^
>  ../gen-c_glib/c__h_w_handling_h_d__handling_types.c:198:56: note: in 
> expansion of macro ‘g_array_index’
>  
> {color:#707070}The Generated code resulting in the error:{color}
> if ((ret = thrift_protocol_write_i16 (protocol, (g_array_index 
> (this_object->image, gint16, i1)), error)) < 0)
>  return -1;
> .thrift code generating this
> struct ImageInfo
> { 1: list<int16> image; 2: optional int16 size_h; 3: optional int16 size_v; }
>  
> Here the int16 is typedef from i16. 
> When i replace int16 with i16, the error is solved. 
> Will update when I find the reason



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to