|
@@ -73,7 +73,7 @@
|
|
if( pos < 0 ) pos = 0;
|
|
if( pos < 0 ) pos = 0;
|
|
}
|
|
}
|
|
if( pos > l ) pos = l;
|
|
if( pos > l ) pos = l;
|
|
- this.__double(l+1);
|
|
|
|
|
|
+ this.__grow(l+1);
|
|
var a = this.__a;
|
|
var a = this.__a;
|
|
neko.NativeArray.blit(a,pos+1,a,pos,l-pos);
|
|
neko.NativeArray.blit(a,pos+1,a,pos,l-pos);
|
|
a[pos] = x;
|
|
a[pos] = x;
|
|
@@ -115,14 +115,14 @@
|
|
|
|
|
|
public function push(x:T) : Int {
|
|
public function push(x:T) : Int {
|
|
var l = this.length;
|
|
var l = this.length;
|
|
- this.__double(l + 1);
|
|
|
|
|
|
+ this.__grow(l + 1);
|
|
this.__a[l] = x;
|
|
this.__a[l] = x;
|
|
return l + 1;
|
|
return l + 1;
|
|
}
|
|
}
|
|
|
|
|
|
public function unshift(x : T) : Void {
|
|
public function unshift(x : T) : Void {
|
|
var l = this.length;
|
|
var l = this.length;
|
|
- this.__double(l + 1);
|
|
|
|
|
|
+ this.__grow(l + 1);
|
|
var a = this.__a;
|
|
var a = this.__a;
|
|
neko.NativeArray.blit(a,1,a,0,l);
|
|
neko.NativeArray.blit(a,1,a,0,l);
|
|
a[0] = x;
|
|
a[0] = x;
|
|
@@ -264,7 +264,7 @@
|
|
var dlen = l - neko.NativeArray.length(a);
|
|
var dlen = l - neko.NativeArray.length(a);
|
|
if( dlen > 0 ) {
|
|
if( dlen > 0 ) {
|
|
if( dlen == 1 ) {
|
|
if( dlen == 1 ) {
|
|
- this.__double(l);
|
|
|
|
|
|
+ this.__grow(l);
|
|
a = this.__a;
|
|
a = this.__a;
|
|
} else {
|
|
} else {
|
|
a = neko.NativeArray.alloc(l);
|
|
a = neko.NativeArray.alloc(l);
|
|
@@ -278,14 +278,14 @@
|
|
return v;
|
|
return v;
|
|
}
|
|
}
|
|
|
|
|
|
- private function __double(l:Int) : Void {
|
|
|
|
|
|
+ private function __grow(l:Int) : Void {
|
|
var a = this.__a;
|
|
var a = this.__a;
|
|
var sz = neko.NativeArray.length(a);
|
|
var sz = neko.NativeArray.length(a);
|
|
if( sz >= l ) {
|
|
if( sz >= l ) {
|
|
this.length = l;
|
|
this.length = l;
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- var big = sz * 2;
|
|
|
|
|
|
+ var big = (sz * 3) >> 1;
|
|
if( big < l ) big = l;
|
|
if( big < l ) big = l;
|
|
var a2 = neko.NativeArray.alloc(big);
|
|
var a2 = neko.NativeArray.alloc(big);
|
|
neko.NativeArray.blit(a2,0,a,0,this.length);
|
|
neko.NativeArray.blit(a2,0,a,0,this.length);
|