Commit Graph

75 Commits

Author SHA1 Message Date
d4810a814c cosmetic 'en-passant'....
Change-Id: I9a787065898004ece4bd55839c563b7395e3a314
2014-07-10 22:11:28 +02:00
73a8c2d6ef coverity#1224979 Missing break in switch
Change-Id: I539ba11497a8c7384b5ca8ee4792548dca139811
2014-07-10 13:39:14 +01:00
1d088b0402 coverity#1224980 Missing break in switch
Change-Id: I17379f596fd8b48bd1015538eacc5265cfa83a82
2014-07-10 13:39:14 +01:00
b7c82d8d62 fix build error 'strlen' is not a member of 'std' locally
Change-Id: I587ef2c38fd9377eef2073a49cd8497b2bd4bf9f
Reviewed-on: https://gerrit.libreoffice.org/10076
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
2014-07-07 13:37:14 +00:00
7af733d9ef tweak assert so comment appears in abort message
Change-Id: Ibf78e5cd1620f0b61cae030e3870be4a6f87e71d
2014-06-27 08:55:56 +01:00
8949bcad40 Remove circular references between unoidl::Manager and its providers
Change-Id: Ic6ad3e2c7f69dd123077a913f35f1971f1e8ca13
2014-05-23 13:44:03 +02:00
d0322208bc Combine unoidl::loadProvider and unoidl::Manager::addProvider
Change-Id: I1240656cc2a4d713c838eb80fa90ce3485aad614
2014-05-23 13:44:03 +02:00
7e487c1959 coverity#1210179 Uninitialized pointer field
Change-Id: I09534eab67c0ae38cd6965c3b63227d92b72c646
2014-04-29 11:40:27 +01:00
a3be376746 unoidl-check: Also check for invalid UNOIDL identifiers
...but only in those parts of registry B that are not also in registry A.  That
way, we can detect newly introduced violations while ignoring the old
(published) violations for backwards compatibility.

Change-Id: Ifb8ea98fffca29647aa6677a5ade86e5b194ddee
2014-04-11 08:41:09 +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
86a32589e9 Find places where OUString and OString are passed by value.
It's not very efficient, because we generally end up copying it twice -
once into the parameter and again into the destination OUString.

So I create a clang plugin that finds such places and generates a
warning so that we can convert them to pass-by-reference.

Change-Id: I5341a6ea9e3190f4b4c05c42c85595e3dcd83361
2014-03-18 08:32:26 +02:00
8bf34faa1e Yet another one undefined comparison of 'const' and a 'non-const' iterators
Fixes:
    no match for ‘operator!=’ in ‘i != std::vector<_Tp, _Alloc>::rend() [with _Tp = rtl::OUString, _Alloc = std::allocator<rtl::OUString>]()’

Change-Id: I7b4ba07ebe51c73893a3d6b77dcf5681b7638efb
Signed-off-by: Stephan Bergmann <sbergman@redhat.com>
2014-02-24 12:32:43 +01:00
54101206ec OK to add optional bases to published old-style services
Change-Id: Ie6f5f2a634171d9618f3229bcc18ad48fff80d35
2014-01-08 10:01:11 +01:00
766cdc8a60 Silence false "may be used uninitialized" warnings
Change-Id: Ie708de4a7fbd34e1ab3c417688de79d5bdf0e0b8
2013-11-27 09:00:39 +01:00
1dc1eaadd1 Fix unoidl sourceprovider old-style service duplicate member checks
Change-Id: Ifa19a427543e76053e9b249c479e1e13f3599bcc
2013-11-26 15:54:34 +01:00
3950919134 Remove outdated TODO (@deprecated annotation are handled fine)
Change-Id: Iab32e6974a181e437630aaae2ea73eb6062ec0ee
2013-11-26 14:08:20 +01:00
e14e4f5351 Duplicate base checking code already covers check for opt base != XInterface
Change-Id: Icd47d87f93641a0b24a96a4be8d3d120f0405f2d
2013-11-26 11:03:41 +01:00
454f3f72c5 Fix unoidl sourceprovider interface base and member checks
...and enable tests shared with idlc

