summaryrefslogtreecommitdiffstats
path: root/cpukit/libdl/rtl-debugger.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libdl/rtl-debugger.c')
-rw-r--r--cpukit/libdl/rtl-debugger.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/cpukit/libdl/rtl-debugger.c b/cpukit/libdl/rtl-debugger.c
index 63add5956e..afbea8ab44 100644
--- a/cpukit/libdl/rtl-debugger.c
+++ b/cpukit/libdl/rtl-debugger.c
@@ -45,10 +45,10 @@ _rtld_debug_state (void)
int
_rtld_linkmap_add (rtems_rtl_obj_t* obj)
{
- struct link_map* l = (struct link_map*)obj->detail;
+ struct link_map* l = obj->linkmap;
struct link_map* prev;
- uint32_t obj_num = obj->obj_num;
- int i;
+ uint32_t obj_num = obj->obj_num;
+ int i;
if (rtems_rtl_trace (RTEMS_RTL_TRACE_DETAIL))
printf ("rtl: linkmap_add\n");
@@ -78,8 +78,10 @@ _rtld_linkmap_add (rtems_rtl_obj_t* obj)
void
_rtld_linkmap_delete (rtems_rtl_obj_t* obj)
{
- struct link_map* l = (struct link_map*)obj->detail;
- /* link_maps are allocated together if not 1 */
+ struct link_map* l = obj->linkmap;
+ /*
+ * link_maps are allocated together if not 1
+ */
struct link_map* e = l + obj->obj_num - 1;
while (e && e->l_next) e = e->l_next;
@@ -90,7 +92,7 @@ _rtld_linkmap_delete (rtems_rtl_obj_t* obj)
e->l_next->l_prev = NULL;
return;
}
+
if ((l->l_prev->l_next = e->l_next) != NULL)
e->l_next->l_prev = l->l_prev;
- return;
}