[ace-users] Problem in the generation of stubs with forward
declared interfaces.
Douglas C. Schmidt
schmidt at dre.vanderbilt.edu
Fri Aug 10 14:50:49 CDT 2007
Hi Stefano,
Thanks very much for this bug report. Jeff, can you please take a
look at this when you get back to the USA next week?
Thanks,
Doug
> ACE VERSION: 5.5.10
>
> HOST MACHINE and OPERATING SYSTEM:
> Dell, Windows XP
>
> COMPILER NAME AND VERSION (AND PATCHLEVEL):
> Visual Studio 2005 SP1, Visual C++ 8
>
> THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-
> specific file, simply state which one]:
> #if defined FD_SETSIZE
> # undef FD_SETSIZE
> #endif
> #define FD_SETSIZE 4096
> #define ACE_HAS_STANDARD_CPP_LIBRARY 1
> #include "ace/config-win32.h"
>
> AREA/CLASS/EXAMPLE AFFECTED:
> TAO_IDL
>
> DOES THE PROBLEM AFFECT:
> COMPILATION? Yes
>
> SYNOPSIS:
> Problem in the generation of stubs with forward declared
>interfaces referred in re-opened modules.
>
> DESCRIPTION:
>
> TAO_IDL generates wrong stubs when interfaces are forward
>declared in a module and referred in the same re-
>opened module, before the interface has been defined.
>
> REPEAT BY:
>
> Use the TAO_IDL compiler with this idl file:
>
> // test.idl
>
> module Test
> {
> interface A;
> };
>
> module Test
> {
> struct B
> {
> A an_a;
> };
> };
>
> This generates among the other things:
>
> return
> Test::TAO::Objref_Traits<Test::A>::marshal (
> _tao_aggregate.an_a.in (), strm);
>
>
> The problem verifies also if the forward declaration is in
>another file, included in this one.
>
> SAMPLE FIX/WORKAROUND:
>
> Repeat the forward declaration in the re-opened module.
>
>
>Best regards,
>
>Stefano
>
--
Dr. Douglas C. Schmidt Professor and Associate Chair
Electrical Engineering and Computer Science TEL: (615) 343-8197
Vanderbilt University WEB: www.dre.vanderbilt.edu/~schmidt
Nashville, TN 37203 NET: d.schmidt at vanderbilt.edu
More information about the Ace-users
mailing list