Change-Id: I422b16c9b2636835d276cc2085cb640073894c97
2013-11-25 17:26:17 +01:00
bd21de41e3 Fix unoidl sourceprovider polystruct argument checks
Change-Id: Ib7ee3188b87b9b4216214b65347e34970e1b92a5
2013-11-22 18:58:20 +01:00
add28638db Fix unoidl sourceprovider typedef check
Change-Id: I7faa689c803f83687cfcc39dc7c4fd145584e849
2013-11-22 18:58:20 +01:00
39831b1d17 Fix unoidl sourceprovider recursive struct/exception member check
Change-Id: Icd156745da10011611590b6b62cd0ec2df2b1266
2013-11-22 18:58:20 +01:00
87dc222876 Fix unoidl sourceprovider "published" checks
Change-Id: I93b9fcc2b20ed7a7c160a9ef3294b6e578678f53
2013-11-22 18:58:19 +01:00
d0c12f0aa2 fixincludeguards.sh: uno*
Change-Id: I8fb3c25cd583b688104a0ee8620696e7b2958ab5
2013-11-05 09:28:51 +01:00
bdd55e28fc fdo#67725 unoidl::AggregatingCursor must wrap modules for aggregation, too
Otherwise cppuhelper::TypeManager::createTypeDescriptionEnumeration, sitting on
top such an AggregatingCursor, will miss any entities from provider P' in module
M if any previous provider P contains the same module M.

That happened when climaker generates cli_oootypes.dll, where the enumeration
missed everything from offapi in top-level module "com" because it had already
seen udkapi's "com", and only reported the handful of entities under offapi's
other top-level module "org" (which does not appear in udkapi).

Change-Id: If538391bde22bcc346417b5988cf12023f0d4172
2013-10-24 09:57:09 +02:00
57af2ee947 Allow starts-/endsWith* to also return the rest of the matched string
...as there are many cases where the code later wants to obtain this part, and
esp. for the string literal variants it is awkward to calculate the length of
the literal again if this is coded with a following copy() call.  Adapt some
code to use this new feature.

(Strictly speaking, the @since tags for the---backwards-compatibly---modified
functions are no longer accurate of course.  Also, clean up some sal_Bool and
SAL_THROWS(()) that are unnecesssary cargo-cult here, and where the clean-up
should have no practical compatibility consequences.)

Change-Id: I43e5c578c8c4b44cb47fd08f170b5c69322ad641
2013-10-15 22:52:26 +02:00
215269e303 Silence some false Covertiy scan warnings about uninitialized members
Change-Id: I5e1d870a60f4c0d4b805c615d0e3c958e856bf8c
2013-10-10 14:26:54 +02:00
62828c9e11 Make changes of interface method parameter names a hard failure
...instead of a warning, now that all the deliberate changes have been
addressed.

Change-Id: I6075a36a560bd68826c6840992eefb8f51b939ba
2013-10-10 10:13:37 +02:00
e9ba193f5e keep C++03 compilers happy
Change-Id: I62af395105f51e802b874424b993dcf7e687a78b
2013-09-20 16:56:40 +02:00
60f8d808c2 Reject "too similar" service constructors
Change-Id: Ie81e9994084b5a2f44a436c764318ea6e5049faf
2013-09-20 15:38:02 +02:00
652b0b6d18 Certain UNOIDL typedefs are forbidden for historic reasons
Change-Id: I0fb4ca4e529f5f35e3619bab5e89348dd9c67faf
2013-09-20 10:07:48 +02:00
9960535bf5 Fix indentation
Change-Id: I7814547ef29ec728a5a815196427b661bf285256
2013-09-19 12:41:12 +02:00
b345b3b6bc -Werror,-Wunused-parameter
Change-Id: I331d769132d3b18c870c70c7abcbd9539135af55
2013-09-19 12:40:07 +02:00
63f1fc40fb Prevent conflicts on case-preserving file systems
Change-Id: Ia40f0ce43086fd73cba60011001640a945fb3e26
2013-09-19 12:37:46 +02:00
dc331015a5 Handle special case -(2^63) correctly
Change-Id: Ia3d8931341b2d47ef76265d94410d83f51a068c0
2013-09-19 08:15:03 +02:00
0395d4ba7b typo
Change-Id: I79660ddd3ec9f78452fa484b33a9720cbf8ddc80
2013-09-19 08:09:24 +02:00
cbea5d30b9 New unoidl-check tool to replace regcompare
...for checking compatibility with the reference rdbs.  unoidl-check is no
longer based on the legacy registry format, but can process all the various new
UNOIDL registry formats.  regcompare is still included in the SDK for now.

