]>
git.ipfire.org Git - thirdparty/elfutils.git/commit
DRAWF libdwfl: Dwfl* caching via dwfl_process_tracker
* libdwfl/libdwflP.h (dwfltracker_dwfl_info): New typedef, provides
indirection to allow a dwfltab entry to be invalidated.
(struct Dwfl_Process_Tracker): add dwfltab.
(__libdwfl_add_dwfl_to_tracker): New function.
(__libdwfl_remove_dwfl_from_tracker): New function.
* libdwfl/dwfl_process_tracker_dwfltab.h: New file.
* libdwfl/dwfl_process_tracker_dwfltab.c: New file.
* libdwfl/dwfl_process_tracker.c (dwfl_process_tracker_begin): Init dwfltab.
(__libdwfl_add_dwfl_to_tracker): New function; add dwfl to dwfltab.
(__libdwfl_remove_dwfl_from_tracker): New function; invalidate dwfl entry.
(dwfl_process_tracker_end): Clean up dwfltab.
* libdwfl/dwfl_frame.c (dwfl_attach_state): Call __libdwfl_add_dwfl_to_tracker.
* libdwfl/dwfl_end.c (dwfl_end): Call __libdwfl_remove_dwfl_from_tracker.
* libdwfl/Makefile.am (libdwfl_a_SOURCES): Add dwfl_process_tracker_dwfltab.c.