Commit Graph

213 Commits

Author SHA1 Message Date
09d79da135 coverity#1219788 Unchecked dynamic_cast
Change-Id: I1bedfb601320bc27adc0d0d72fcb8b3c5dfe73ff
2014-07-25 11:46:57 +01:00
e50ef195bc New loplugin:stringconcat
Change-Id: Id7c517fb37bc28797c45fc0dde83e866f2aa4aac
2014-07-01 15:45:52 +02:00
e2080e70fe new compilerplugin returnbyref
Find places where we are returning a pointer to something, where we can
be returning a reference.
e.g.
   class A {
     struct X x;
     public X* getX() { return &x; }
   }
which can be:
     public X& getX() { return x; }

Change-Id: I796fd23fd36a18aedf6e36bc28f8fab4f518c6c7
2014-06-24 11:34:21 +02:00
0e507ae031 various: remove SAL_THROW macro
Change-Id: I9464179a736b91f5bc32eb5e5e89b3b4e3da3494
2014-06-05 08:17:52 +02:00
c6c135930c coverity#1019311 Unchecked return value
Change-Id: I682ca0b62e6eb0d02113218de97d1440089b782c
2014-05-26 15:51:56 +01:00
e947342b9c coverity#1019326 Unchecked dynamic_cast
Change-Id: Ib3f0776048ca3dbb8a7efa4d9240f4ee9d6ac9dd
2014-05-26 15:51:56 +01:00
9c82cb60de coverity#1019329 Unchecked dynamic_cast
Change-Id: Ic340559c9ab9b74f4f932c90e08f2530c08e8d08
2014-05-26 15:51:55 +01:00
353188ecc4 coverity#1019330 Unchecked dynamic_cast
Change-Id: I9c7893f7c9af2b42dcc50f2d1463ec497bb85e30
2014-05-26 15:51:55 +01:00
7d4924a402 improve parameter flow in cpputype.cxx
after commit
  c5d47c327a57df55
  "add default value for Context param in uno::Exception constructors"

Change-Id: Ib429b58c559ecd48764a8df2f49d5470057c2c63
2014-05-23 16:44:25 +02:00
c5d47c327a add default value for Context param in uno::Exception constructors
and all it's subtypes, which is almost never used, so this allows us to
simplify lots of call sites.

Change-Id: I0b05793ea2bdd1027679f63252d42ce4af89433b
2014-05-23 15:05:59 +02:00
8d54796bf1 enhance pass-by-ref plugin to detect large arguments
Detect arguments larger than 64 chars passed by value.

Change-Id: I9b0ea9ccb99d115984a26eab67c9cf6afd5f6cae
Signed-off-by: Stephan Bergmann <sbergman@redhat.com>
2014-05-20 11:17:22 +02:00
934a7925de coverity#1213117 Unchecked dynamic_cast
Change-Id: I6f55030ea7bebce99537c7cdd5156c83c38a765a
2014-05-11 21:06:01 +01:00
2188a7ac2e Reduce the amount of strings in the release builds.
I guess even in the debug builds these strings do not add much info, but...

Change-Id: I5cf765539a821513b5ce77c5484071d181459881
2014-04-14 15:46:22 +02:00
20f14ed4a1 codemaker: sal_Bool->bool
Change-Id: I0a0691df58455b712eb27695f4cce15fd3494b65
2014-04-04 13:44:18 +02:00
362d4f0cd4 Explicitly mark overriding destructors as "virtual"
It appears that the C++ standard allows overriding destructors to be marked
"override," but at least some MSVC versions complain about it, so at least make
sure such destructors are explicitly marked "virtual."

Change-Id: I0e1cafa7584fd16ebdce61f569eae2373a71b0a1
2014-04-01 19:22:54 +02:00
70cc2b191b First batch of adding SAL_OVERRRIDE to overriding function declarations
...mostly done with a rewriting Clang plugin, with just some manual tweaking
necessary to fix poor macro usage.

