ObjFW  History of src/exceptions/OFException.h of f2a8bdf254c3b166

History of the file that is called src/exceptions/OFException.h at check-in f2a8bdf254c3b166

2024-01-02
17:17
Update copyright file: [97c5efe66a] check-in: [26ddd2e4e4] user: js, branch: trunk, size: 4405 [annotate] [blame] [check-ins using] [diff]
2023-01-06
09:04
Update copyright file: [7e3ef17d50] check-in: [8939cbdb52] user: js, branch: trunk, size: 4405 [annotate] [blame] [check-ins using] [diff]
2022-09-29
21:26
OFException: Provide stack trace addresses file: [e7c0836484] check-in: [f93fae010f] user: js, branch: trunk, size: 4405 [annotate] [blame] [check-ins using] [diff]
2022-09-12
14:34
Either restrict subclassing or reserve ivars file: [6d2e250849] check-in: [c40a295629] user: js, branch: trunk, size: 4088 [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
Update copyright file: [e8334cf8f9] check-in: [1a86b8175b] user: js, branch: trunk, size: 4054 [annotate] [blame] [check-ins using] [diff]
2021-12-19
03:24
Define EWOULDBLOCK to EAGAIN if it's missing file: [638ef1b474] check-in: [35f34deb0c] user: js, branch: trunk, size: 4054 [annotate] [blame] [check-ins using] [diff]
2021-04-25
11:05
A few last renames file: [0c9aa4e00f] check-in: [27103855c2] user: js, branch: new-naming-convention, size: 3998 [annotate] [blame] [check-ins using] [diff]
2021-04-18
22:56
Rename all symbols marked extern file: [7ef0090f31] check-in: [e73c65a849] user: js, branch: new-naming-convention, size: 4002 [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
Update copyright file: [2793460901] check-in: [374e1a1bfa] user: js, branch: trunk, size: 4007 [annotate] [blame] [check-ins using] [diff]
2020-10-03
11:35
Use /** */ instead of /*! */ for documentation file: [9ead1c434e] check-in: [163a4a5a2e] user: js, branch: trunk, size: 4096 [annotate] [blame] [check-ins using] [diff]
2020-01-02
01:51
Update copyright file: [4f668c2421] check-in: [c7f0229795] user: js, branch: trunk, size: 4096 [annotate] [blame] [check-ins using] [diff]
2019-02-17
22:16
OFWindowsRegistryKey: Add write support file: [ebba9465c8] check-in: [4c5f686a52] user: js, branch: trunk, size: 4093 [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
Update copyright file: [fea3f53592] check-in: [0509d7a844] user: js, branch: trunk, size: 3958 [annotate] [blame] [check-ins using] [diff]
2018-08-25
18:32
OFException: Reduce backtrace size to 16

More than 16 is almost never useful, and 32 means it does no longer fit
on a 80x24 screen - or on the screen on a Nintendo 3DS or Wii. file: [c4d4a30786] check-in: [c272d187d7] user: js, branch: trunk, size: 3952 [annotate] [blame] [check-ins using] [diff]

2018-01-03
19:49
Update copyright notice file: [b458aeb005] check-in: [7e5c81e186] user: js, branch: trunk, size: 3952 [annotate] [blame] [check-ins using] [diff]
2017-06-05
18:56
Doxyfile: Add missing defines file: [f62cc834d2] check-in: [4b6dfe02f2] user: js, branch: trunk, size: 3929 [annotate] [blame] [check-ins using] [diff]
17:36
Clean up exceptions a little

This removes several initializers that omitted the errNo. Removing those
forces to think about whether there is a meaningful errNo to set instead
of just omitting it. file: [c52839786d] check-in: [4f36894ce7] user: js, branch: trunk, size: 3952 [annotate] [blame] [check-ins using] [diff]

2017-05-07
21:17
Use generic for -[OFException backtrace] file: [d8d69a707c] check-in: [70adcc7bdd] user: js, branch: trunk, size: 3988 [annotate] [blame] [check-ins using] [diff]
20:10
Small code style change

Casts are now written like types in variable declarations. file: [4f8a3eb7a0] check-in: [4af49a13c3] user: js, branch: trunk, size: 3965 [annotate] [blame] [check-ins using] [diff]

2017-05-02
21:10
exceptions: Add nullability specifiers file: [c5510791b2] check-in: [cc4cb0d824] user: js, branch: trunk, size: 3963 [annotate] [blame] [check-ins using] [diff]
2017-01-09
17:36
Update copyright

Forgot to add 2017, even though I already did quite some changes in
2017. file: [a76e5557c3] check-in: [44f45c2e35] user: js, branch: trunk, size: 3906 [annotate] [blame] [check-ins using] [diff]

2016-01-03
00:43
Update copyright

While at it, also update the mail address. file: [494bdecd1c] check-in: [cec0f072f8] user: js, branch: 0.8, size: 3896 [annotate] [blame] [check-ins using] [diff]

00:41
Update copyright

While at it, also update the mail address. file: [abdb2b2934] check-in: [2a27cf3000] user: js, branch: trunk, size: 3900 [annotate] [blame] [check-ins using] [diff]

2015-10-19
22:15
Add platform.h & make platform defines consistent file: [b18e7dc1e3] check-in: [1ba08eebc5] user: js, branch: trunk, size: 3896 [annotate] [blame] [check-ins using] [diff]
2015-06-12
23:59
Add support for and use the new ObjC generics file: [27f0d07f48] check-in: [5329fe7c1a] user: js, branch: trunk, size: 3892 [annotate] [blame] [check-ins using] [diff]
2015-02-16
08:39
Explicitly pass errno to exceptions

The old behaviour where the exception would access errno directly on
creation of the exception was very fragile. The two main problems with
it were that sometimes it would pick up an errno even though none had
been set and in other cases that when the exception was created errno
had already been overridden.

This also greatly increases errno handling on Win32, especially in
conjunction with sockets. It can still be improved further, though. file: [81451deb50] check-in: [62e2de30b9] user: js, branch: trunk, size: 3823 [annotate] [blame] [check-ins using] [diff]

2015-01-03
20:57
Update copyright file: [f58935f385] check-in: [cfd374b906] user: js, branch: trunk, size: 3714 [annotate] [blame] [check-ins using] [diff]
2014-02-18
18:50
Documentation: Show correct imports file: [3cc3163ec3] check-in: [246cfe0807] user: js, branch: trunk, size: 3708 [annotate] [blame] [check-ins using] [diff]
2014-02-12
03:17
Fix compilation with mingw-w64 file: [a993d55bbd] check-in: [6ba4095f05] user: js, branch: trunk, size: 3649 [annotate] [blame] [check-ins using] [diff]
2014-01-04
00:24
Update copyright. file: [e15938ad56] check-in: [3b97fc3cd9] user: js, branch: trunk, size: 2717 [annotate] [blame] [check-ins using] [diff]
2013-07-05
16:54
Map WSA error codes to standard error codes. file: [f748681fbb] check-in: [e790f0e1f0] user: js, branch: trunk, size: 2711 [annotate] [blame] [check-ins using] [diff]
2013-06-22
12:12
Rework exceptions.

This mostly removes the argument for the class in which the exception
occurred. As backtraces were recently added for all platforms, the
passed class does not give any extra information on where the exception
occurred anymore.

This also removes a few other arguments which were not too helpful. In
the past, the idea was to pass as many arguments as possible so that it
is easier to find the origin of the exception. However, as backtraces
are a much better way to find the origin, those are not useful anymore
and just make the exception more cumbersome to use. The rule is now to
only pass arguments that might help in recovering from the exception or
provide information that is otherwise not easily accessible. file: [2464e12597] check-in: [3d16a30f41] user: js, branch: trunk, size: 1379 [annotate] [blame] [check-ins using] [diff]

2013-06-11
22:55
Use _Unwind_Backtrace() to get a backtrace.

With this, neither the buggy __builtin_return_address() nor the GNU-only
backtrace() are required for a backtrace. file: [cc67cf334c] check-in: [259f593244] user: js, branch: trunk, size: 1936 [annotate] [blame] [check-ins using] [diff]

2013-05-25
11:40
Switch back to backtrace().

The reason is that __builtin_frame_address(n) for n > 0 seems to just
crash on most platforms when -fomit-stack-pointer is specified, which
seems to be the default for many platforms on -O2. The documentation
says that __builtin_frame_address() should return NULL in case it can't
get the frame, but it seems to crash instead.

Therefore, this commit reverts to using backtrace() from execinfo.h, if
available. However, as __builtin_frame_address() seems to always work on
PPC (even with -fomit-frame-pointer) and seems to be the only way to get
a backtrace on the Wii, this is still used if backtrace() is unavailable
and __ppc__ defined. file: [3edc7f9b6e] check-in: [f2a8bdf254] user: js, branch: trunk, size: 1912 [annotate] [blame] [check-ins using] [diff]

2013-05-22
20:36
Don't depened on execinfo.h for backtraces.

Instead, __builtin_return_address() is used now. This makes backtraces
available on many platforms, it even works if dladdr is missing (it does
not show symbol names then, though). file: [a50325ba8b] check-in: [a889f21180] user: js, branch: trunk, size: 1897 [annotate] [blame] [check-ins using] [diff]

2013-05-08
20:15
Add -[OFException backtrace]. file: [8c5ce69b79] check-in: [41716f97ed] user: js, branch: trunk, size: 2020 [annotate] [blame] [check-ins using] [diff]
2013-03-08
22:44
Document the block types.

This also removes "bool *stop" from some blocks where it does not make
sense. file: [20ad317438] check-in: [e8473b9db8] user: js, branch: trunk, size: 1631 [annotate] [blame] [check-ins using] [diff]

2013-02-13
23:10
Don't cache the description of exceptions.

This was pretty pointless, as it's usually only used once. file: [8f2a6df5f9] check-in: [d9ddc4d06e] user: js, branch: trunk, size: 1631 [annotate] [blame] [check-ins using] [diff]

2013-02-12
18:22
Prefix all ivars with an underscore. file: [0e7a48ed31] check-in: [e40729d406] user: js, branch: trunk, size: 1656 [annotate] [blame] [check-ins using] [diff]
2013-01-09
22:24
Update copyright. file: [93f8f3dd32] check-in: [813c00ccf0] user: js, branch: trunk, size: 1654 [annotate] [blame] [check-ins using] [diff]
2012-10-29
08:00
Documentation improvements. file: [3da93c69a8] check-in: [7a3977d7fd] user: js, branch: 0.7, size: 1648 [annotate] [blame] [check-ins using] [diff]
07:59
Documentation improvements. file: [b67f63d01a] check-in: [63bf4de97b] user: js, branch: trunk, size: 1648 [annotate] [blame] [check-ins using] [diff]
2012-10-28
12:38
Switch to a headerdoc-compatible doc format. file: [aebf101d61] check-in: [1ad9565253] user: js, branch: trunk, size: 1475 [annotate] [blame] [check-ins using] [diff]
2012-10-09
15:07
Make use of instancetype. file: [1070cfb5a4] check-in: [fb515e8e24] user: js, branch: trunk, size: 1475 [annotate] [blame] [check-ins using] [diff]
2012-02-01
13:42
Clean up the properties mess. file: [e7f26ea989] check-in: [c1b35e1495] user: js, branch: trunk, size: 1461 [annotate] [blame] [check-ins using] [diff]
2012-01-05
00:56
Update copyright. file: [ca24712781] check-in: [ce70e17b38] user: js, branch: trunk, size: 1472 [annotate] [blame] [check-ins using] [diff]
2011-09-22
23:25
Exceptions are now autoreleased.

This is safe as an "exception loop" can't happen, since if allocating
an exception fails, it throws an OFAllocFailedException which is
preallocated and can always be thrown.

So, the worst case would be that an autorelease of an exception fails,
triggering an OFOutOfMemoryException for which there is no memory,
resulting in an OFAllocFailedException to be thrown. file: [a8b41d395b] check-in: [e1e7ffa903] user: js, branch: trunk, size: 1466 [annotate] [blame] [check-ins using] [diff]

2011-03-24
16:09
Added: Split OFExceptions.{h,m} into one file per exception. file: [aa189c31b8] check-in: [e1eea29286] user: js, branch: trunk, size: 1625 [annotate] [blame] [check-ins using]