--- cpp/src/slice2cpp/Gen.cpp.orig 2013-06-23 01:25:10.126254943 +0000 +++ cpp/src/slice2cpp/Gen.cpp 2013-06-23 02:15:02.159048012 +0000 @@ -756,10 +756,11 @@ C << sp << nl << "class " << factoryName << "__Init"; C << sb; + C << nl << "IceInternal::FactoryTableInit* _ftableinit;"; C.dec(); C << nl << "public:"; C.inc(); - C << sp << nl << factoryName << "__Init()"; + C << sp << nl << factoryName << "__Init(): _ftableinit(new IceInternal::FactoryTableInit)"; C << sb; C << nl << "::IceInternal::factoryTable->addExceptionFactory(\"" << p->scoped() << "\", new " << factoryName << ");"; @@ -767,6 +768,7 @@ C << sp << nl << "~" << factoryName << "__Init()"; C << sb; C << nl << "::IceInternal::factoryTable->removeExceptionFactory(\"" << p->scoped() << "\");"; + C << nl << "delete _ftableinit;"; C << eb; C << eb << ';'; @@ -3976,10 +3978,11 @@ C << sp; C << nl << "class " << factoryName << "__Init"; C << sb; + C << nl << "IceInternal::FactoryTableInit* _ftableinit;"; C.dec(); C << nl << "public:"; C.inc(); - C << sp << nl << factoryName << "__Init()"; + C << sp << nl << factoryName << "__Init(): _ftableinit(new IceInternal::FactoryTableInit)"; C << sb; if(!p->isAbstract()) { @@ -4002,6 +4005,7 @@ { C << nl << "::IceInternal::factoryTable->removeTypeId(" << p->compactId() << ");"; } + C << nl << "delete _ftableinit;"; C << eb; C << eb << ';';