diff options
author | Benoit Foucher <benoit@zeroc.com> | 2005-06-21 12:40:26 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2005-06-21 12:40:26 +0000 |
commit | 91b10476449de133a15743272be8c5fab8010c7f (patch) | |
tree | 5c721ee19d9d3a8aa228cc9466412a1edd978446 /cpp/src/IceGrid/DescriptorHelper.cpp | |
parent | Fix (diff) | |
download | ice-91b10476449de133a15743272be8c5fab8010c7f.tar.bz2 ice-91b10476449de133a15743272be8c5fab8010c7f.tar.xz ice-91b10476449de133a15743272be8c5fab8010c7f.zip |
Fixes
Diffstat (limited to 'cpp/src/IceGrid/DescriptorHelper.cpp')
-rw-r--r-- | cpp/src/IceGrid/DescriptorHelper.cpp | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/cpp/src/IceGrid/DescriptorHelper.cpp b/cpp/src/IceGrid/DescriptorHelper.cpp index 14525b4fcd2..d9ba7fd861e 100644 --- a/cpp/src/IceGrid/DescriptorHelper.cpp +++ b/cpp/src/IceGrid/DescriptorHelper.cpp @@ -757,14 +757,27 @@ ServerInstanceDescriptor ApplicationDescriptorHelper::instantiate(const ServerInstanceDescriptor& inst) { ServerInstanceDescriptor instance = inst; + pushNodeVariables(inst.node); if(instance._cpp_template.empty()) { - assert(instance.descriptor); - return instance; + // + // We can't re-instantiate here -- this would break escaped variables. + // +// assert(instance.descriptor); +// set<string> missing; +// instance.descriptor = ServerDescriptorHelper(*this, instance.descriptor).instantiate(missing); +// if(!missing.empty()) +// { +// ostringstream os; +// os << "server undefined variables: "; +// copy(missing.begin(), missing.end(), ostream_iterator<string>(os, " ")); +// throw os.str(); +// } + } + else + { + instance.descriptor = _templates->instantiateServer(*this, instance._cpp_template, instance.parameterValues); } - - pushNodeVariables(inst.node); - instance.descriptor = _templates->instantiateServer(*this, instance._cpp_template, instance.parameterValues); _variables->pop(); return instance; } |