3 Aug 2002 (updated 3 Aug 2002 at 20:30 UTC)
»
I've mostly been working on the redland iterator
changes needed for contexts that edd wanted. The
current state is 'make check' works fine, except for memory
leak, which I'm still hunting. I tried valgrind, but it
gave false info which took yet more time to work that out.
After I get this fixed this, I'll have to consider changing
streams to match this new model, however I'm a little worried since
it may cause too much user-level change. Iterators are pretty
internal and hardly leak out for non-C.
The changes for streams, like iterators are as follows: The two
methods on stream are presently: is_end and
get_next. is_end will remain the same, but
get_next splits into get and next. It may
be possible to hide this outside C. The general change is from:
while !stream.is_end { s=stream.get_next;blah blah }
to:
while !stream.is_end { s=stream.get; blah blah; stream.next() }
where the 's' is a shared pointer in C but could be a copy
outside. After stream.next() the pointer moves and isn't
valid.
(actually this makes things more efficent, there is less copying
inside redland and things should work faster)