From 1a61712b83d18d2965f99867853dc514b6581b49 Mon Sep 17 00:00:00 2001 From: x0r Date: Fri, 9 Aug 2019 01:18:08 +0300 Subject: [PATCH] Implemented solution for indirected sequence type. Trying to check with CI tests Add array type indirection support --- TAO/tao/AnyTypeCode/TypeCode_CDR_Extraction.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/TAO/tao/AnyTypeCode/TypeCode_CDR_Extraction.cpp b/TAO/tao/AnyTypeCode/TypeCode_CDR_Extraction.cpp index 3b8c011094741..6cca984782f49 100644 --- a/TAO/tao/AnyTypeCode/TypeCode_CDR_Extraction.cpp +++ b/TAO/tao/AnyTypeCode/TypeCode_CDR_Extraction.cpp @@ -1392,6 +1392,7 @@ namespace // Only struct, union, event and valuetype TypeCodes may be // recursive. However non-recursive ALIAS may be indirected. || !(kind == CORBA::tk_struct + || kind == CORBA::tk_sequence || kind == CORBA::tk_union || kind == CORBA::tk_value || kind == CORBA::tk_event @@ -1400,6 +1401,15 @@ namespace return false; } + if (CORBA::tk_sequence == kind || CORBA::tk_array == kind) // @todo 1. check if recursion is properly handled 2. check need for other complex types + { + return TAO::TypeCodeFactory::tc_sequence_factory (static_cast (kind), + indir_stream, + tc, + indirect_infos, + direct_infos); + } + // Currently all recursive TypeCodes have complex parameter // lists, meaning they are encoded as CDR encapsulations. TAO_InputCDRByteOrderGuard boguard (indir_stream);