inode_without method

dynamic inode_without(
  1. int shift$2,
  2. int h$2,
  3. dynamic k$2
)

Implementation

dc.dynamic inode_without(dc.int shift$2, dc.int h$2, dc.dynamic k$2, ){
if((shift$2<32)){
final dc.int n$3=((h$2>>(31&shift$2))&31);
final dc.int bit$2=(4294967295&(1<<(31&n$3)));
final dc.int mask$2=(bit$2-1);
final dc.int idx$2=lcoc_core.u32x2_bit_count((mask$2&bitmap_hi), (mask$2&bitmap_lo), );
final dc.int hi$2=(bitmap_hi&bit$2);
final dc.int lo$2=(bitmap_lo&bit$2);
if((0==(hi$2|lo$2))){
return this;
}
if((0==(hi$2&lo$2))){
final lcoc_core.BitmapNode child$1=((arr[idx$2]) as lcoc_core.BitmapNode);
final lcoc_core.BitmapNode new_child$1=((child$1.inode_without((shift$2+5), h$2, k$2, )) as lcoc_core.BitmapNode);
if(dc.identical((child$1 as dc.Object?), (new_child$1 as dc.Object?), )){
return this;
}
final dc.bool and$7465_$AUTO_$1=(1==new_child$1.cnt);
late final dc.bool $if_$1;
if(and$7465_$AUTO_$1){
$if_$1=(0==(new_child$1.bitmap_hi^new_child$1.bitmap_lo));
}else{
$if_$1=and$7465_$AUTO_$1;
}
if($if_$1){
final dc.dynamic k$3=(new_child$1.arr[0]);
final dc.dynamic v$1=(new_child$1.arr[1]);
final dc.int size$1=(1+lcoc_core.u32x2_bit_count(bitmap_hi, bitmap_lo, ));
final dc.List<dc.dynamic> new_arr$1=(dc.List<dc.dynamic>.filled(size$1, v$1, ));
final dc.int n$8241_$AUTO_$1=idx$2;
dc.int i$2=0;
do {
if((i$2<n$8241_$AUTO_$1)){
final dc.dynamic v$8083_$AUTO_$1=(arr[i$2]);
new_arr$1[i$2]=v$8083_$AUTO_$1;
i$2=(1+i$2);
continue;
}
break;
} while(true);
final dc.dynamic v$8083_$AUTO_$2=k$3;
new_arr$1[idx$2]=v$8083_$AUTO_$2;
dc.int j$1=(1+idx$2);
dc.int i$3=(1+j$1);
do {
if((i$3<size$1)){
final dc.dynamic v$8083_$AUTO_$3=(arr[j$1]);
new_arr$1[i$3]=v$8083_$AUTO_$3;
j$1=(1+j$1);
i$3=(1+i$3);
continue;
}
break;
} while(true);
return lcoc_core.BitmapNode((cnt-1), (bitmap_hi|bit$2), (bitmap_lo|bit$2), new_arr$1, );
}
final dc.int arg$1=(cnt-1);
final dc.List<dc.dynamic> G$8913_$1=(dc.List.from(this.arr, growable: false, ));
final lcoc_core.BitmapNode v$8083_$AUTO_$4=new_child$1;
G$8913_$1[idx$2]=v$8083_$AUTO_$4;
return lcoc_core.BitmapNode(arg$1, bitmap_hi, bitmap_lo, G$8913_$1, );
}
late final dc.bool $if_$2;
if((lcoc_core.$EQ_.$_invoke$2(k$2, (arr[idx$2]), ))){
$if_$2=false;
}else{
$if_$2=true;
}
if($if_$2){
return this;
}
final dc.int size$2=(lcoc_core.u32x2_bit_count(bitmap_hi, bitmap_lo, )-2);
final dc.List<dc.dynamic> new_arr$2=(dc.List<dc.dynamic>.filled(size$2, null, ));
final dc.int n$8241_$AUTO_$2=idx$2;
dc.int i$4=0;
do {
if((i$4<n$8241_$AUTO_$2)){
final dc.dynamic v$8083_$AUTO_$5=(arr[i$4]);
new_arr$2[i$4]=v$8083_$AUTO_$5;
i$4=(1+i$4);
continue;
}
break;
} while(true);
dc.int i$5=idx$2;
dc.int j$2=(2+idx$2);
do {
if((i$5<size$2)){
final dc.dynamic v$8083_$AUTO_$6=(arr[j$2]);
new_arr$2[i$5]=v$8083_$AUTO_$6;
i$5=(1+i$5);
j$2=(1+j$2);
continue;
}
break;
} while(true);
return lcoc_core.BitmapNode((cnt-1), (bitmap_hi^bit$2), (bitmap_lo^bit$2), new_arr$2, );
}
final dc.int n$4=(2*cnt);
dc.int i$6=0;
do {
if((i$6==n$4)){
return this;
}
if((lcoc_core.$EQ_.$_invoke$2((arr[i$6]), k$2, ))){
final dc.int n_2$1=(n$4-2);
final dc.List new_arr$3=lcoc_core.ashrink(arr, n_2$1, );
if((i$6==n_2$1)){
}else{
final dc.dynamic v$8083_$AUTO_$7=(arr[n_2$1]);
new_arr$3[i$6]=v$8083_$AUTO_$7;
final dc.dynamic v$8083_$AUTO_$8=(arr[(1+n_2$1)]);
new_arr$3[(1+i$6)]=v$8083_$AUTO_$8;
}
return lcoc_core.BitmapNode((cnt-1), 0, 0, new_arr$3, );
}
i$6=(2+i$6);
continue;
} while(true);
}