diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-11-10 17:07:50 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-11-10 17:07:50 +0000 |
commit | 825d1b31fd8e178963c509e436ef41c61b7591f4 (patch) | |
tree | 074b74d531fce99f71b37e0ce6e4f945a0dae225 /TAO | |
parent | 1f114fed139378868414d07c22478387f95cb5c0 (diff) | |
download | ATCD-825d1b31fd8e178963c509e436ef41c61b7591f4.tar.gz |
ChangeLogTag: Mon Nov 10 11:03:34 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
Diffstat (limited to 'TAO')
-rw-r--r-- | TAO/ChangeLog | 11 | ||||
-rw-r--r-- | TAO/tao/DynamicAny/DynCommon.cpp | 14 |
2 files changed, 23 insertions, 2 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 6e055cb1a6a..4de74fc3f85 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,12 @@ +Mon Nov 10 11:03:34 2003 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/DynamicAny/DynCommon.cpp (insert_reference): + + Added code to cover CDR insertion of a nil object reference + (an empty string for the type hint, and a 0 for number of + profiles). Thanks to Harvinder Sawhney + <harvinder_sawhney@agilent.com> for reporting the problem. + Mon Nov 10 16:59:13 UTC 2003 Johnny Willemsen <jwillemsen@remedy.nl> * examples/Buffered_AMI/server.cpp: @@ -115,7 +124,7 @@ Sun Nov 9 19:12:40 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu> * tao/PortableInterceptorC.cpp: * tao/PortableInterceptorC.i: - Regenretad the code to keep the Any operators away. We will + Regenerated the code to keep the Any operators away. We will update the diffss and such if we are damn sure that this is going to give us wins. diff --git a/TAO/tao/DynamicAny/DynCommon.cpp b/TAO/tao/DynamicAny/DynCommon.cpp index ef43460ba89..a5ea151f3b8 100644 --- a/TAO/tao/DynamicAny/DynCommon.cpp +++ b/TAO/tao/DynamicAny/DynCommon.cpp @@ -482,7 +482,19 @@ TAO_DynCommon::insert_reference (CORBA::Object_ptr value if (good_type) { TAO_OutputCDR cdr; - value->marshal (cdr); + + if (CORBA::is_nil (value)) + { + // Empty type hint, no profile. + cdr.write_ulong (1); + cdr.write_char ('\0'); + cdr.write_ulong (0); + } + else + { + value->marshal (cdr); + } + TAO::Unknown_IDL_Type *unk = 0; ACE_NEW (unk, TAO::Unknown_IDL_Type (this->type_.in (), |