Remove the Segment back-pointer from SegInfo.  The only place it was
being used was in resolve_redir(), and due to the way resolve_redir()
is called, the involved test was always failing anyway.  So we lose
nothing by removing it except some complexity -- there is no longer a
circularity between Segments and SegInfos.







git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4019 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/m_debuginfo/priv_symtab.h b/coregrind/m_debuginfo/priv_symtab.h
index 72a72f7..65c0626 100644
--- a/coregrind/m_debuginfo/priv_symtab.h
+++ b/coregrind/m_debuginfo/priv_symtab.h
@@ -171,7 +171,6 @@
 struct _SegInfo {
    struct _SegInfo* next;	/* list of SegInfos */
 
-   Segment	*seg;		/* first segment we're mapped out of */
    Int		ref;
 
    /* Description of the mapped segment. */
diff --git a/coregrind/m_debuginfo/symtab.c b/coregrind/m_debuginfo/symtab.c
index 62f7cff..2ffad73 100644
--- a/coregrind/m_debuginfo/symtab.c
+++ b/coregrind/m_debuginfo/symtab.c
@@ -1648,8 +1648,6 @@
    si->cfisi_size = si->cfisi_used = 0;
    si->cfisi_minaddr = si->cfisi_maxaddr = 0;
 
-   si->seg = seg;
-
    si->stab_typetab = NULL;
 
    si->plt_start  = si->plt_size  = 0;
diff --git a/coregrind/m_redir.c b/coregrind/m_redir.c
index 3ffa9cd..e787022 100644
--- a/coregrind/m_redir.c
+++ b/coregrind/m_redir.c
@@ -210,11 +210,6 @@
    Bool resolved;
 
    vg_assert(si != NULL);
-   vg_assert(si->seg != NULL);
-
-   /* no redirection from Valgrind segments */
-   if (si->seg->flags & SF_VALGRIND)
-      return False;
 
    resolved = from_resolved(redir);
    vg_assert(!resolved);