blob: 2519240a61d7365d5f1a07e76d4a7712a74d4667 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
//-----------------------------------------------------------------------------
//
// ImageLib Sources
// Copyright (C) 2000-2008 by Denton Woods
// Last modified: 06/02/2007
//
// Filename: src-IL/src/il_error.c
//
// Description: The error functions
//
//-----------------------------------------------------------------------------
#include "il_internal.h"
#define IL_ERROR_STACK_SIZE 32 // Needed elsewhere?
ILenum ilErrorNum[IL_ERROR_STACK_SIZE];
ILint ilErrorPlace = (-1);
// Sets the current error
// If you go past the stack size for this, it cycles the errors, almost like a LRU algo.
ILAPI void ILAPIENTRY ilSetError(ILenum Error)
{
ILuint i;
ilErrorPlace++;
if (ilErrorPlace >= IL_ERROR_STACK_SIZE) {
for (i = 0; i < IL_ERROR_STACK_SIZE - 2; i++) {
ilErrorNum[i] = ilErrorNum[i+1];
}
ilErrorPlace = IL_ERROR_STACK_SIZE - 1;
}
ilErrorNum[ilErrorPlace] = Error;
return;
}
//! Gets the last error on the error stack
ILenum ILAPIENTRY ilGetError(void)
{
ILenum ilReturn;
if (ilErrorPlace >= 0) {
ilReturn = ilErrorNum[ilErrorPlace];
ilErrorPlace--;
}
else
ilReturn = IL_NO_ERROR;
return ilReturn;
}
|