Maxime Coste
90db664635
Fix crash when deleting a buffer from a user mapping
...
Deleting a buffer resets normal mode on all clients that were
displaing that buffer, but ScopedForceNormalMode that are used
from user mode do not take this possiblity into account on
destruction, which leads to deleting the last normal mode from
the context, ending up with an empty mode stack.
Fixes #3909
2022-04-12 12:49:19 +10:00
Maxime Coste
bebc81ebe1
RefPtr: use inconditional noexcept specification on destructor
...
The conditional specification could end up being recursive,
assume destructors must be (as is the C++ default) noexcept.
2018-02-28 15:04:00 +11:00
Maxime Coste
6453ce7394
RefPtr: Add some more noexcept specifications
2018-02-25 00:20:10 +11:00
Maxime Coste
45a7496f54
Fix SafeCountable and RefCountable copy/move logic
...
The safe and ref counts should not get copied around.
2017-08-04 11:38:04 +07:00
Maxime Coste
f44415cee4
Add some noexcept to pointer policies
2017-01-31 21:45:55 +00:00
Maxime Coste
0051a4f896
Remove unneeded assignment to null in RefPtr::release
2017-01-29 14:26:41 +00:00
Maxime Coste
75986911f8
Refactor RefPtr handling to use a policy class
...
THe previous overload based system was pretty complex for no good
reason.
2016-12-03 12:32:16 +00:00
Maxime Coste
515231e824
Fix input mode keep alive handling, use a refcount for input modes
...
Fixes #528
2015-12-12 23:51:51 +00:00
Maxime Coste
53184829ee
Avoid unneeded inc/dec rec in RefPtr::operator=
2015-11-10 13:50:15 +00:00
Maxime Coste
6840f7ce9c
Store the last used buffer in clients
...
Fixes #474
2015-11-07 18:25:49 +00:00
Maxime Coste
1c831b41da
always_inline a few RefPtr operators
2015-11-04 19:47:26 +00:00
Maxime Coste
46f37a6050
Always inline RefPtr::{acquire,release,moved}
2015-02-24 13:43:37 +00:00
Maxime Coste
0a6901899d
Use RefPtr as SafePtr backend
2015-02-23 20:39:56 +00:00
Maxime Coste
8df77121d7
Rename safe_ptr and ref_ptr to SafePtr and RefPtr
2015-02-19 13:58:25 +00:00
Maxime Coste
9b057896d4
Replace std::shared_ptr with homemade, intrusive, ref_ptr
...
That saves a lot of memory as sizeof(SharedString) is now one
pointer less.
2015-01-18 18:23:58 +00:00