Change-Id: I71fa20213e86be10de332ece0aa273239df7b61a
2014-03-26 16:39:26 +01:00
07d3807e99 codemaker: sal_Bool -> bool
Change-Id: I2cacac2aa7e48b3b9d8d060137d5c6d6f1d06b3f
2014-02-17 17:55:17 +01:00
9e77c2fb7c Remove UNOIDL "array" and "union" vaporware remnants
...and deprecate what cannot be removed for compatibility.

Change-Id: I1ea335af775b867b468b8285113631167729a92a
2014-01-31 10:15:47 +01:00
fb92c8d6a4 copy&paste typo
Change-Id: I528a6a747e88fe2a4b4abfd9372daddf4e8aa502
2014-01-28 19:47:27 +01:00
3774a6fd94 Support direct ctor calls for singletons too.
Change-Id: I6db797c950b8222b3ad95faff86adf5e7b41ff4b
2014-01-28 18:52:21 +01:00
f5bcc7d91c coverity#440030 Logically dead code
Change-Id: I77428c6cf1f79dcc0e2c5e1d52f9b4b8c88130e3
2014-01-28 11:29:15 +00:00
68ba6ddef5 codemaker: Allow compiler to share these generated strings.
There is really no need to see tons of

component context fails to supply service <something long> of type <something else long>:

and

component context fails to supply service <something long> of type <something else long>

in the binary ;-) - let's split the strings to parts that the linker can
share easily.

Change-Id: I07f149a587c05985045028c3b6530c6efd081ff5
2014-01-27 11:41:15 +01:00
22832569e1 Do not acquire again in direct constructor function calls.
Missing in c2c530da69152ff9192b9726aa95961803ce9b29 "Introduce static
inline cppu::acquire(), and make use of that."

Change-Id: I4a856eeaff1fce3f429c62c1897fe3898371d1ec
2014-01-23 11:41:29 +01:00
306efefe22 Minimize the constructor functions to a bare minimum.
Most of the constructors are supposed to be only a call of

  new TheInstance(arguments)

or an equivalent; so let's just change the constructor caller accordingly, to
accept unacquired new instance.

If there are exceptions that need to do more heavy lifting, they do not have
to use the constructor feature, or there can be a wrapper for the real
implementation, doing the additional work in their (C++) constructor.

Change-Id: I035c378778aeda60d15af4e56ca3761c586d5ded
2014-01-20 17:37:40 +01:00
2dc9f1791a Fix declaration for ctor functions in generated headers.
Change-Id: I329ff80da68c629d7a82921253c4412563743b34
2014-01-20 09:27:20 +01:00
a0ada918c1 Initialize also implementations created directly by generated function.
This was forgotten in commit bdeb57c23973f3ef79020847b2fe39f312cf3c0b.

Change-Id: Idd339222e3c464abc2524f78f16c8fe0a02dcd5b
2014-01-18 17:02:35 +01:00
e500b25b08 ...and support direct calls of non-default ctors, too
Change-Id: I507a5664e642c75f6e9e9fe0c95c97ea76a8e5b3
2013-12-19 16:54:36 +01:00
15abebbde5 WIP: Direct service ctor calls at least on Android/iOS
Change-Id: I8a1907bc4b8f2134efb15d38a0fb5176b4384317
2013-12-19 14:42:10 +01:00
944a086d92 if there is one typo, its guaranteed to duplicated somewhere
Change-Id: Ia81069afa47fa5790b973247c68bead7de87d718
2013-12-17 10:26:21 +00:00
0bc89aac4c cppumaker: Allow UNO interface functions to throw std::exception
...so that exceptions like std::bad_alloc need not be treated in C++
implementations of UNO interfaces to not cause std::unexpected.  Of course, this
requires implementations to be adapted and actually mention std::exception in
their exception specifications.

