harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexey Petrenko <alexey.a.petre...@gmail.com>
Subject Re: [classlib][imageio]PositionStack
Date Fri, 06 Aug 2010 08:38:39 GMT
I see at least two reasons: this class is not synchronized and it
works with primitive types instead of objects.
So it can be a bit faster on certain circumstances...

Thanks.

Alexey

2010/8/6 Lang Yang <yanglang@gmail.com>:
> Hello guys,
>
> I was reviewing ImageIO, and found this class:
>
> javax.imageio.stream.ImageInputStreamImpl:
>
> private static class PositionStack {
> private static final int SIZE = 10;
>
> private long[] values = new long[SIZE];
> private int pos = 0;
>
> void push(long v) {
> if (pos >= values.length) {
> ensure(pos + 1);
> }
> values[pos++] = v;
> }
>
> long pop() {
> return values[--pos];
> }
>
> boolean isEmpty() {
> return pos == 0;
> }
>
> private void ensure(int size) {
> long[] arr = new long[Math.max(2 * values.length, size)];
> System.arraycopy(values, 0, arr, 0, values.length);
> values = arr;
> }
> }
>
> Essentially, it's just a stack, but why do we create this class rather than
> just use the standard Stack<Long> class?
>
> Regards,
>
> Lang
>

Mime
View raw message