diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/IFRService/AliasDef_i.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/IFRService/AliasDef_i.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/TAO/orbsvcs/orbsvcs/IFRService/AliasDef_i.cpp b/TAO/orbsvcs/orbsvcs/IFRService/AliasDef_i.cpp index 084bdac4ec0..1bcc20308ff 100644 --- a/TAO/orbsvcs/orbsvcs/IFRService/AliasDef_i.cpp +++ b/TAO/orbsvcs/orbsvcs/IFRService/AliasDef_i.cpp @@ -1,15 +1,17 @@ -/* -*- C++ -*- */ // $Id$ #include "AliasDef_i.h" #include "Repository_i.h" #include "IFR_Service_Utils.h" #include "ace/Auto_Ptr.h" +#include "ace/SString.h" -ACE_RCSID (IFRService, - AliasDef_i, + +ACE_RCSID (IFRService, + AliasDef_i, "$Id$") + TAO_AliasDef_i::TAO_AliasDef_i (TAO_Repository_i *repo) : TAO_IRObject_i (repo), TAO_Contained_i (repo), @@ -60,9 +62,13 @@ TAO_AliasDef_i::type_i (ACE_ENV_SINGLE_ARG_DECL) "original_type", original_type); - TAO_IDLType_i *impl = + TAO_IDLType_i *impl = TAO_IFR_Service_Utils::path_to_idltype (original_type, this->repo_); + if (0 == impl) + { + ACE_THROW_RETURN ( CORBA::OBJECT_NOT_EXIST(), CORBA::TypeCode::_nil () ); + } CORBA::TypeCode_var tc = impl->type_i (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (CORBA::TypeCode::_nil ()); @@ -94,7 +100,7 @@ TAO_AliasDef_i::original_type_def_i (ACE_ENV_SINGLE_ARG_DECL) "original_type", original_type); - CORBA::Object_var obj = + CORBA::Object_var obj = TAO_IFR_Service_Utils::path_to_ir_object (original_type, this->repo_ ACE_ENV_ARG_PARAMETER); |