Change-Id: Ie7f91e7ca47d8a81e3d0ba817e65d83c7823af75
2013-10-20 16:10:53 +02:00
44b96b1d76 fdo#70285 cleanup generated C++ code
Change-Id: Ic43628de53c5139ef43bb48723fb1e0788af1cd1
Signed-off-by: Stephan Bergmann <sbergman@redhat.com>
2013-10-20 16:10:53 +02:00
254f59f623 rhbz#1014010: Missing dependencies in isBootstrapType list
...the list has been fixed now by copying its elements into an ENTRIES file and
running "unoidl-write udkapi/ @ENTITIES TEMP && unoidl-read TEMP >/dev/null" and
adding any reported unknown entities until it succeeds.

However, the updated list lead to deadlock when css.reflection.ParamInfo UnoType
resolves css.reflection.XIdlClass UnoType resolves css.reflection.XIdlMethod
UnoType resolves css.reflection.ParamInfo UnoType, so broke the circle by no
longer resolving the interface methods' return and parameter types in
InterfaceType::dumpMethodsCppuDecl (which is why those type infos are only
generated on demand anyway; looks like this had been a careless thinko in the
generation of comprehensive type info that had remained unnoticed all the time).

Change-Id: I50ef2fde16242298e055c6fa5971e70fad1a2b68
2013-10-01 14:44:44 +02:00
a80fb45fe4 Revert "WIP: add cppumaker -U to directly read from .idl files"
This reverts commit c4113906d7f15f8aa0eb385a4caf474b3505ede1, which is not
necessary after all with recent "Hook SourceProvider into unoidl::loadProvider."
2013-09-16 13:29:49 +02:00
c4113906d7 WIP: add cppumaker -U to directly read from .idl files
Change-Id: I420847515b6b691ae81a249a8820cf9a3d132372
2013-09-12 17:45:12 +02:00
54dd4ae0dd Add cppumaker -nD "no dependent types are generated"
...just like javamaker.

Change-Id: I7634a65a948ca7abdb7ad75d0aeca8becb38ab87
2013-09-12 15:28:11 +02:00
2618ff4734 UNO interface UIKs are unused for a very long time
...so mark them as @deprecated more thoroughly and always force them to zero.

Change-Id: I5db2dab924fc5a4145a0e5dd055b654985ce2ef9
2013-09-04 14:37:54 +02:00
e39e9e4cd8 Source files shouldn't have executable bit set.
Change-Id: Iafad6249a7998d7c749c1ca2979a606078cfcb5e
Reviewed-on: https://gerrit.libreoffice.org/4070
Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org>
Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
2013-05-28 12:09:27 +00:00
a1dff2901e Support for annotations in the new UNOIDL format
...used for now to transport @deprecated information.

Also, improve Idx-String (formerly Idx-Name, but also used for UTF-8 annotations
now) format, using the 0x80000000 for the indirection rather than the base case.
(And the README erroneously used "Offset of" Idx-String all over the place.)

Change-Id: I7003b1558ab536a11a9af308f9b16a7ef8840792
2013-05-16 16:12:45 +02:00
53d7ae8c6b cppcheck: unusedVariable (parameters)
Change-Id: I0a7f230cb7e36857079de20a535cd883e30fd46f
2013-05-12 22:53:28 +02:00
bab43b23d5 Allow for (relative) pathname args for codemakers again
Change-Id: I503d88b7d6fc44ef70d5071fddcec465e3fba856
2013-04-24 12:42:01 +02:00
048e591819 Further codemaker, unodevtools clean-up
...getting rid of now dangling references to module registry.

Change-Id: Iccad7ff5dc0e79bf91b7b7dae03b73f16adeb121
2013-04-16 17:38:44 +02:00
4b73d334a9 Further adapt CppuType::dumpCppuGetType to using unoidl/ instead of registry/
Change-Id: Ib46d7b8934f63d88ea953707fa1fbfb51c524efd
2013-04-15 10:38:33 +02:00
358b60b3b1 Minor terminology clean-up
Change-Id: I4fa4431978f049a7b5b201d89743f909bc120ff4
2013-04-11 09:29:44 +02:00
02a8e8acd1 [API CHANGE] WIP: Experimental new binary type.rdb format
Make cppumaker work on top of unoidl/ instead of registry/, as a first step to
change all the various codemakers.

