/[Apache-SVN]
ViewVC logotype

Revision 1074618


Jump to revision: Previous Next
Author: dcreager
Date: Fri Feb 25 16:22:55 2011 UTC (13 years, 1 month ago)
Changed paths: 5
Log Message:
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.


Changed paths

Path Details
Directoryavro/trunk/lang/c/src/avro.h modified , text changed
Directoryavro/trunk/lang/c/src/consumer.c modified , text changed
Directoryavro/trunk/lang/c/src/resolver.c modified , text changed
Directoryavro/trunk/lang/c/src/schema.c modified , text changed
Directoryavro/trunk/lang/c/tests/test_avro_data.c modified , text changed

infrastructure at apache.org
ViewVC Help
Powered by ViewVC 1.1.26