[PATCH v2] release the sorted FDE array when deregistering a frame [PR109685]
Thomas Neumann
thomas.neumann@in.tum.de
Fri May 19 18:50:33 GMT 2023
Am 19.05.23 um 19:26 schrieb Jeff Law:
>> See:
>> https://gcc.gnu.org/pipermail/gcc-patches/2023-May/617245.html
> I think this needs an update given the other changes in this space.
>
> jeff
I have included the updated the patch below.
The atomic fastpath bypasses the code that releases the sort
array which was lazily allocated during unwinding. We now
check after deregistering if there is an array to free.
libgcc/ChangeLog:
* unwind-dw2-fde.c: Free sort array in atomic fast path.
---
libgcc/unwind-dw2-fde.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/libgcc/unwind-dw2-fde.c b/libgcc/unwind-dw2-fde.c
index a5786bf729c..32b9e64a1c8 100644
--- a/libgcc/unwind-dw2-fde.c
+++ b/libgcc/unwind-dw2-fde.c
@@ -241,6 +241,12 @@ __deregister_frame_info_bases (const void *begin)
// And remove
ob = btree_remove (®istered_frames, range[0]);
bool empty_table = (range[1] - range[0]) == 0;
+
+ // Deallocate the sort array if any.
+ if (ob && ob->s.b.sorted)
+ {
+ free (ob->u.sort);
+ }
#else
init_object_mutex_once ();
__gthread_mutex_lock (&object_mutex);
--
2.39.2
More information about the Gcc-patches
mailing list