Opened 15 years ago

Closed 15 years ago

#1137 closed Bugs (fixed)

Virtual destructor is missing

Reported by: anonymous Owned by: Robert Ramey
Milestone: To Be Determined Component: serialization
Version: Boost 1.34.1 Severity: Problem
Keywords: polymorphic archive destructor Cc: Robert Ramey

Description

The destructor of polymorphic_xml_oarchive gets never called when deleted through polymorphic_oarchive. I posted this to the users list and Robert Ramey already had a solution but it seems to not have made it into 1.34.1 :-(

The result of this is a memory leak and a missing </boost_serialization> tag at the end of the stringstream in the following example:

#include <iostream>
#include <sstream>

#include <boost/archive/polymorphic_oarchive.hpp>
#include <boost/archive/polymorphic_xml_oarchive.hpp>

void main(int argc, char** argv)
{
	std::ostringstream buffer;

	boost::archive::polymorphic_oarchive* archive_interface;
	archive_interface = new boost::archive::polymorphic_xml_oarchive(buffer);
	delete archive_interface;

	buffer.flush();
	std::cout << buffer.str();
}

Change History (1)

comment:1 by Robert Ramey, 15 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.