3 Aug 2002 dajobe   » (Master)

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)

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!