You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Simon South (JIRA)" <ji...@apache.org> on 2014/08/31 05:44:52 UTC

[jira] [Updated] (THRIFT-2684) c_glib: Improvements to map deserialization in generated code

     [ https://issues.apache.org/jira/browse/THRIFT-2684?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Simon South updated THRIFT-2684:
--------------------------------

    Attachment: thrift-2684-c_glib-improve-map-deserialization.patch

> c_glib: Improvements to map deserialization in generated code
> -------------------------------------------------------------
>
>                 Key: THRIFT-2684
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2684
>             Project: Thrift
>          Issue Type: Improvement
>          Components: C glib - Compiler
>    Affects Versions: 0.9.1
>         Environment: Fedora 20 64-bit on x86_64
>            Reporter: Simon South
>            Priority: Minor
>              Labels: c_glib, compiler, memory-leak
>         Attachments: thrift-2684-c_glib-improve-map-deserialization.patch
>
>
> The attached patch to the compiler improves memory management in generated code relating to the deserialization of maps (implemented using hash tables in c_glib). It makes three changes:
> 1. Newly created hash tables are constructed with references to the correct hashing, comparison and deallocation functions, as determined by the types they hold.
> 2. Base types allocated on the heap will be automatically deallocated with the {{g_free}} function (instead of not being deallocated at all!).
> 3. The direct-comparison function is now explicitly specified for enumerated types, which are (somewhat dubiously) always stored _within_ a pointer value instead of on the heap.
> (No test case for these changes either, mostly as I'm unsure how I'd write one. Again the integration test serves as a pretty rigorous test of this code, though it completes with or without this patch applied.)



--
This message was sent by Atlassian JIRA
(v6.2#6252)