ACE_Connector::connect失败后,会不会释放SVC_Handler指针啊?
MyServiceHandler * handler= new MyServiceHandler;Connector myconnector;
if(myconnector.connect(handler, addr) < 0)
{
//delete handler;
return -1;
}
上面的代码中,如果在connect失败后,对handler进行delete操作,purify会报FMR、FMW、FUM错误。但是如果注释掉就没有问题了,而且也没有内存泄漏。
现在的问题是:如果connect失败了,ACE是否已经帮我是否了handler指针的内存?如果是的话,为什么不顺便把handler置NULL呢? 连接失败,会自动调用handler的handle_close(),自动删除处理器对象。不会有内存泄漏。
你多删除一次,反而错误了。
顺便置处理器指针为NULL,没必要,不合乎语义。
页:
[1]