Summary: | Exception specification should be removed from operations and attributes. | ||
---|---|---|---|
Product: | TAO | Reporter: | Ossama Othman <ossama.othman> |
Component: | IDL Compiler | Assignee: | Johnny Willemsen <jwillemsen> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | P3 | ||
Version: | 1.4.1 | ||
Hardware: | All | ||
OS: | All | ||
URL: | http://www.omg.org/issues/issue4265.txt | ||
Bug Depends on: | |||
Bug Blocks: | 2181, 1278, 2064 |
Description
Ossama Othman
2004-06-16 01:32:03 CDT
accepted. accepted again. To be clear, the same goes for the skeleton operations, as described in Section 1.38 "Implementing Operations" of the C++ mapping. This will impact footprint also: I just thought about the fact that the footprint build uses emulated C++ exceptions so I can't see the impact of the ACE_THROW_SPEC change I did earlier. For the collocated case I had to remove some ACE_THROW_SPEC from some method definitions I tested this on a Linux system quickly with GCC 3.3.4. I tested things on tao/Adapter_Registry.{h,cpp}. What I did was to remove ACE_THROW_SPEC(CORBA::SystemException) from the dispatch method. With ACE_THROW_SPEC the size is: 2927 bytes Without: 2823. So, about 100 bytes reduction, which is about 3% just by not using ACE_THROW_SPEC. So the bugzilla bug 1852 to not generate ACE_THROW_SPEC does have also benefit our footprint when using native C++ exceptions. This will also give some behaviour change. At the moment an exception is thrown from the deep that is not in the exception specification list we now convert this for most runtimes to an unknown exception using the exception handler. We will loose this functionality when dropping exception specifications. should we make this a tao_idl compiler option which is enabled by default? Yes, once we complete the corresponding changes to the rest of TAO+CIAO. taking this over, merging Ossama changes to the core to handle this, if this works I will zap ACE_THROW_SPEC from all code changed ready in my workspace fixed |