blob: 4902f980f2f636d0987a5e0d8d9cc1fd6ff29bb5 [file] [log] [blame]
/*
* Copyright 2016 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
*/
//
//
//
#include <stdlib.h>
#include <stdio.h>
//
//
//
#include "assert_skc.h"
//
//
//
#define SKC_ERR_TO_STR(err) case err: return #err
//
//
//
char const *
skc_get_error_string(skc_err const err)
{
switch(err)
{
SKC_ERR_TO_STR(SKC_ERR_SUCCESS);
SKC_ERR_TO_STR(SKC_ERR_NOT_IMPLEMENTED);
SKC_ERR_TO_STR(SKC_ERR_POOL_EMPTY);
SKC_ERR_TO_STR(SKC_ERR_CONDVAR_WAIT);
SKC_ERR_TO_STR(SKC_ERR_LAYER_ID_INVALID);
SKC_ERR_TO_STR(SKC_ERR_LAYER_NOT_EMPTY);
SKC_ERR_TO_STR(SKC_ERR_TRANSFORM_WEAKREF_INVALID);
SKC_ERR_TO_STR(SKC_ERR_STROKE_STYLE_WEAKREF_INVALID);
SKC_ERR_TO_STR(SKC_ERR_COMMAND_NOT_READY);
SKC_ERR_TO_STR(SKC_ERR_COMMAND_NOT_COMPLETED);
SKC_ERR_TO_STR(SKC_ERR_COMMAND_NOT_STARTED);
SKC_ERR_TO_STR(SKC_ERR_COMMAND_NOT_READY_OR_COMPLETED);
SKC_ERR_TO_STR(SKC_ERR_COMPOSITION_SEALED);
SKC_ERR_TO_STR(SKC_ERR_STYLING_SEALED);
SKC_ERR_TO_STR(SKC_ERR_HANDLE_INVALID);
SKC_ERR_TO_STR(SKC_ERR_HANDLE_OVERFLOW);
default:
return "UNKNOWN SKC ERROR CODE";
}
}
//
//
//
skc_err
assert_skc(skc_err const err, char const * const file, int const line, bool const abort)
{
if (err != SKC_ERR_SUCCESS)
{
char const * const skc_err_str = skc_get_error_string(err);
fprintf(stderr,
"\"%s\", line %d: skc_assert (%d) = \"%s\"",
file,line,err,skc_err_str);
if (abort)
{
// stop profiling and reset device here if necessary
exit(err);
}
}
return err;
}
//
//
//