// Copyright 2014 PDFium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com #ifndef _FWL_ERROR_H #define _FWL_ERROR_H typedef int32_t FWL_ERR; #define FWL_ERR_Succeeded 0 #define FWL_ERR_Indefinite -1 #define FWL_ERR_Parameter_Invalid -100 #define FWL_ERR_Property_Invalid -200 #define FWL_ERR_Intermediate_Value__Invalid -300 #define FWL_ERR_Method_Not_Supported -400 #define FWL_ERR_Out_Of_Memory -500 #if defined(__WIN32__) || defined(_WIN32) #define _FWL_ALARM_IF_FAIL(arg, alarm) \ { \ if (!(arg)) \ ::OutputDebugString(alarm); \ } #elif defined(__linux) || defined(linux) || defined(__APPLE__) || \ defined(__MACOSX__) #define _FWL_ALARM_IF_FAIL(arg, alarm) \ { \ if (!(arg)) \ printf(alarm); \ } #else #endif #define _FWL_RETURN_IF_FAIL(arg) \ { \ if (!(arg)) \ return; \ } #define _FWL_RETURN_VALUE_IF_FAIL(arg, val) \ { \ if (!(arg)) \ return val; \ } #define _FWL_GOTO_POSITION_IF_FAIL(arg, pos) \ { \ if (!(arg)) \ goto pos; \ } #if defined(__WIN32__) || defined(_WIN32) #define _FWL_ERR_CHECK_ALARM_IF_FAIL(arg) \ { \ if ((arg) != FWL_ERR_Succeeded) { \ char buf[36]; \ memset(buf, 0, sizeof(buf)); \ FXSYS_snprintf(buf, sizeof(buf) - 1, "Error code is %d\n", arg); \ ::OutputDebugString(buf); \ } \ } #elif defined(__linux) || defined(linux) || defined(__APPLE__) || \ defined(__MACOSX__) #define _FWL_ERR_CHECK_ALARM_IF_FAIL(arg) \ { \ if ((arg) != FWL_ERR_Succeeded) \ printf("%d\n", arg); \ } #else #endif #define _FWL_ERR_CHECK_RETURN_IF_FAIL(arg) \ { \ if ((arg) != FWL_ERR_Succeeded) \ return; \ } #define _FWL_ERR_CHECK_RETURN_VALUE_IF_FAIL(arg, val) \ { \ if ((arg) != FWL_ERR_Succeeded) \ return val; \ } #define _FWL_ERR_CHECK_GOTO_POSITION_IF_FAIL(arg, pos) \ { \ if ((arg) != FWL_ERR_Succeeded) \ goto pos; \ } #endif