Commits

Douglas Adam Creager authored 3e897246bf0
AVRO-762. C: Recursive schema resolution The avro_resolver_new function now works correctly with recursive schemas. We had to memoize the results of avro_resolver_new, so that we can detect when we've already created an avro_resolver_t instance for a pair of schemas. This prevents us from going into an infinite loop trying to resolve a recursive schema. This memoization means that there might be multiple references to a resolver within the graph of resolvers for a recursive schema type. When freeing this graph of resolvers, we now have to take care to only free each instance once. We do this by maintaining a set of the resolvers that we've already encountered during the free operation, and immediately returning if we try to start freeing a resolver object a second time. git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1074618 13f79535-47bb-0310-9956-ffa450edef68