summaryrefslogtreecommitdiff
path: root/cpp/src/FreezeScript/DumpDescriptors.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/FreezeScript/DumpDescriptors.cpp')
-rw-r--r--cpp/src/FreezeScript/DumpDescriptors.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/cpp/src/FreezeScript/DumpDescriptors.cpp b/cpp/src/FreezeScript/DumpDescriptors.cpp
index e9335efd8e9..042baabfed3 100644
--- a/cpp/src/FreezeScript/DumpDescriptors.cpp
+++ b/cpp/src/FreezeScript/DumpDescriptors.cpp
@@ -1238,10 +1238,12 @@ FreezeScript::RecordDescriptor::RecordDescriptor(const DescriptorPtr& parent, in
const DataFactoryPtr& factory,
const ErrorReporterPtr& errorReporter,
const IceXML::Attributes& attributes,
- const Slice::UnitPtr& unit) :
+ const Slice::UnitPtr& unit,
+ const FreezeScript::ObjectFactoryPtr& objectFactory) :
Descriptor(parent, line, factory, errorReporter),
ExecutableContainerDescriptor(parent, line, factory, errorReporter, attributes, "record"),
- _unit(unit)
+ _unit(unit),
+ _objectFactory(objectFactory)
{
}
@@ -1251,7 +1253,7 @@ FreezeScript::RecordDescriptor::execute(const SymbolTablePtr& sym, ExecuteInfo*
//
// Temporarily add an object factory.
//
- info->communicator->addObjectFactory(new FreezeScript::ObjectFactory(_factory, _unit), "");
+ _objectFactory->activate(_factory, _unit);
//
// Iterate over the database.
@@ -1320,6 +1322,7 @@ FreezeScript::RecordDescriptor::execute(const SymbolTablePtr& sym, ExecuteInfo*
{
dbc->close();
}
+ _objectFactory->deactivate();
throw;
}
@@ -1327,6 +1330,7 @@ FreezeScript::RecordDescriptor::execute(const SymbolTablePtr& sym, ExecuteInfo*
{
dbc->close();
}
+ _objectFactory->deactivate();
}
//