ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Bodewig <>
Subject Re: Bug 50200, VectorSet kills the performance of DirectoryScanner
Date Mon, 13 Dec 2010 09:15:43 GMT
On 2010-12-13, Antoine Levy-Lambert wrote:

> Hi,

> I got a private email asking me to apply the patch suggested by
> *Bug 50200* <> - [1]
>       VectorSet kills the performance of DirectoryScanner

> The code looks good and I am wondering why we have the current implementation.

> Stefan ?

I remember I looked at the patch a few weeks ago but ran out of time
back then.

The reason I didn't commit it right away is that at first glance it
seems to make assumptions about the base class's implementation that may
or may not be true.  At first first I thought that if Vector#add(Object)
delegates to Vector#add(int,Object) the suggested implementation would
lead to an infinite loop.  Now I see this is not true because the set
will contain the object on the second invocation of doAdd - but this
also means if the base class's add does indeed delegate the way I
described then the object is not going to be added to the Vector at all.

So all in all I still feel the patch relies on undocumented details of
Vector's implementation and am not I sure when I'll find time to verify
or falsify that feeling.  It may be easier to avoid the arraycopy for
the index==size() case without invoking any base methods anyway.

I'll comment on the bug report directly so you don't have to relay
between the bug reporter and this list.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message