Пример #1
0
void Streader_set_memory_error(Streader* sr, const char* format, ...)
{
    rassert(sr != NULL);
    rassert(format != NULL);

    va_list args;
    va_start(args, format);
    Error_set_desc_va_list(
            &sr->error, ERROR_MEMORY, "", sr->line, "", format, args);
    va_end(args);

    return;
}
Пример #2
0
void Handle_set_error_(
        Handle* handle,
        Error_type type,
        Error_delay_type delay_type,
        const char* file,
        int line,
        const char* func,
        const char* message,
        ...)
{
    rassert(type < ERROR_COUNT_);
    rassert(delay_type == ERROR_IMMEDIATE || delay_type == ERROR_VALIDATION);
    rassert(file != NULL);
    rassert(line >= 0);
    rassert(func != NULL);
    rassert(message != NULL);

    Error* error = ERROR_AUTO;

    va_list args;
    va_start(args, message);
    Error_set_desc_va_list(error, type, file, line, func, message, args);
    va_end(args);

    if (delay_type == ERROR_IMMEDIATE)
        Error_copy(&null_error, error);

    if (handle != NULL)
    {
        if (delay_type == ERROR_IMMEDIATE)
            Error_copy(&handle->error, error);
        else if (delay_type == ERROR_VALIDATION)
            Error_copy(&handle->validation_error, error);
        else
            rassert(false);
    }

    return;
}