inode_lookup method
dynamic
inode_lookup(
- dynamic k$1,
- dynamic not_found$1
Implementation
dc.dynamic inode_lookup(dc.dynamic k$1, dc.dynamic not_found$1, ){
final dc.dynamic o7832$1=k$1;
late final dc.int h$1;
if((o7832$1 is lcoc_core.IHash$iface)){
h$1=(((o7832$1 as lcoc_core.IHash$iface).$_hash$0()) as dc.int);
}else{
h$1=(((lcoc_core.IHash.extensions(o7832$1, ) as lcoc_core.IHash$ext).$_hash$0(o7832$1, )) as dc.int);
}
lcoc_core.BitmapNode node$1=this;
dc.int shift$1=0;
do {
if((shift$1<32)){
final dc.int bitmap_hi$1=node$1.bitmap_hi;
final dc.int bitmap_lo$1=node$1.bitmap_lo;
final dc.int n$1=((h$1>>(31&shift$1))&31);
final dc.int bit$1=(4294967295&(1<<(31&n$1)));
final dc.int mask$1=(bit$1-1);
final dc.int idx$1=lcoc_core.u32x2_bit_count((mask$1&bitmap_hi$1), (mask$1&bitmap_lo$1), );
final dc.int hi$1=(bitmap_hi$1&bit$1);
final dc.int lo$1=(bitmap_lo$1&bit$1);
if((0==(hi$1|lo$1))){
return not_found$1;
}
if((0==(hi$1&lo$1))){
node$1=(node$1.arr[idx$1]);
shift$1=(5+shift$1);
continue;
}
final dc.List arr$1=node$1.arr;
final dc.dynamic k$PRIME_$1=(arr$1[idx$1]);
if((lcoc_core.$EQ_.$_invoke$2(k$PRIME_$1, k$1, ))){
return (arr$1[(1+idx$1)]);
}
return not_found$1;
}
final dc.int n$2=(2*cnt);
final dc.List arr$2=node$1.arr;
dc.int i$1=0;
do {
if((i$1==n$2)){
return not_found$1;
}
if((lcoc_core.$EQ_.$_invoke$2((arr$2[i$1]), k$1, ))){
return (arr$2[(1+i$1)]);
}
i$1=(2+i$1);
continue;
} while(true);
break;
} while(true);
}