25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#endif
#import "OFException.h"
#import "OFString.h"
#import "OFArray.h"
#import "autorelease.h"
struct _Unwind_Context;
typedef enum {
_URC_OK = 0,
_URC_END_OF_STACK = 5
}_Unwind_Reason_Code;
|
>
>
>
>
>
|
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#endif
#import "OFException.h"
#import "OFString.h"
#import "OFArray.h"
#import "autorelease.h"
#ifdef _WIN32
# include <errno.h>
# include <winerror.h>
#endif
struct _Unwind_Context;
typedef enum {
_URC_OK = 0,
_URC_END_OF_STACK = 5
}_Unwind_Reason_Code;
|
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
bt->backtrace[bt->i++] = (void*)_Unwind_GetIP(ctx);
#endif
return _URC_OK;
}
return _URC_END_OF_STACK;
}
@implementation OFException
+ (instancetype)exception
{
return [[[self alloc] init] autorelease];
}
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
bt->backtrace[bt->i++] = (void*)_Unwind_GetIP(ctx);
#endif
return _URC_OK;
}
return _URC_END_OF_STACK;
}
#if defined(_WIN32) && defined(OF_HAVE_SOCKETS)
int
of_wsaerr_to_errno(int wsaerr)
{
switch (wsaerr) {
case WSAEACCES:
return EACCES;
case WSAEBADF:
return EBADF;
case WSAEDISCON:
return EPIPE;
case WSAEFAULT:
return EFAULT;
case WSAEINTR:
return EINTR;
case WSAEINVAL:
return EINVAL;
case WSAENAMETOOLONG:
return ENAMETOOLONG;
case WSAENOTEMPTY:
return ENOTEMPTY;
case WSAEWOULDBLOCK:
return EAGAIN;
default:
return wsaerr;
}
}
#endif
@implementation OFException
+ (instancetype)exception
{
return [[[self alloc] init] autorelease];
}
|