Uploaded image for project: 'Apache Avro'
  1. Apache Avro
  2. AVRO-367

Complete memory management for the C implementation

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.3.0
    • c
    • None

    Description

      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().

      Attachments

        1. AVRO-367.patch
          21 kB
          Matt Massie

        Activity

          People

            massie Matt Massie
            massie Matt Massie
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: