csources_v2/c_code/2_4/@mbtrees.nim.c
2022-12-16 10:54:01 +08:00

894 lines
26 KiB
C

/* Generated by Nim Compiler v1.9.0 */
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q;
typedef struct tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A;
typedef struct tyObject_BTree__BxbTQohN8QrxN73DA9bcM9aQ tyObject_BTree__BxbTQohN8QrxN73DA9bcM9aQ;
typedef struct tyTuple__fEYsTpTmLyu9a9a9aiqr9aMdLQ tyTuple__fEYsTpTmLyu9a9a9aiqr9aMdLQ;
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NimStringV2 tyArray__9aijZrM1syqzleJpcL8bUyw[512];
typedef tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* tyArray__E9bSD5rkt5i3dcYty9cq9bNxg[512];
typedef tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* tyArray__O9bOLS2kvNtrvY9bYkzy1irQ[512];
struct tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA {
NI entries;
tyArray__9aijZrM1syqzleJpcL8bUyw keys;
NIM_BOOL isInternal;
union{
struct {tyArray__E9bSD5rkt5i3dcYty9cq9bNxg vals;
} _isInternal_1;
struct {tyArray__O9bOLS2kvNtrvY9bYkzy1irQ links;
} _isInternal_2;
};
};
struct tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A {
NI rc;
NI rootIdx;
};
struct tyObject_BTree__BxbTQohN8QrxN73DA9bcM9aQ {
tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* root;
NI entries;
};
struct tyTuple__fEYsTpTmLyu9a9a9aiqr9aMdLQ {
NimStringV2 Field0;
tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* Field1;
NI Field2;
};
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZassertions_13)(NimStringV2* dest);
static N_INLINE(NIM_BOOL, nimDecRefIsLast)(void* p);
static N_INLINE(NI, minuspercent___system_790)(NI x, NI y);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_3466)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* dest);
N_LIB_PRIVATE N_NIMCALL(void, nimRawDispose)(void* p, NI alignment);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___modulegraphs_10228)(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* dest);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(void*, nimNewObj)(NI size, NI alignment);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___vm_8436)(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA** dest, tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* src);
static N_INLINE(void, nimIncRef)(void* p);
N_LIB_PRIVATE N_NIMCALL(NI, cmp__system_1543)(NimStringV2 x, NimStringV2 y);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___vm_8433)(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA** dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA*, insert__vm_10113)(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* h, NimStringV2 key, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* val);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___stdZassertions_16)(NimStringV2* dest, NimStringV2 src);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_3457)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q** dest, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* src);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_3460)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q** dest, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* src);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___vm_8439)(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA** dest, tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* src);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___stdZassertions_19)(NimStringV2* dest, NimStringV2 src);
N_LIB_PRIVATE N_NIMCALL(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA*, split__vm_10941)(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* h);
N_LIB_PRIVATE N_NIMCALL(void, copyHalf__vm_10958)(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* h, tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* result);
N_LIB_PRIVATE N_NIMCALL(NI, countSubTree__vm_12690)(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* it);
extern NIM_BOOL nimInErrorMode__system_3980;
static N_INLINE(NI, minuspercent___system_790)(NI x, NI y) {
NI result;
result = (NI)0;
result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
return result;
}
static N_INLINE(NIM_BOOL, nimDecRefIsLast)(void* p) {
NIM_BOOL result;
result = (NIM_BOOL)0;
{
tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A* cell;
NI T5_;
if (!!((p == NIM_NIL))) goto LA3_;
T5_ = (NI)0;
T5_ = minuspercent___system_790(((NI) (ptrdiff_t) (p)), ((NI)16));
cell = ((tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A*) (T5_));
{
if (!((NI)((*cell).rc & ((NI)-16)) == ((NI)0))) goto LA8_;
result = NIM_TRUE;
}
goto LA6_;
LA8_: ;
{
(*cell).rc -= ((NI)16);
}
LA6_: ;
}
LA3_: ;
return result;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (NIM_BOOL*)0;
result = (&nimInErrorMode__system_3980);
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___modulegraphs_10228)(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* dest) {
NI colontmp_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
colontmp_ = ((NI)0);
{
while (1) {
if (!(colontmp_ < ((NI)512))) goto LA2 ;
eqdestroy___stdZassertions_13((&(*dest).keys[(colontmp_)- 0]));
colontmp_ += ((NI)1);
} LA2: ;
}
switch ((*dest).isInternal) {
case NIM_FALSE:
{
NI colontmp__2;
colontmp__2 = ((NI)0);
{
while (1) {
if (!(colontmp__2 < ((NI)512))) goto LA5 ;
{
NIM_BOOL T8_;
T8_ = (NIM_BOOL)0;
T8_ = nimDecRefIsLast((*dest)._isInternal_1.vals[(colontmp__2)- 0]);
if (!T8_) goto LA9_;
eqdestroy___ast_3466((*dest)._isInternal_1.vals[(colontmp__2)- 0]);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
nimRawDispose((*dest)._isInternal_1.vals[(colontmp__2)- 0], ((NI)8));
}
LA9_: ;
colontmp__2 += ((NI)1);
} LA5: ;
}
}
break;
case NIM_TRUE:
{
NI colontmp__3;
colontmp__3 = ((NI)0);
{
while (1) {
if (!(colontmp__3 < ((NI)512))) goto LA13 ;
{
NIM_BOOL T16_;
T16_ = (NIM_BOOL)0;
T16_ = nimDecRefIsLast((*dest)._isInternal_2.links[(colontmp__3)- 0]);
if (!T16_) goto LA17_;
eqdestroy___modulegraphs_10228((*dest)._isInternal_2.links[(colontmp__3)- 0]);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
nimRawDispose((*dest)._isInternal_2.links[(colontmp__3)- 0], ((NI)8));
}
LA17_: ;
colontmp__3 += ((NI)1);
} LA13: ;
}
}
break;
default:
{
}
break;
}
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___vm_8455)(tyObject_BTree__BxbTQohN8QrxN73DA9bcM9aQ* dest, tyObject_BTree__BxbTQohN8QrxN73DA9bcM9aQ src) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = nimDecRefIsLast((*dest).root);
if (!T3_) goto LA4_;
eqdestroy___modulegraphs_10228((*dest).root);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
nimRawDispose((*dest).root, ((NI)8));
}
LA4_: ;
(*dest).root = src.root;
(*dest).entries = src.entries;
}BeforeRet_: ;
}
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
void* T1_;
T1_ = (void*)0;
T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimSetMem__systemZmemory_7(p, ((int)0), size);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initBTree__vm_8425)(tyObject_BTree__BxbTQohN8QrxN73DA9bcM9aQ* Result) {
tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* T1_;
nimZeroMem((void*)Result, sizeof(tyObject_BTree__BxbTQohN8QrxN73DA9bcM9aQ));
T1_ = NIM_NIL;
T1_ = (tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA*) nimNewObj(sizeof(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA), NIM_ALIGNOF(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA));
(*T1_).entries = ((NI)0);
(*T1_).isInternal = NIM_FALSE;
(*Result).root = T1_;
}
static N_INLINE(void, nimIncRef)(void* p) {
NI T1_;
T1_ = (NI)0;
T1_ = minuspercent___system_790(((NI) (ptrdiff_t) (p)), ((NI)16));
(*((tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A*) (T1_))).rc += ((NI)16);
}
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___vm_8436)(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA** dest, tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* src) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
{
if (!src) goto LA3_;
nimIncRef(src);
}
LA3_: ;
{
NIM_BOOL T7_;
T7_ = (NIM_BOOL)0;
T7_ = nimDecRefIsLast((*dest));
if (!T7_) goto LA8_;
eqdestroy___modulegraphs_10228((*dest));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
nimRawDispose((*dest), ((NI)8));
}
LA8_: ;
(*dest) = src;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___vm_8433)(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA** dest) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = nimDecRefIsLast((*dest));
if (!T3_) goto LA4_;
eqdestroy___modulegraphs_10228((*dest));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
nimRawDispose((*dest), ((NI)8));
}
LA4_: ;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__vm_9810)(tyObject_BTree__BxbTQohN8QrxN73DA9bcM9aQ b, NimStringV2 key) {
NIM_BOOL result;
tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* x;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NIM_BOOL)0;
x = NIM_NIL;
eqcopy___vm_8436(&x, b.root);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
{
while (1) {
if (!(*x).isInternal) goto LA3 ;
{
NI j;
NI i;
j = (NI)0;
i = ((NI)0);
{
while (1) {
if (!(i < (*x).entries)) goto LA6 ;
j = i;
{
NIM_BOOL T9_;
NI T11_;
T9_ = (NIM_BOOL)0;
T9_ = ((NI)(j + ((NI)1)) == (*x).entries);
if (T9_) goto LA10_;
T11_ = (NI)0;
T11_ = cmp__system_1543(key, (*x).keys[((NI)(j + ((NI)1)))- 0]);
T9_ = (T11_ < ((NI)0));
LA10_: ;
if (!T9_) goto LA12_;
eqcopy___vm_8436(&x, (*x)._isInternal_2.links[(j)- 0]);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
goto LA4;
}
LA12_: ;
i += ((NI)1);
} LA6: ;
}
} LA4: ;
} LA3: ;
}
{
NI j_2;
NI i_2;
j_2 = (NI)0;
i_2 = ((NI)0);
{
while (1) {
if (!(i_2 < (*x).entries)) goto LA16 ;
j_2 = i_2;
{
NI T19_;
T19_ = (NI)0;
T19_ = cmp__system_1543(key, (*x).keys[(j_2)- 0]);
if (!(T19_ == ((NI)0))) goto LA20_;
result = NIM_TRUE;
eqdestroy___vm_8433(&x);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
goto BeforeRet_;
}
LA20_: ;
i_2 += ((NI)1);
} LA16: ;
}
}
result = NIM_FALSE;
eqdestroy___vm_8433(&x);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
goto BeforeRet_;
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___vm_8433(&x);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___vm_8439)(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA** dest, tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* src) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = nimDecRefIsLast((*dest));
if (!T3_) goto LA4_;
eqdestroy___modulegraphs_10228((*dest));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
nimRawDispose((*dest), ((NI)8));
}
LA4_: ;
(*dest) = src;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, copyHalf__vm_10958)(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* h, tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* result) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
{
NI j;
NI i;
j = (NI)0;
i = ((NI)0);
{
while (1) {
if (!(i < ((NI)256))) goto LA3 ;
j = i;
eqcopy___stdZassertions_16((&(*result).keys[(j)- 0]), (*h).keys[((NI)(((NI)256) + j))- 0]);
i += ((NI)1);
} LA3: ;
}
}
{
if (!(*h).isInternal) goto LA6_;
{
NI j_2;
NI i_2;
j_2 = (NI)0;
i_2 = ((NI)0);
{
while (1) {
if (!(i_2 < ((NI)256))) goto LA10 ;
j_2 = i_2;
eqcopy___vm_8436(&(*result)._isInternal_2.links[(j_2)- 0], (*h)._isInternal_2.links[((NI)(((NI)256) + j_2))- 0]);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
i_2 += ((NI)1);
} LA10: ;
}
}
}
goto LA4_;
LA6_: ;
{
{
NI j_3;
NI i_3;
j_3 = (NI)0;
i_3 = ((NI)0);
{
while (1) {
tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* T15_;
if (!(i_3 < ((NI)256))) goto LA14 ;
j_3 = i_3;
T15_ = NIM_NIL;
T15_ = (*h)._isInternal_1.vals[((NI)(((NI)256) + j_3))- 0];
(*h)._isInternal_1.vals[((NI)(((NI)256) + j_3))- 0] = 0;
eqsink___ast_3460(&(*result)._isInternal_1.vals[(j_3)- 0], T15_);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
i_3 += ((NI)1);
} LA14: ;
}
}
}
LA4_: ;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA*, split__vm_10941)(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* h) {
tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* result;
NIM_BOOL colontmpD_;
tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = NIM_NIL;
colontmpD_ = (NIM_BOOL)0;
T1_ = NIM_NIL;
T1_ = (tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA*) nimNewObj(sizeof(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA), NIM_ALIGNOF(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA));
(*T1_).entries = ((NI)256);
colontmpD_ = (*h).isInternal;
(*T1_).isInternal = colontmpD_;
result = T1_;
(*h).entries = ((NI)256);
copyHalf__vm_10958(h, result);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA*, insert__vm_10113)(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* h, NimStringV2 key, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* val) {
tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* result;
NimStringV2 newKey;
NI j;
NIM_BOOL oldNimErrFin33_;
NIM_BOOL oldNimErrFin23_;
tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* T48_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = NIM_NIL;
newKey.len = 0; newKey.p = NIM_NIL;
eqcopy___stdZassertions_16((&newKey), key);
j = ((NI)0);
{
if (!!((*h).isInternal)) goto LA4_;
{
while (1) {
if (!(j < (*h).entries)) goto LA7 ;
{
NI T10_;
T10_ = (NI)0;
T10_ = cmp__system_1543(key, (*h).keys[(j)- 0]);
if (!(T10_ == ((NI)0))) goto LA11_;
eqcopy___ast_3457(&(*h)._isInternal_1.vals[(j)- 0], val);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
eqdestroy___stdZassertions_13((&newKey));
goto BeforeRet_;
}
LA11_: ;
{
NI T15_;
T15_ = (NI)0;
T15_ = cmp__system_1543(key, (*h).keys[(j)- 0]);
if (!(T15_ < ((NI)0))) goto LA16_;
goto LA6;
}
LA16_: ;
j += ((NI)1);
} LA7: ;
} LA6: ;
{
NI i;
NI colontmp_;
NI res;
i = (NI)0;
colontmp_ = (NI)0;
colontmp_ = (NI)(j + ((NI)1));
res = (*h).entries;
{
while (1) {
tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* T21_;
if (!(colontmp_ <= res)) goto LA20 ;
i = res;
T21_ = NIM_NIL;
T21_ = (*h)._isInternal_1.vals[((NI)(i - ((NI)1)))- 0];
(*h)._isInternal_1.vals[((NI)(i - ((NI)1)))- 0] = 0;
eqsink___ast_3460(&(*h)._isInternal_1.vals[(i)- 0], T21_);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
res -= ((NI)1);
} LA20: ;
}
}
eqcopy___ast_3457(&(*h)._isInternal_1.vals[(j)- 0], val);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
goto LA2_;
LA4_: ;
{
tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* newLink;
newLink = NIM_NIL;
newLink = ((tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA*) NIM_NIL);
{
while (1) {
if (!(j < (*h).entries)) goto LA25 ;
{
NIM_BOOL T28_;
NI T30_;
tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* u;
T28_ = (NIM_BOOL)0;
T28_ = ((NI)(j + ((NI)1)) == (*h).entries);
if (T28_) goto LA29_;
T30_ = (NI)0;
T30_ = cmp__system_1543(key, (*h).keys[((NI)(j + ((NI)1)))- 0]);
T28_ = (T30_ < ((NI)0));
LA29_: ;
if (!T28_) goto LA31_;
u = NIM_NIL;
u = insert__vm_10113((*h)._isInternal_2.links[(j)- 0], key, val);
if (NIM_UNLIKELY(*nimErr_)) goto LA33_;
j += ((NI)1);
{
if (!(u == ((tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA*) NIM_NIL))) goto LA36_;
eqsink___vm_8439(&result, ((tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA*) NIM_NIL));
if (NIM_UNLIKELY(*nimErr_)) goto LA33_;
eqdestroy___vm_8433(&u);
if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
eqdestroy___vm_8433(&newLink);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
eqdestroy___stdZassertions_13((&newKey));
goto BeforeRet_;
}
LA36_: ;
eqcopy___stdZassertions_16((&newKey), (*u).keys[(((NI)0))- 0]);
eqsink___vm_8439(&newLink, u);
if (NIM_UNLIKELY(*nimErr_)) goto LA33_;
u = 0;
eqdestroy___vm_8433(&u);
if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
goto LA24;
{
LA33_:;
}
{
oldNimErrFin33_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___vm_8433(&u);
if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
*nimErr_ = oldNimErrFin33_;
}
if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
}
LA31_: ;
j += ((NI)1);
} LA25: ;
} LA24: ;
{
NI i_2;
NI colontmp__2;
NI res_2;
i_2 = (NI)0;
colontmp__2 = (NI)0;
colontmp__2 = (NI)(j + ((NI)1));
res_2 = (*h).entries;
{
while (1) {
if (!(colontmp__2 <= res_2)) goto LA42 ;
i_2 = res_2;
eqcopy___vm_8436(&(*h)._isInternal_2.links[(i_2)- 0], (*h)._isInternal_2.links[((NI)(i_2 - ((NI)1)))- 0]);
if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
res_2 -= ((NI)1);
} LA42: ;
}
}
eqsink___vm_8439(&(*h)._isInternal_2.links[(j)- 0], newLink);
if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
newLink = 0;
{
LA23_:;
}
{
oldNimErrFin23_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___vm_8433(&newLink);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
*nimErr_ = oldNimErrFin23_;
}
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA2_: ;
{
NI i_3;
NI colontmp__3;
NI res_3;
i_3 = (NI)0;
colontmp__3 = (NI)0;
colontmp__3 = (NI)(j + ((NI)1));
res_3 = (*h).entries;
{
while (1) {
if (!(colontmp__3 <= res_3)) goto LA47 ;
i_3 = res_3;
eqcopy___stdZassertions_16((&(*h).keys[(i_3)- 0]), (*h).keys[((NI)(i_3 - ((NI)1)))- 0]);
res_3 -= ((NI)1);
} LA47: ;
}
}
eqsink___stdZassertions_19((&(*h).keys[(j)- 0]), newKey);
newKey.len = 0; newKey.p = NIM_NIL;
(*h).entries += ((NI)1);
T48_ = NIM_NIL;
{
if (!((*h).entries < ((NI)512))) goto LA51_;
result = ((tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA*) NIM_NIL);
}
goto LA49_;
LA51_: ;
{
result = split__vm_10941(h);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA49_: ;
eqdestroy___stdZassertions_13((&newKey));
goto BeforeRet_;
{
LA1_:;
}
{
eqdestroy___stdZassertions_13((&newKey));
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, add__vm_10097)(tyObject_BTree__BxbTQohN8QrxN73DA9bcM9aQ* b, NimStringV2 key, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* val) {
tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* u;
tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* t;
tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* T6_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
u = NIM_NIL;
t = NIM_NIL;
u = insert__vm_10113((*b).root, key, val);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
(*b).entries += ((NI)1);
{
if (!(u == ((tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA*) NIM_NIL))) goto LA4_;
eqdestroy___vm_8433(&t);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___vm_8433(&u);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
goto BeforeRet_;
}
LA4_: ;
T6_ = NIM_NIL;
T6_ = (tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA*) nimNewObj(sizeof(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA), NIM_ALIGNOF(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA));
(*T6_).entries = ((NI)2);
(*T6_).isInternal = NIM_TRUE;
t = T6_;
eqcopy___stdZassertions_16((&(*t).keys[(((NI)0))- 0]), (*(*b).root).keys[(((NI)0))- 0]);
eqcopy___vm_8436(&(*t)._isInternal_2.links[(((NI)0))- 0], (*b).root);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
eqcopy___stdZassertions_16((&(*t).keys[(((NI)1))- 0]), (*u).keys[(((NI)0))- 0]);
eqsink___vm_8439(&(*t)._isInternal_2.links[(((NI)1))- 0], u);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
u = 0;
eqsink___vm_8439(&(*b).root, t);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
t = 0;
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___vm_8433(&t);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___vm_8433(&u);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, getOrDefault__vm_12089)(tyObject_BTree__BxbTQohN8QrxN73DA9bcM9aQ b, NimStringV2 key) {
tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* result;
tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* x;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = NIM_NIL;
x = NIM_NIL;
eqcopy___vm_8436(&x, b.root);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
{
while (1) {
if (!(*x).isInternal) goto LA3 ;
{
NI j;
NI i;
j = (NI)0;
i = ((NI)0);
{
while (1) {
if (!(i < (*x).entries)) goto LA6 ;
j = i;
{
NIM_BOOL T9_;
NI T11_;
T9_ = (NIM_BOOL)0;
T9_ = ((NI)(j + ((NI)1)) == (*x).entries);
if (T9_) goto LA10_;
T11_ = (NI)0;
T11_ = cmp__system_1543(key, (*x).keys[((NI)(j + ((NI)1)))- 0]);
T9_ = (T11_ < ((NI)0));
LA10_: ;
if (!T9_) goto LA12_;
eqcopy___vm_8436(&x, (*x)._isInternal_2.links[(j)- 0]);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
goto LA4;
}
LA12_: ;
i += ((NI)1);
} LA6: ;
}
} LA4: ;
} LA3: ;
}
{
NI j_2;
NI i_2;
j_2 = (NI)0;
i_2 = ((NI)0);
{
while (1) {
if (!(i_2 < (*x).entries)) goto LA16 ;
j_2 = i_2;
{
NI T19_;
T19_ = (NI)0;
T19_ = cmp__system_1543(key, (*x).keys[(j_2)- 0]);
if (!(T19_ == ((NI)0))) goto LA20_;
eqcopy___ast_3457(&result, (*x)._isInternal_1.vals[(j_2)- 0]);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
eqdestroy___vm_8433(&x);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
goto BeforeRet_;
}
LA20_: ;
i_2 += ((NI)1);
} LA16: ;
}
}
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___vm_8433(&x);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasNext__vm_12462)(tyObject_BTree__BxbTQohN8QrxN73DA9bcM9aQ b, NI index) {
NIM_BOOL result;
result = (NIM_BOOL)0;
result = (index < b.entries);
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, countSubTree__vm_12690)(tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* it) {
NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
{
if (!(*it).isInternal) goto LA3_;
result = ((NI)0);
{
NI k;
NI i;
k = (NI)0;
i = ((NI)0);
{
while (1) {
NI T8_;
if (!(i < (*it).entries)) goto LA7 ;
k = i;
T8_ = (NI)0;
T8_ = countSubTree__vm_12690((*it)._isInternal_2.links[(k)- 0]);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
result += T8_;
i += ((NI)1);
} LA7: ;
}
}
}
goto LA1_;
LA3_: ;
{
result = (*it).entries;
}
LA1_: ;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, next__vm_12613)(tyObject_BTree__BxbTQohN8QrxN73DA9bcM9aQ b, NI index, tyTuple__fEYsTpTmLyu9a9a9aiqr9aMdLQ* Result) {
tyObject_NodecolonObjectType___mrvIQfKwBmbEEQo9c7zUoMA* it;
NimStringV2 colontmp_;
tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmp__2;
NI i;
NI colontmp__3;
NimStringV2 blitTmp;
tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* blitTmp_2;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)Result, sizeof(tyTuple__fEYsTpTmLyu9a9a9aiqr9aMdLQ));
it = NIM_NIL;
colontmp_.len = 0; colontmp_.p = NIM_NIL;
colontmp__2 = NIM_NIL;
eqcopy___vm_8436(&it, b.root);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
i = index;
{
while (1) {
NI sum;
if (!(*it).isInternal) goto LA3 ;
sum = ((NI)0);
{
NI k;
NI i_2;
k = (NI)0;
i_2 = ((NI)0);
{
while (1) {
NI c;
if (!(i_2 < (*it).entries)) goto LA6 ;
k = i_2;
c = countSubTree__vm_12690((*it)._isInternal_2.links[(k)- 0]);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
sum += c;
{
if (!(i < sum)) goto LA9_;
eqcopy___vm_8436(&it, (*it)._isInternal_2.links[(k)- 0]);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
i -= (NI)(sum - c);
goto LA4;
}
LA9_: ;
i_2 += ((NI)1);
} LA6: ;
}
} LA4: ;
} LA3: ;
}
eqcopy___stdZassertions_16((&colontmp_), (*it).keys[(i)- 0]);
eqcopy___ast_3457(&colontmp__2, (*it)._isInternal_1.vals[(i)- 0]);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
colontmp__3 = (NI)(index + ((NI)1));
blitTmp = colontmp_;
(*Result).Field0 = blitTmp;
blitTmp_2 = colontmp__2;
(*Result).Field1 = blitTmp_2;
(*Result).Field2 = colontmp__3;
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___vm_8433(&it);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}