Example #1
0
// Duplicates an existing dictionary
cmsHANDLE CMSEXPORT cmsDictDup(cmsHANDLE hDict)
{
    _cmsDICT* old_dict = (_cmsDICT*) hDict;
    cmsHANDLE hNew;
    cmsDICTentry *entry;

    _cmsAssert(old_dict != NULL);

    hNew  = cmsDictAlloc(old_dict ->ContextID);
    if (hNew == NULL) return NULL;

    // Walk the list freeing all nodes
    entry = old_dict ->head;
    while (entry != NULL) {

        if (!cmsDictAddEntry(hNew, entry ->Name, entry ->Value, entry ->DisplayName, entry ->DisplayValue)) {

            cmsDictFree(hNew);
            return NULL;
        }

        entry = entry -> Next;
    }
    
    return hNew;
}
Example #2
0
cmsBool ProfileUtils::cmsDictAddEntryAscii(cmsHANDLE dict,
                                           const QString &key,
                                           const QString &value)
{
    qCDebug(COLORD) << key << value;
    cmsBool ret;

    wchar_t *mb_key = new wchar_t[key.length() + 1];
    if (key.toWCharArray(mb_key) != key.length()) {
        delete [] mb_key;
        return false;
    }
    mb_key[key.length()] = 0;

    wchar_t *mb_value = new wchar_t[value.length() + 1];
    if (value.toWCharArray(mb_value) != value.length()) {
        delete [] mb_key;
        delete [] mb_value;
        return false;
    }
    mb_value[value.length()] = 0;

    ret = cmsDictAddEntry(dict, mb_key, mb_value, NULL, NULL);
    delete [] mb_key;
    delete [] mb_value;
    return ret;
}