pike.git / src / post_modules / CritBit / critbit / key_bignum.h

version» Context lines:

pike.git/src/post_modules/CritBit/critbit/key_bignum.h:30:      #define CB_ADD_KEY_REF(x) do { if ((x).str) add_ref((x).str); } while(0)   #define CB_FREE_KEY(x) do { if ((x).str) { free_object((x).str); (x).str = NULL; } } while(0)   #define CB_SET_KEY(node, x) \    do { CB_ADD_KEY_REF(x); \    CB_FREE_KEY((node)->key); (node)->key = (x); } while(0)      #define CB_GC_CHECK_KEY(key) gc_check((key).str)   #define CB_GC_RECURSE_KEY(key) gc_recurse_object((key).str)    - // int mpz_cmp (mpz_t op1, mpz_t op2) - #define CB_KEY_EQ(k1, k2) ( (k1).str == (k2).str || !mpz_cmp(K2G(k1), K2G(k2)) ) - #define CB_KEY_LT(k1, k2) ( (k1).str != (k2).str && mpz_cmp(K2G(k1), K2G(k2)) < 0 ) + // int low_compare_bignums (MP_INT op1, MP_INT op2) + #define CB_KEY_EQ(k1, k2) ( (k1).str == (k2).str || !low_compare_bignums(K2G(k1), K2G(k2)) ) + #define CB_KEY_LT(k1, k2) ( (k1).str != (k2).str && low_compare_bignums(K2G(k1), K2G(k2)) < 0 )      static inline mp_limb_t CB_GET_CHAR(cb_string s, ptrdiff_t n) {    MP_INT * i = O2G(s);       n += abs(i->_mp_size);    if (n > 0) {    return i->_mp_d[abs(i->_mp_size)-n];    } else {    return 0;    }