fix memory leak by API::umake_event
This commit is contained in:
parent
00d2e5408f
commit
663c7d361f
@ -85,7 +85,7 @@ namespace nana
|
|||||||
if (reinterpret_cast<detail::docker_interface*>(evt) == *i)
|
if (reinterpret_cast<detail::docker_interface*>(evt) == *i)
|
||||||
{
|
{
|
||||||
//Checks whether this event is working now.
|
//Checks whether this event is working now.
|
||||||
if (emitting_count_ > 1)
|
if (emitting_count_)
|
||||||
{
|
{
|
||||||
static_cast<docker_base*>(*i)->flag_deleted = true;
|
static_cast<docker_base*>(*i)->flag_deleted = true;
|
||||||
deleted_flags_ = true;
|
deleted_flags_ = true;
|
||||||
@ -134,7 +134,11 @@ namespace nana
|
|||||||
for (auto i = evt_->dockers_->begin(); i != evt_->dockers_->end();)
|
for (auto i = evt_->dockers_->begin(); i != evt_->dockers_->end();)
|
||||||
{
|
{
|
||||||
if (static_cast<docker_base*>(*i)->flag_deleted)
|
if (static_cast<docker_base*>(*i)->flag_deleted)
|
||||||
|
{
|
||||||
|
bedrock::instance().evt_operation().cancel(reinterpret_cast<event_handle>(*i));
|
||||||
|
delete (*i);
|
||||||
i = evt_->dockers_->erase(i);
|
i = evt_->dockers_->erase(i);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user