aboutsummaryrefslogtreecommitdiff
path: root/gold/ehframe.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2013-03-07 23:27:53 +0000
committerAlan Modra <amodra@gmail.com>2013-03-07 23:27:53 +0000
commit4bead2d512271ca2a0dee6172042558795b134cc (patch)
treec29484fc1a526bea0515641c2080b2e7c45de507 /gold/ehframe.h
parent457f4f60b673ff816b75ee69fc5a1f667335d7bb (diff)
downloadgdb-4bead2d512271ca2a0dee6172042558795b134cc.zip
gdb-4bead2d512271ca2a0dee6172042558795b134cc.tar.gz
gdb-4bead2d512271ca2a0dee6172042558795b134cc.tar.bz2
* ehframe.h (Post_fdes) Make it a vector of Post_fde rather than
pointer to Post_fde. (struct Post_fde): Move definition to here.. * ehframe.cc (struct Post_fde): ..from here. (Cie::write): Don't alloc Post_fde. (Eh_frame::do_sized_write): Update. Don't free Post_fde.
Diffstat (limited to 'gold/ehframe.h')
-rw-r--r--gold/ehframe.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/gold/ehframe.h b/gold/ehframe.h
index de7c109..8aab8b8 100644
--- a/gold/ehframe.h
+++ b/gold/ehframe.h
@@ -246,10 +246,20 @@ class Fde
std::string contents_;
};
-// FDEs stashed for later processing.
+// A FDE plus some info from a CIE to allow later writing of the FDE.
-struct Post_fde;
-typedef std::vector<Post_fde*> Post_fdes;
+struct Post_fde
+{
+ Post_fde(Fde* f, section_offset_type cie_off, unsigned char encoding)
+ : fde(f), cie_offset(cie_off), fde_encoding(encoding)
+ { }
+
+ Fde* fde;
+ section_offset_type cie_offset;
+ unsigned char fde_encoding;
+};
+
+typedef std::vector<Post_fde> Post_fdes;
// This class holds a CIE.