* API CHANGE: cppumaker no longer supports the -B switch, as that is meaningless
  with the new format.  When reading from an old-format .rdb file, /UCR is
  hard-coded as the prefix now.

* TODO: The new format does not yet support deprecation annotations, so the
  generated .hdl/.hpp files lack any SAL_DEPRECATED_INTERNALs for now.

* codemaker/typemanager.hxx is extended with access to unoidl/ functionality, so
  the various codemakers can use registry/ and unoidl/ in parallel for now.
  The access to registry/ functionality will be removed.  (Added small throwaway
  helper functions u2b/b2u to easily map between OString and OUString at the
  remaining seams for now.)

* Includes a selective revert of ba044b1e9613ed30906a9a540b7da8392923e4e3
  "remove needless forward rtl::OUString declarations" in those parts of
  codemaker, unodevtools, unoidl that were covered by this local
  work-in-progress patch; I would otherwise have hard a hard time re-applying
  it.

* The generated .hdl/.hpp files are mostly unchanged, except for a few minor
  things:

** Any SAL_DEPRECATED_INTERNALs are missing (see above).

** In comprehensive getCppuType definitions, some members were erroneously
   classified as TypeCalss_UNKNOWN.

** In comprehensive getCppuType definitions, some unnecessary calls like

     ::cppu::UnoType< ::sal_Int32 >::get();

   can be removed.

** For typedef sequence<X>, the .hdl file need not include X.hdl, but only needs
   to forward-declare it.

** Unnecessary includes for optional bases of interfaces can be removed.

** Some numbering of local variable names (sMethodName1, ...) has changed.

Change-Id: Icad98f248ac15177337f1b4ab709a755a8af6238
2013-04-09 09:44:33 +02:00
1946794ae0 mass removal of rtl:: prefixes for O(U)String*
Modules sal, salhelper, cppu, cppuhelper, codemaker (selectively) and odk
have kept them, in order not to break external API (the automatic using declaration
is LO-internal).

Change-Id: I588fc9e0c45b914f824f91c0376980621d730f09
2013-04-07 14:23:11 +02:00
bb1f0c667f Clean up codemaker/typemanager.hxx
Change-Id: I650efd6780070410eaf34993dd41ed1b8ada7c9a
2013-03-27 09:36:54 +01:00
8d7cc6792a css.beans.PropertyValue references css.beans.PropertyState
...so include the latter in isBootstrapType too, see
dee53a32a9feba2021782db5762b5a9a034efae4 "Temporary hack around
cppu_detail_getCppuType variants violating ODR."

Change-Id: I613cf3d8699eccb149e0e1d31f4398a426ce0966
2013-03-11 12:16:37 +01:00
9edeb948a2 Removed last RTL_CONST* macros from codemaker
Also, change ".equals" fro "==" and drop a useless function.

Change-Id: I5ce4fd2cc7c62a18e059e945b42cc01425802aa0
Reviewed-on: https://gerrit.libreoffice.org/2605
Reviewed-by: Olivier Hallot <olivier.hallot@alta.org.br>
Tested-by: Olivier Hallot <olivier.hallot@alta.org.br>
2013-03-09 23:29:39 +00:00
596334776a Remove RTL_CONST* macros from codemaker - pt1
For more easy review, this is the first part of these changes.

More will come :)

Change-Id: Ic6ab0c7baebf0414dbcccb5dcfad434b3b07964c
Reviewed-on: https://gerrit.libreoffice.org/2595
Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org>
Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
2013-03-08 13:02:22 +00:00
75e6856b08 fdo#57950: Remove chained appends in codemaker
And another cleanups like removing RTL_CONST* macros and other simple
things.

Much more can be done inside codemaker.

Change-Id: I338e1c0e88558124741c6202896355533535a129
Reviewed-on: https://gerrit.libreoffice.org/2583
Reviewed-by: Thomas Arnhold <thomas@arnhold.org>
Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org>
Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
2013-03-08 04:31:03 +00:00