예제 #1
0
void
d_nameSpacesFree(
    d_nameSpaces nameSpaces)
{
    c_ulong i;

    if(nameSpaces){
        if(nameSpaces->name){
            os_free(nameSpaces->name);
        }
        if(nameSpaces->partitions){
            os_free(nameSpaces->partitions);
            nameSpaces->partitions = NULL;
        }
        if(nameSpaces->state.role){
            os_free(nameSpaces->state.role);
            nameSpaces->state.role = NULL;
        }
        if(nameSpaces->mergedStatesCount > 0){
            for(i=0; i<nameSpaces->mergedStatesCount; i++){
                os_free(d_mergeState(&(nameSpaces->mergedStates[i]))->role);
            }
            os_free(nameSpaces->mergedStates);
        }
        d_messageDeinit(d_message(nameSpaces));
        os_free(nameSpaces);
    }
}
예제 #2
0
d_mergeState
d_mergeStateNew(
    const d_name role,
    c_ulong value)
{
    d_mergeState mergeState;

    mergeState = d_mergeState(os_malloc(C_SIZEOF(d_mergeState)));

    if(role){
        mergeState->role = os_strdup(role);
    } else {
        mergeState->role = NULL;
    }
    mergeState->value = value;

    return mergeState;
}