Anthony Nicholls
5e803ded5f
Deprecations: Add ignore deprecation warning macros
2024-11-27 11:07:04 +00:00
reuk
0ea1af03a1
ListenerList: Fix rare use-after-free when assertions are enabled
...
This issue manifested on Linux when building in Debug mode. It may also
have caused issues on other platforms. When editing a slider's value
using its text box, and then pressing the enter key, the program would
crash. The issue was not present when running with address sanitizer.
Valgrind was able to find the problem.
2024-11-07 21:00:22 +00:00
reuk
67396435e5
DynamicObject: Add virtual functions that are called to indicate a property change
2024-10-20 22:59:39 +01:00
Anthony Nicholls
1e5c88899e
JSON: Use UTF8 encoding by default
2024-09-06 15:40:39 +00:00
attila
95e71b10b0
FixedSizeFunction: Replace std::aligned_storage_t to avoid C++23 warning
...
We are ignoring warning 4324, which warns us that a FixedSizeFunction<4>
will have it's size increased to 8 bytes, due to the minimum alignment
requirement of 8 bytes.
2024-08-15 11:15:15 +02:00
Anthony Nicholls
2e6ee49cfa
ListenerList: Add a LightweightListenerList class
...
When extra guarantees were added to ListenerList to guard against mutations of
the list from callbacks, it also resulted in removing a previously observable
guarantee that calls to the listeners could be made concurrently as long as
those listeners were themselves thread safe. This commit adds a new class that
restores that behaviour for anybody who needs it.
2024-08-01 16:10:09 +00:00
reuk
ef31cbb620
DynamicObject: Make virtual functions non-virtual
2024-07-29 16:09:53 +01:00
Anthony Nicholls
0d8f2c63ec
ListenerList: Assert if initialisation could throw for any reason other than a bad allocation
2024-06-27 14:17:37 +01:00
Anthony Nicholls
06fb8f4ea2
ListenerList: Fix a bug where removing a listener during a callback in which it had also been added prevents other listeners from being called
2024-06-27 14:14:25 +01:00
Anthony Nicholls
43762c7575
ListenerList: Move unit tests into separate file
2024-06-27 14:14:25 +01:00
Anthony Nicholls
29cb346db2
ListenerList: Prevent a data race while clearing the list
2024-06-13 11:22:04 +01:00
Anthony Nicholls
c4d5ffa7ab
ListenerList: Add a thread safe ListenerList type
2024-06-07 20:25:39 +01:00
Anthony Nicholls
0dfff1454c
ListenerList: Optimise empty listener list
2024-06-07 20:25:39 +01:00
Tom Poole
94d98a2b10
Update licensing information
2024-04-16 11:39:35 +01:00
Anthony Nicholls
fe00442335
Copyright: Fix incorrect or inconsistent copyright notices
2024-03-25 10:22:58 +00:00
Tom Poole
a028f277c1
Docs: Fix a typo
2024-01-31 12:43:33 +00:00
reuk
047448fbce
Warnings: Add missing overrides
2024-01-30 11:37:30 +00:00
Anthony Nicholls
67570d34c4
ListenerList: Prevent calling any listeners that are added during a callback
...
This fixes an edge case in which if listeners are both removed and added during a callback the added listener(s) may be called during the same iteration
2024-01-15 17:17:58 +00:00
Anthony Nicholls
b05b73fb49
ListenerList: Fix some edge cases when iterating the listeners
...
- Prevent out of scope access of the listeners lock
- Allow clearing the listener list from a callback
2024-01-12 11:22:03 +00:00
reuk
224c4f706b
JSON: Add new JSON::Formatter for configuring JSON output
...
This also fixes an issue where MIDI CI header data could contain spaces,
which is not allowed according to the spec.
2023-12-06 20:25:22 +00:00
Tom Poole
2c7043319b
Doxygen updates
2023-11-20 13:14:20 +00:00
reuk
387ab88c13
Span: Add missing move constructors
2023-10-31 10:58:06 +00:00
reuk
cb44d72b78
EnumerateIterator: Add utility for concisely enumerating ranges
2023-10-30 14:45:24 +00:00
Tom Poole
6bf9bb9a2e
Add final specifiers in implementation files
2023-10-10 16:12:38 +01:00
Anthony Nicholls
158220ddfa
Formatting: Use nested namespace definitions
2023-10-09 14:49:18 +01:00
Nathan Blair
65f55e17ac
Docs: abstract FIFO example
2023-10-02 16:43:15 +01:00
Tom Poole
4153d59e39
Formatting
2023-10-02 15:42:20 +01:00
reuk
dd30569b3e
Formatting: Add missing newlines
2023-09-27 15:22:11 +01:00
reuk
d8b71b4eef
VariantConverter: Use FromVar and ToVar as a fallback
2023-09-26 11:21:45 +01:00
reuk
1bc90055b9
DynamicObject: Add const overload for getProperties
2023-09-26 11:05:56 +01:00
reuk
a4dfd8d6c6
FixedSizeFunction: Allow sinking of rvalue arguments for functions returning void
2023-09-20 18:40:53 +01:00
Tom Poole
9b041f3d74
Add a base clang-tidy configuration
2023-09-18 11:24:19 +01:00
Oliver James
7d9cdd3016
Audio: Add AudioWorkgroup support
...
This allows real-time threads to join an audio workgroup on Apple platforms.
2023-08-30 12:03:47 +01:00
reuk
6420ab31b6
DynamicObject: Update signature of clone to return unique_ptr
2023-08-23 20:31:54 +01:00
reuk
679a33d657
ScopeGuard: Add new heavyweight ErasedScopeGuard type
2023-08-23 20:31:54 +01:00
Tom Poole
ff835be2ac
Doxygen: Fix some Doxygen issues
2023-07-17 18:24:01 +01:00
reuk
c93ac07202
Array: Add missing floating point equality warning suppression
2023-04-11 12:36:19 +01:00
reuk
28414a6af8
Global: Avoid floating-point equality checks where possible
2023-04-04 19:55:11 +01:00
reuk
f1f68007c6
Containers: Add simple Span implementation
2023-02-14 22:29:01 +00:00
Tom Poole
a28597c3c9
Fix GCC 12 compiler warnings
2023-01-31 12:54:56 +00:00
reuk
b46edc31ce
Optional: Make operator bool() explicit
2023-01-04 15:00:33 +00:00
reuk
2dc90bd6e6
Variant: Remove unnecessary definitions of static constexpr data members
2022-12-07 13:12:01 +00:00
reuk
28f2157912
Convert ignoreUnused to [[maybe_unused]]
2022-12-01 11:41:50 +00:00
reuk
7c14c1fcd7
Use more concise stdlib type aliases
2022-09-26 18:03:47 +01:00
reuk
7391d18b8e
Optional: Implement in terms of std::optional
2022-09-12 16:14:57 +01:00
Tom Poole
784f82ffec
Fix some Doxygen issues
2022-06-16 16:19:10 +01:00
reuk
891daf1332
Optional: Update implementation to improve debugging experience
...
This patch also makes Optional public to end users.
2022-06-16 16:17:53 +01:00
Tom Poole
2ec861d99e
Update licensing banners to JUCE 7
2022-05-16 17:55:48 +01:00
attila
e6cf6ab064
ListenerList: Modify iterator during removals to guarantee callback
2022-05-11 16:06:18 +02:00
reuk
5705a83065
ListenerList: Remove deprecation warning
2022-04-22 14:18:49 +01:00