(gb_UnoApi[Target]_set_reference_rdbfile now takes a non-empty sequence of rdb
files, any necessary dependencies of the final rdf file preceding it just like
it is required on the unoidl-check command line.  Also, executing the
unoidl-check now properly depends on those rdb files.)

TODO: unoidl-check is too conservative for now and flags some changes as
incompatible that are not.

Change-Id: I92e4c69403c5e3fcb31707c98c65a2f509592dd4
2013-09-18 14:44:10 +02:00
53d7f614d5 Unpublished optional bases of published interfaces complicate things
Change-Id: I206b623fcc3c9e04fc5336cb3704315c44fb83b8
2013-09-18 14:44:10 +02:00
e3172bbaa0 Some fixes of the generated .idl output
Change-Id: I2d71e148f302ebfbf8d0fbfc74a7fb523b7bfcd4
2013-09-18 13:39:11 +02:00
65da01fa1d -Wshadow
Change-Id: I8299079b46be4ccb7070f5497d089166a953c939
2013-09-18 11:10:20 +02:00
aa49a5fa0f Missing include
Change-Id: I93d35ca7b784fc6d1b228347053ef0f76904f039
2013-09-17 23:16:43 +02:00
b7ae5b5c92 Clean up includes
Change-Id: I784ba245526f6fbf933ee485df1604e82980d931
2013-09-17 22:46:23 +02:00
ce09d2f07e && vs. & typos
Change-Id: I7475114158d64b8dbe64cd9d1de3415454c762f4
2013-09-17 22:34:23 +02:00
78dde8745e New unoidl-read tool to translate registries into readable .idl files
Change-Id: Ibd6ce23d2698280105469fb75c4afa225dc237ee
2013-09-17 18:30:09 +02:00
3a576e3660 Fix usage message
Change-Id: I7d8b196d047b1e0075acdbf380a9b3ed750a7b90
2013-09-17 18:30:09 +02:00
be55ed02c0 Fix build with Bison 3
The Bison 3 generated sources do not seem to define YYID, so our
YYLLOC_DEFAULT definition was broken. No idea what any of this means,
but sberg said I can safely remove the YYID usage, so if it kills your
pet, you know whom to blame.

Change-Id: I464564be941e0a49da264057923bf8e8e82d5ffd
2013-09-17 12:02:40 +02:00
805738b0ee -Werror=shadow
Change-Id: Ia344d5a68118ba9896672ebbf4cccaf0511f8186
2013-09-17 07:46:07 +02:00
14bc5fc0ec WIP: additional unoidl::Provider that directly reads a single .idl file
Change-Id: Iab795a34a657cb36ced24a1a05f6c21a6c1637aa
2013-09-17 06:55:42 +02:00
6292bba6de Rename SourceProvider -> SourceTreeProvider
Change-Id: Ic864f9c6f3dbbe9f75bdae76818c00f62825182d
2013-09-17 06:55:42 +02:00
d11592ad8e Move full file parsing logic to sourceprovider-parser.y
...in preparation of SourceFile- vs. -TreeProvider.

Change-Id: I4c8f37ade1ba26cb7b38f63211711613d1b98a73
2013-09-17 06:55:42 +02:00
65a1f81a70 Detect reuse of module names for other entities
Change-Id: Ifc8d95b4b15a7dd91195e6f727fdb7fa2a267be9
2013-09-17 06:55:41 +02:00