|
@@ -78,7 +78,9 @@ class BytesIterator<T> extends ArrayIterator<T> {
|
|
if (length == 0)
|
|
if (length == 0)
|
|
return null;
|
|
return null;
|
|
length--;
|
|
length--;
|
|
- return bytes[length];
|
|
|
|
|
|
+ var v = bytes[length];
|
|
|
|
+ bytes[length] = cast 0;
|
|
|
|
+ return v;
|
|
}
|
|
}
|
|
|
|
|
|
public function push(x:T):Int {
|
|
public function push(x:T):Int {
|
|
@@ -106,6 +108,7 @@ class BytesIterator<T> extends ArrayIterator<T> {
|
|
var v = bytes[0];
|
|
var v = bytes[0];
|
|
length--;
|
|
length--;
|
|
(bytes : Bytes).blit(0, bytes, 1 << bytes.sizeBits, length << bytes.sizeBits);
|
|
(bytes : Bytes).blit(0, bytes, 1 << bytes.sizeBits, length << bytes.sizeBits);
|
|
|
|
+ bytes[length] = cast 0;
|
|
return v;
|
|
return v;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -171,6 +174,7 @@ class BytesIterator<T> extends ArrayIterator<T> {
|
|
ret.size = ret.length = len;
|
|
ret.size = ret.length = len;
|
|
var end = pos + len;
|
|
var end = pos + len;
|
|
(bytes : Bytes).blit(pos << bytes.sizeBits, bytes, end << bytes.sizeBits, (length - end) << bytes.sizeBits);
|
|
(bytes : Bytes).blit(pos << bytes.sizeBits, bytes, end << bytes.sizeBits, (length - end) << bytes.sizeBits);
|
|
|
|
+ (bytes : Bytes).fill((length - len) << bytes.sizeBits, (len) << bytes.sizeBits, 0);
|
|
length -= len;
|
|
length -= len;
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|