[ https://issues.apache.org/jira/browse/THRIFT-1925?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Simon South reassigned THRIFT-1925: ----------------------------------- Assignee: Simon South > c_glib generated code does not compile > -------------------------------------- > > Key: THRIFT-1925 > URL: https://issues.apache.org/jira/browse/THRIFT-1925 > Project: Thrift > Issue Type: Bug > Components: C glib - Compiler > Affects Versions: 0.8, 0.9 > Environment: Linux wintermute 3.5.0-21-generic #32-Ubuntu SMP Tue Dec > 11 18:51:59 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux > gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) > Reporter: Christoph Rupp > Assignee: Simon South > > I am trying to build the Hypertable thrift bindings for C_glib, but the > generated files fail to compile. > Here is the error message: > {noformat} > /home/chris/ht/hypertable/src/c/ThriftClient/gen-c_glib/client_types.c: In > function ‘result_as_arrays_read’: > /home/chris/ht/hypertable/src/c/ThriftClient/gen-c_glib/client_types.c:2708:19: > warning: passing argument 1 of ‘g_ptr_array_add’ from incompatible pointer > type [enabled by default] > In file included from /usr/include/glib-2.0/glib.h:33:0, > from /usr/include/glib-2.0/gobject/gbinding.h:30, > from /usr/include/glib-2.0/glib-object.h:25, > from > /home/chris/ht/hypertable/src/c/ThriftClient/gen-c_glib/client_types.h:11, > from > /home/chris/ht/hypertable/src/c/ThriftClient/gen-c_glib/client_types.c:8: > /usr/include/glib-2.0/glib/garray.h:139:12: note: expected ‘struct GPtrArray > *’ but argument is of type ‘struct GPtrArray **’ > /home/chris/ht/hypertable/src/c/ThriftClient/gen-c_glib/client_types.c: In > function ‘result_as_arrays_write’: > /home/chris/ht/hypertable/src/c/ThriftClient/gen-c_glib/client_types.c:2854:140: > warning: dereferencing ‘void *’ pointer [enabled by default] > /home/chris/ht/hypertable/src/c/ThriftClient/gen-c_glib/client_types.c:2854:140: > error: request for member ‘len’ in something not a structure or union > /home/chris/ht/hypertable/src/c/ThriftClient/gen-c_glib/client_types.c:2858:78: > warning: dereferencing ‘void *’ pointer [enabled by default] > /home/chris/ht/hypertable/src/c/ThriftClient/gen-c_glib/client_types.c:2858:78: > error: request for member ‘len’ in something not a structure or union > make[2]: *** > [src/c/ThriftClient/CMakeFiles/HyperThriftC.dir/gen-c_glib/client_types.c.o] > Error 1 > make[1]: *** [src/c/ThriftClient/CMakeFiles/HyperThriftC.dir/all] Error 2 > make: *** [all] Error 2 > {noformat} > Here is client_types.c:2858: > {noformat} > for (i=0; i<g_ptr_array_index ((GPtrArray *) this_object->cells, i)->len; i++) > {noformat} > I added another casst to GPtrArray *, and then the code compiles: > {noformat} > for (i=0; i<((GPtrArray *)(g_ptr_array_index ((GPtrArray *) > this_object->cells, i)))->len; i++) > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)