...that had once been workarounds for compilers that did not yet support the
C++98 scoping rules for declarations in for-init-statements.
Change-Id: I51dc42982b30bf3adea6de1a10a91c0b4b4acfbe
Exception specifications are useless for production code, but make
for useful assertions in dbgutil builds (on platforms where they
are enforced at runtime).
Because we do not have API tests that exhaustively trigger all
documented error conditions, much less the undocumented or wrongly
handled error conditions that would cause the implementation to violate
its API specification, there is likely some benefit in having these
runtime-checked specifications in debug builds, in the hope that our
various tests which may incidentally call various API methods, or
general soffice usage, uncovers these bugs.
Also, there may be some benefit to making API implementers more
aware of the exception specifications, to quote Stephan's mail:
To be able to programmatically react to an exception raised by a UNO
method (which is the raison d'être of non-runtime UNO exceptions), the
specification of that method must document the method's behavior with
respect to raising that exception, and any implementation of the method
must adhere to that specification. However, with that part of a UNO
method's interface moved out of sight of a programmer writing a C++
implementation of that method, I fear that adherence to specification
will degrade in practice. And that negatively affects an area where we
do not shine anyway: reaction to errors.
This partially reverts commits:
0295bd6b3f155cd09b5e
Change-Id: I9c7664c9f1b238f4f9501aacb065981236949440
The general agreement in the project is that c++ exception
specs are pointless and add bloat in production code.
See also this rant for more background:
http://drdobbs.com/cpp/184401544
This removes the code that generates the exception specs on the
generated c++ headers, and fixes up the few places that broke
subsequently because of widening exception specs, which in turn
was due to the rather unfortunate decision to not have a virtual
dtor in XInterface.
Change-Id: I60db26e1cc4d4fe6eeef5975e39497841e92588a
...as there are typically no direct calls to it anyway. What is apparently
needed is to decorate the cppumaker-generated headers instead:
* cppumaker obtains deprecation-information from the documentation strings in
.rdb files. As these are normally generated by idlc without documentation
included (no -C), idlc got changed to nevertheless contain documentation
consisting of just "@deprecated" in this case, to allow to easily tunnel this
information to cppumaker always.
* The mechanism of parsing for "@deprecated" in documentation strings is
somewhat crude, of course.
* For now, cppumaker only decorates C++ functions that correspond to UNOIDL
interface attributes and methods. More should be possible (but, e.g., being
able to decorate a complete C++ class corresponding to a deprecated UNOIDL
interface type depends on whether all platforms would accept
SAL_DEPRECATED_INTERNAL at the same position in a C++ class declaration.
* This could also be extended to other languages than C++/cppumaker.
* Always using SAL_DEPRECATED_INERNAL instead of SAL_DEPRECATED for decoration
is to keep things simple and our codebase working. Improvements are possible
here, too, of course.
Change-Id: Ia2917892f780d477652e4cd9f286588a6898c3f5
Not needed now when we always generate comprehensive UDKAPI headers in
the configuration where I thought the reverted change helped (it
actually didn't).
This reverts commit 73c3907bce.
Change-Id: Iabbfec9b8e9d6963b31daa52dc574bed01d9eb4c
This is in a Mac build tree using the 10.7 SDK and latest Xcode Clang.
This codemaker-generated type stuff seems awfully fragile. Should we
just bite the bullet and do the "comprehensive" thing for all UDKAPI
types all the time on all platforms? Is that a sane question to ask?
Change-Id: I9d17e76a83ff71898409179acb445832436f7bbd
Needed for some unknown reason in a 64-bit Mac LO. Doesn't do any harm
to have it included everywhere.
Change-Id: I62ae599692bb922678caabe78b7e1c0588573bb2
This is such a fatal error that there is probably no point in trying to handle
it, so allow to simplify client code by removing the requirement to check for a
null return value.
Simplified some client code accordingly (modules configmgr and ure, and the code
generated by cppumaker and javamaker).
Change-Id: I51c0b270ec73409374f7439a47ee061407a46e31
...it is base of XInterfaceTypeDescription2 (included in isBootstrapType), which
ultimately caused uno-skeletonmaker to crash.
Change-Id: I17421f58efd9edd4112532a3221125865cc5560e
Commit 0c80ad06fd broke MacOS X builds
because of this discrepancy. It would be easy to accept both, but I
think it is better to be consistent with gbuild.
...which has the necessary features to support it.
Change a lot of classes to either contain a protected non-virtual dtor
(which is backwards compatible, so even works for cppumaker-generated
UNO headers) or a public virtual one.
cppuhelper/propertysetmixin.hxx still needs to disable the warning, as
the relevant class has a non-virtual dtor but friends, which would still
cause GCC to warn.
Includes a patch for libcmis, intended to be upstreamed.
SAL_UNUSED_PARAMETER (expanding to __attribute__ ((unused)) for GCC)
is used to annotate legitimately unused parameters, so that static
analysis tools can tell legitimately unused parameters from truly
unnecessary ones. To that end, some patches for external modules
are also added, that are only applied when compiling with GCC and
add necessary __attribute__ ((unused)) in headers.
Which causes cppuhelper to pick wrong variant from other library, now that its own
symbols are no longer reduced to private on Mac OS X. As a temporary hack, emit
cppu_detail_getCppuType for the relevant types always as fully comprehensive; should
be revisited when improving types.rdb format (routinely generating C++ information
for certain UNO types into a dedicated library?). Requires a fix to xmlreader and
a fix to forms that looks like a Mac OS X GCC bug.
.hdl failed to declare the inline cppu_detail_getUnoType functions defined in
.hpp, which if client code only includes .hdl instead of .hpp could lead to
runtime failures, now leads to compiler warnings.
2009-04-21 13:42:45 +0200 sb r271035 : removed obsolete psprint dependency
2009-04-21 10:33:31 +0200 sb r271024 : changes to previous -c270971 so that build does not break for USE_SHELL!=bash (but instead resulting bridgetest_xxx scripts are nonfunctional)
2009-04-21 08:56:48 +0200 sb r271017 : merged in cws/sb107 -c 268250 (avoid warnings about format specifier and argument mismatch (on 64bit debug builds))
2009-04-20 16:42:27 +0200 sb r270995 : #i98625# add make_xxx functions for C++ representations of UNO polystructs; fixed and adapted tests (patch by thb, slightly adapted)
2009-04-20 14:23:45 +0200 sb r270981 : #i84751# selective performance improvements (patch by mmeeks, slightly adapted)
2009-04-20 13:39:50 +0200 sb r270978 : #i99711# removed dead code (patch by cmc, slightly modified)
2009-04-20 11:59:39 +0200 sb r270972 : #i97975# avoid crashes during shutdown (patch by cmc, slightly modified)
2009-04-20 11:57:52 +0200 sb r270971 : made tests work again after LD_LIBRARY_PATH clean up
2009-04-20 09:49:32 +0200 sb r270963 : #i95593# made tests work again after LD_LIBRARY_PATH cleanup
2009-04-17 13:52:33 +0200 sb r270941 : merged in cws/sb107 -c 270023 (added svn:ignore)
2009-04-15 13:46:24 +0200 sb r270841 : #i92131# dead code elimination (based on a patch by cmc)
2009-04-15 13:29:27 +0200 sb r270839 : #i100743# use a FastLess for the Data map (based on a patch my mmeeks)
2009-04-15 13:12:11 +0200 sb r270837 : #i100583# dead code elimination (patch by cmc)
2009-04-15 13:02:19 +0200 sb r270835 : avoid bogus Solaris C++ compiler warning when building with debug=x
2009-04-15 11:49:46 +0200 sb r270828 : adapted to cleared LD_LIBRARY_PATH
2009-04-15 10:49:48 +0200 sb r270826 : #i101101# for performance reasons, do not put ComponentContext in unsafe appartment
2009-04-15 10:08:20 +0200 sb r270824 : #i99113# removed duplicated stocservices.uno lib from basis layer
2009-04-14 13:09:13 +0200 sb r270758 : CWS-TOOLING: rebase CWS sb107 to trunk@270723 (milestone: DEV300:m46)
2009-04-06 14:11:54 +0200 sb r270545 : #i100884# improve pagein effectiveness: wrap system libs in --as-needed on unxlngi6/unxlngx6 to avoid needing them where unneeded; link pagein as C program to avoid unneeded C++ runtime dependency; reorder pagein and javaldx in soffice startup script so that javaldx benefits from pagein
2009-03-31 16:40:23 +0200 sb r270287 : decrease collisions in hashCode computation
2009-03-30 11:48:39 +0200 sb r270207 : #i100668# corrected explicit template instantiation
2009-03-26 14:16:26 +0100 sb r270078 : #i100408# inadvertently dropped libexslt dynamic library in previous rev 269789
2009-03-26 10:52:51 +0100 sb r270058 : #i100576# fixed erroneous modification of RPM in previous rev 270057
2009-03-26 10:46:36 +0100 sb r270057 : #i100576# Enable HAVE_LD_HASH_STYLE in sdev300.ini for unxlgni6 and unxlngx6; corrected unxlngx6.mk so that HAVE_LD_HASH_STYLE actually has an effect on ultimate LINKFLAGS value.
2009-03-25 16:53:39 +0100 sb r270038 : #i85679# applied speed-symbolic-functions.diff provided by pmladek; re-ran autoconf; enabled HAVE_LD_BSYMBOLIC_FUNCTIONS for unxlngi6 and unxlngx6 in sdev300.ini
2009-03-25 15:29:12 +0100 sb r270031 : #i100408# missing fixes in addition to -c 269789 (to actually only put single instances of certain libraries into installation sets)
2009-03-25 15:17:10 +0100 sb r270029 : #i10084# revert masterfix additions of libraries to APPnSTDLIBs (during -r269000:269199) and instead use -rpath-link to avoid linker warnings on unxlngi6 and unxlngx6
2009-03-25 14:15:23 +0100 sb r270023 : added svn:ignore
2009-03-25 10:25:08 +0100 sb r270002 : #i10000# copied over trunk -c 269820
2009-03-23 10:16:00 +0100 sb r269858 : CWS-TOOLING: rebase CWS sb107 to trunk@269781 (milestone: DEV300:m44)
2009-03-20 11:22:27 +0100 sb r269789 : #i100408# reduce (multiple copies of) libraries delivered to solver; for that to work fine, deliver symlink feature got improved to only create a symlink if the original file exists
2009-03-20 09:21:32 +0100 sb r269782 : #i100396# replace s(HTML|RTF)_xxx declarations with OOO_STRING_SVTOOLS_(HTML|RTF)_xxx macros to reduce symbolic relocations at load time (at least on ELF systems).
2009-03-19 11:34:56 +0100 sb r269734 : #i100348# added VISIBILITY_HIDDEN=TRUE so that symbols from the resulting archive are not erroneously exported from dynamic libraries including the archive
2009-03-19 11:32:20 +0100 sb r269733 : #i100348# as a prerequisite for following changes, brought jpeg-6b.patch into "dmake create_patch" format and removed application/octet-stream svn:mime-type
2009-03-12 10:39:08 +0100 sb r269370 : duplicated cws/odfmetadata2/solenv/inc/target.mk -c 268831
2009-03-04 17:25:16 +0100 sb r268849 : #i99880# missing AUGMENT_LIBRARY_PATH
2009-02-25 17:54:34 +0100 sb r268459 : CWS-TOOLING: rebase CWS sb107 to trunk@268395 (milestone: DEV300:m42)
2009-02-25 09:23:15 +0100 sb r268413 : #i99584# avoid undefined operations on nOffset (patch by cmc)
2009-02-23 10:02:25 +0100 sb r268344 : #i99519 removed unnecessary library dependencies
2009-02-18 17:54:24 +0100 sb r268250 : avoid warnings about format specifier and argument mismatch (on 64bit debug builds)
2009-02-18 17:50:34 +0100 sb r268249 : avoid erroneous warning that control reaches end of non-void function
2009-02-18 17:33:53 +0100 sb r268248 : sdext/source/pdfimport/misc/pdfihelper.cxx: #include <vcl/canvastools.hxx>