On 06/26/2013 12:22 PM, Tanu Kaskinen wrote:
On Wed, 2013-06-26 at 11:48 +0200, David Henningsson wrote:
On 06/19/2013 05:40 PM, Tanu Kaskinen wrote:
A dynamic array is a nice simple container, but the old interface
wasn't quite what I wanted it to be. I like GLib's way of providing
the free callback at the container creation time, because that way
the free callback doesn't have to be given every time something is
removed from the array.

The allocation pattern was changed too: instead of increasing the
array size always by 25 when the array gets full, the size gets
doubled now.

Not sure if you need this now that the node ownership stuff is changed,

I guess I don't need this now, but I'd still like to have this change in
dynarray. Is it OK for you?

Yes, I'm okay with the rest of the changes. I noticed that dynarray_get semantics changed for getting element outside the array - I'm okay with the change but please go through the callers thoroughly to make sure we don't get assertion failures when we shouldn't.

but anyway, it makes sense to have both (new_size = old_size * 2 + 25),
both as an optimisation in the beginning, and especially so if
n_allocated ever gets down to zero (I don't know if that can happen).

n_allocated never decreases (at the moment anyway - I could implement
that if there is demand).

I see the point of optimizing in the beginning. Currently the array
starts with allocated size of 1, so reallocations will happen when the
size reaches 2, 3, 5, 9, 17, 33... Starting with size 25 would perhaps
be better.


So if we start with n_allocated = 25 and increase with max(n_allocated * 2, 25), does that work for you?


--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to