-SegmentWriter::~SegmentWriter()
-{
- if (object_stream)
- finish_object();
-
- // Write out the object table which gives the sizes and locations of all
- // objects, and then add the trailing signature, which indicates the end of
- // the segment and gives the offset of the object table.
- int64_t index_offset = out->get_pos();
-
- for (object_table::const_iterator i = objects.begin();
- i != objects.end(); ++i) {
- out->write_s64(i->first);
- out->write_s64(i->second);
+ string full_name = segment->name + "/" + id_buf;
+
+ // Store any dependencies this object has on other segments, so they can be
+ // written when the segment is closed.
+ for (list<string>::const_iterator i = refs.begin(); i != refs.end(); ++i) {
+ segment->refs.insert(*i);