ObjFW  History of src/exceptions/OFException.h of 1c2f416cb96ccbb7

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

2024-05-01
15:19
[5970277a67] part of check-in [0c3c3b6efa] Document a lot of undocumented functions & macros

Also fixes Doxygen not creating documentation for `static OF_INLINE`
functions. (check-in: [0c3c3b6efa] user: js, branch: trunk, size: 5014) [annotate] [blame] [check-ins using] [diff]

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

2018-01-03
19:49
[b458aeb005] part of check-in [7e5c81e186] Update copyright notice (check-in: [7e5c81e186] user: js, branch: trunk, size: 3952) [annotate] [blame] [check-ins using] [diff]
2017-06-05
18:56
[f62cc834d2] part of check-in [4b6dfe02f2] Doxyfile: Add missing defines (check-in: [4b6dfe02f2] user: js, branch: trunk, size: 3929) [annotate] [blame] [check-ins using] [diff]
17:36
[c52839786d] part of check-in [4f36894ce7] 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. (check-in: [4f36894ce7] user: js, branch: trunk, size: 3952) [annotate] [blame] [check-ins using] [diff]

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

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

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

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

2016-01-03
00:43
[494bdecd1c] part of check-in [cec0f072f8] Update copyright

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

00:41
[abdb2b2934] part of check-in [2a27cf3000] Update copyright

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

2015-10-19
22:15
[b18e7dc1e3] part of check-in [1ba08eebc5] Add platform.h & make platform defines consistent (check-in: [1ba08eebc5] user: js, branch: trunk, size: 3896) [annotate] [blame] [check-ins using] [diff]
2015-06-12
23:59
[27f0d07f48] part of check-in [5329fe7c1a] Add support for and use the new ObjC generics (check-in: [5329fe7c1a] user: js, branch: trunk, size: 3892) [annotate] [blame] [check-ins using] [diff]
2015-02-16
08:39
[81451deb50] part of check-in [62e2de30b9] 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. (check-in: [62e2de30b9] user: js, branch: trunk, size: 3823) [annotate] [blame] [check-ins using] [diff]

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

2013-06-11
22:55
[cc67cf334c] part of check-in [259f593244] 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. (check-in: [259f593244] user: js, branch: trunk, size: 1936) [annotate] [blame] [check-ins using] [diff]

2013-05-25
11:40
[3edc7f9b6e] part of check-in [f2a8bdf254] 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. (check-in: [f2a8bdf254] user: js, branch: trunk, size: 1912) [annotate] [blame] [check-ins using] [diff]

2013-05-22
20:36
[a50325ba8b] part of check-in [a889f21180] 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). (check-in: [a889f21180] user: js, branch: trunk, size: 1897) [annotate] [blame] [check-ins using] [diff]

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

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

2013-02-13
23:10
[8f2a6df5f9] part of check-in [d9ddc4d06e] Don't cache the description of exceptions.

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

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

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