avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matt Massie (JIRA)" <j...@apache.org>
Subject [jira] Created: (AVRO-367) Complete memory management for the C implementation
Date Fri, 22 Jan 2010 18:18:21 GMT
Complete memory management for the C implementation
---------------------------------------------------

                 Key: AVRO-367
                 URL: https://issues.apache.org/jira/browse/AVRO-367
             Project: Avro
          Issue Type: Improvement
          Components: c
            Reporter: Matt Massie
             Fix For: 1.3.0


This patch completes memory management for the C implementation.

* All schema and datum objects are now freed when dereferenced
* Four new methods have been added {{avro_wrapstring}}, {{avro_wrapbytes}}, {{avro_givestring}},
and {{avro_givebytes}}.  These new methods allow C developers to explicitly state if they
want {{libavro}} to copy bytes/string (the default), "wrap" them with no memory management
or "give" them to {{libavro}} to manage.  This allows for less buffer copying when decoding
data.
* Issues with type punning have been resolved to prevent compiler warnings
* The {{map}} and {{record}} data structures now implement management correctly.
* A new valgrind test is added and runs during {{make check}} if valgrind is found on the
build system.

A future optimization will be to have a stack of allocated objects for each obj type instead
of always using malloc() and free().  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message