Example #1
0
static
int corto_compare_key_ptr(
    void* ctx,
    const void *o1,
    const void *o2)
{
    return corto_ptr_compare(&o1, ctx, &o2);
}
Example #2
0
static
int corto_compare_key(
    void* ctx,
    const void *o1,
    const void *o2)
{
    return corto_ptr_compare(o1, ctx, o2);
}
Example #3
0
static corto_equalityKind corto_collection_compareListWithList(corto_collection t, corto_ll list1, corto_ll list2) {
    corto_equalityKind result = CORTO_EQ;
    corto_iter iter1, iter2;
    void *e1, *e2;
    corto_type elementType = t->elementType;

    iter1 = corto_ll_iter(list1);
    iter2 = corto_ll_iter(list2);
    while(corto_iter_hasNext(&iter1) && corto_iter_hasNext(&iter2)) {
        if (corto_collection_requiresAlloc(elementType)) {
            e1 = corto_iter_next(&iter1);
            e2 = corto_iter_next(&iter2);
        } else {
            e1 = corto_iter_nextPtr(&iter1);
            e2 = corto_iter_nextPtr(&iter2);
        }
        result = corto_ptr_compare(e1, elementType, e2);
        if (result != CORTO_EQ) {
            break;
        }
    }

    return result;
}
Example #4
0
static corto_equalityKind corto_collection_compareArrayWithList(corto_collection t, void *array, corto_uint32 elementSize, corto_ll list) {
    corto_equalityKind result = CORTO_EQ;
    corto_uint32 i=0;
    corto_iter iter;
    void *e1, *e2;
    corto_type elementType = t->elementType;

    iter = corto_ll_iter(list);
    while(corto_iter_hasNext(&iter)) {
        if (corto_collection_requiresAlloc(elementType)) {
            e1 = corto_iter_next(&iter);
        } else {
            e1 = corto_iter_nextPtr(&iter);
        }
        e2 = CORTO_OFFSET(array, elementSize * i);
        result = corto_ptr_compare(e2, elementType, e1);
        if (result != CORTO_EQ) {
            break;
        }
        i++;
    }

    return result;
}