| // 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 |