1
0
Fork 0

fixed small memleak in application server setup

This commit is contained in:
Jan Steemann 2014-04-22 16:36:26 +02:00
parent ce04ec4ae3
commit 4732a42c18
2 changed files with 17 additions and 4 deletions

View File

@ -82,7 +82,8 @@ static bool UnusedDisableAdminInterface;
ApplicationAdminServer::ApplicationAdminServer ()
: ApplicationFeature("admin"),
_allowLogViewer(false),
_pathOptions(0) {
_pathOptions(0),
_jobPayload(0) {
_pathOptions = new PathHandler::Options();
}
@ -91,6 +92,10 @@ ApplicationAdminServer::ApplicationAdminServer ()
////////////////////////////////////////////////////////////////////////////////
ApplicationAdminServer::~ApplicationAdminServer () {
if (_jobPayload != 0) {
delete _jobPayload;
}
delete reinterpret_cast<PathHandler::Options*>(_pathOptions);
}
@ -126,12 +131,14 @@ void ApplicationAdminServer::addBasicHandlers (HttpHandlerFactory* factory,
Dispatcher* dispatcher,
AsyncJobManager* jobManager) {
factory->addHandler(prefix + "/version", RestHandlerCreator<RestVersionHandler>::createNoData, 0);
pair<Dispatcher*, AsyncJobManager*>* data = new pair<Dispatcher*, AsyncJobManager*>(dispatcher, jobManager);
if (_jobPayload == 0) {
_jobPayload = new pair<Dispatcher*, AsyncJobManager*>(dispatcher, jobManager);
}
factory->addPrefixHandler(prefix + "/job",
RestHandlerCreator<RestJobHandler>::createData< pair<Dispatcher*, AsyncJobManager*>* >,
data);
_jobPayload);
}
////////////////////////////////////////////////////////////////////////////////

View File

@ -192,6 +192,12 @@ namespace triagens {
void* _pathOptions;
////////////////////////////////////////////////////////////////////////////////
/// @brief data that needs to be freed at shutdown
////////////////////////////////////////////////////////////////////////////////
std::pair<rest::Dispatcher*, rest::AsyncJobManager*>* _jobPayload;
};
}
}