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.