Re: Walking the DOM (was: XML APIs)

John Cowan (cowan@locke.ccil.org)
Fri, 13 Nov 1998 11:21:03 -0500


Miles Sabin wrote:

> OK, I agree that this check is O(1). However, that's only
> because the granularity of the check is so coarse: a single
> document-level timestamp will cause a lot of unnecessary
> invalidation ...

Agreed. But this isn't so important if there are few active
iterators (= iterators that will ever be resumed), which was my
point.

> I suspect that it would make the performance
> of modifying a document via iterators unacceptably poor.

Here I think the JDK 1.2 java.util.Iterator class is useful: it has
a "remove" method which removes the last element iterated to
in a safe way, or raises an exception if the underlying
container is read-only.

> Moving to per-node timestamps would reduce the amount of
> unnecessary invalidation, and preserve the O(1) check,
> but at the cost of making tree modifications O(log n).

Just so.

-- 
John Cowan	http://www.ccil.org/~cowan		cowan@ccil.org
	You tollerday donsk?  N.  You tolkatiff scowegian?  Nn.
	You spigotty anglease?  Nnn.  You phonio saxo?  Nnnn.
		Clear all so!  'Tis a Jute.... (Finnegans Wake 16.5)