Commit Graph

28 Commits

Author SHA1 Message Date
0475ab7208 Adapt to true wchar_t in clang-cl
Change-Id: I14c2dc0be12151b5d4ea2ba3b65030f6f4494905
2015-11-28 08:44:52 +01:00
0b07406f71 Use C++11 char16_t for sal_Unicode
...in LIBO_INTERNAL_ONLY, __cplusplus, non-MSVC case.

It turns out that sal_Unicode happens to not be mangled into any symbols that
make up the stable URE interface, so (for LIBO_INTERNAL_ONLY, at least) we are
free to replace the typedef to sal_uInt16 with a typedef to any integral type
layout-compatible with that.  (sal_Unicode does appear in some symbols in sal's
PRIVATE_textenc.1 section, but that is private between the sal and sal_textenc
libraries, so changing those symbols does not require a change of SONAME.)
C++11 chart16_t is the obvious choice (and will ultimately allow using u"..."
to write literals of type array-of-sal_Unicode).  Reportedly, char16_t is
supported since GCC 4.4 and Clang 2.9 but will only be available in MSVC 2015.

For plain C, we continue to use sal_uInt16.  We could theoretically use C11
char16_t from <uchar.h>, but at least the Mac OS X 10.11 SDK still does not
offer that C11 header.

For MSVC, we continue to use wchar_t (which is actually unsigned short, due to
/Zc:wchar_t-) for now.  Potential options there include dropping /Zc:wchar_t-
and using true wchar_t, or using C++11 char16_t once support for MSVC 2013 is
dropped.

Some code needed to be adapted that was written in a way assuming that
sal_Unicode is unsigned short (which indicates that changing sal_Unicode for
non-LIBO_INTERNAL_ONLY would be an ABI change).  OUStringBuffer::append can now
differentiate between being called with sal_Unicode (to append a single
character) and erroneously being called with sal_uInt16 (intending to append a
number's textual representation, for which the sal_Int32 overload must be used
instead).  Bugs found are 379fe0409e7973b36210cffa3dd1dfd4032f0ecc "Assume that
this code wants to append a number, not a character" and
dc148335a6a438848325f24c49198fba81043279 "Assume this wants to append the
numerical representation."

The GDB support for pretty-printing of sal_Unicode-related data in
solenv/gdb/libreoffice/sal.py can presumably be simplified now.

Change-Id: I445b3a80e65b7cb004d9e08b38bdc9ee93bc9401
Reviewed-on: https://gerrit.libreoffice.org/20036
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
2015-11-18 15:20:43 +00:00
0813839682 Missing includes (for NULL)
Change-Id: Id2359f6ff4bddb2afbc0b346e17cd858f00179e3
2015-11-10 13:14:21 +01:00
4730b58d99 loplugin:nullptr (automatic rewrite)
Change-Id: I17eb40b2923793280ea220e519f97563c8490a19
2015-11-10 10:31:20 +01:00
d4d18b8613 com::sun::star->css in include/cppu
Change-Id: I85e866fc5b52c3bbedd5b54549dba018b70be2f7
Reviewed-on: https://gerrit.libreoffice.org/19485
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2015-10-21 06:36:03 +00:00
cd14c53664 loplugin:cstylecast: deal with remaining pointer casts
Change-Id: I2d60f21219adfe9935ad69620f3a7bd856f96376
2015-06-08 16:24:16 +02:00
71b809959b remove unnecessary use of void in function declarations
ie.
    void f(void);
becomes
    void f();

I used the following command to make the changes:

  git grep -lP '\(\s*void\s*\)' -- *.cxx \
    | xargs perl -pi -w -e 's/(\w+)\s*\(\s*void\s*\)/$1\(\)/g;'

and ran it for both .cxx and .hxx files.

Change-Id: I314a1b56e9c14d10726e32841736b0ad5eef8ddd
2015-04-15 11:47:12 +02:00
2fc4a8c811 Add support for cppu::UnoType<void>
Change-Id: I88259ffaffc73979c240721d2db166c79d3085f1
2015-04-01 12:48:44 +02:00
b49abbbd9d MSVC 2013 doesn't define __cplusplus >= 201103L
...but does support std::remove_reference

Change-Id: I4a702efdea9aad91cee32aca08da755e482e4b88
2015-04-01 09:15:41 +02:00
bb9003c7f8 Make cppu::UnoType<decltype(x)>::get() work when x is of reference type
...using C++11-only std::remove_reference, but decltype is also only C++11, so
3rd party C++03 code should have no need for it anyway.  (Commits acutally
making use of it to follow shortly.)

Change-Id: I8dd7a64ca73d2082a3e7b74d3599848e65e81da5
2015-04-01 08:30:19 +02:00
a52cf476e7 Clean up template-parameter-dependent C-style casts
Change-Id: Ia1ab134a0afbeeb3ae40264bd4233a47df26b734
2015-03-29 15:13:45 +02:00
1777f6fedb Clean up C-style casts from pointers to void
Change-Id: I834eb4ecd0fa71caf6fa746901367fac8b538305
2015-03-28 19:09:18 +01:00
109113c4c8 loplugin:deletedspecial
Change-Id: I4ed4004990f0e98a1095f3b7f4a6d9dac009a4eb
2015-02-07 12:35:57 +01:00
9193a15fc5 Some more loplugin:cstylecast: cppu
Change-Id: Iec1251648031afa9eddd7445135fb08dc74821bd
2015-01-20 09:06:46 +01:00
721366ebe1 cppu: clean up public headers with include-what-you-use
Unfortunately iwyu gets quite confused by the weird cyclic dependencies
between various foo.h/foo.hxx and cppumaker generated headers, so it's
not obvious if any improvement here is realistic...

Change-Id: I0bc66f98b146712e28cabc18d56c11c08418c721
2014-11-18 18:51:48 +01:00
a69927eaf4 unotype.hxx: fix documentation copypasta
Change-Id: I0d84545527195e0f8a48d4217cb332f2e46f2d09
2014-11-18 18:51:48 +01:00
a4b9bfb993 Related fdo#82088: removing and shortening aliases
Change-Id: Iebd9124daffe98b1e38dfa71d8b11f2452e3ddaa
Reviewed-on: https://gerrit.libreoffice.org/11226
Reviewed-by: Thomas Arnhold <thomas@arnhold.org>
Tested-by: Thomas Arnhold <thomas@arnhold.org>
2014-09-02 04:06:58 -05:00
41e3515978 cppu: remove SAL_THROW macro
Change-Id: I2f1909f953846f0d0b6fb402b4beb373bba8b2a8
2014-06-05 08:17:49 +02:00
7a924a4333 fixincludeguards.sh: include 2014-04-19 11:10:05 +02:00
5babf1b903 remove unnecessary scope qualifier from sal_Bool uses
i.e. convert "::sal_Bool" to "sal_Bool"

Change-Id: Ie5943aee4fee617bf2670655558927ed25b7e067
2014-04-03 13:54:02 +02:00
fef7cbd5d5 cppu: Let C++ inline functions return bool instead of sal_Bool
...to improve diagnosing misuses of boolean expressions in client code (cf.
compilerplugins/clang/implicitboolconversion.cxx).  This change should be
transparent to client code.

Change-Id: I4c9a55f8c7d0f05fda617f9b33d93ce78bb8fbeb
2014-01-28 15:54:48 +01:00
81cb6a7fbc [API CHANGE] cppu::Enterable::v_isValid returns bool
While strictly speaking an incompatible change, it is extremely unlikely that
external code uses cppu::Enterable at all; this should always have been a
private URE implementation detail.

Change-Id: I2c3fe754fe6268b18ca03532229f3403736f6f6e
2014-01-10 17:11:43 +01:00
ab16d1c619 CPPU_CURRENT_NAMESPACE is impl detail, mark @deprecated
Change-Id: I4f66403c197bb94ec0ce178f949ece80bab1116f
2013-12-16 21:43:12 +01:00
a83b2af9ab Clean-up uno/lbnames.h
Change-Id: I4bd729499aa8be58f04194656e35c1f79d5d4919
2013-12-16 21:43:12 +01:00
1daa9264d5 fdo#65108 inter-module includes <> include/cppu
Change-Id: I86db12420f5d84e467db72585609f8f144f73dad
2013-11-09 18:48:40 -06:00
0bd7f12d41 fixincludeguards.sh: include/c*
Change-Id: Icba422d99836518a1b662b15144bc9334bed1473
2013-10-23 23:22:30 +02:00
6ea6a422fb s/wiki.services.openoffice.org/wiki.openoffice.org/g
Change-Id: I059fbee385a109069c70f3869021c8e2ee48fee1
2013-09-07 14:21:22 +02:00
6c7659b584 move URE headers to include/
Change-Id: Ib48a12e902f2311c295b2007f08f44dee28f431d
Reviewed-on: https://gerrit.libreoffice.org/3499
Reviewed-by: David Tardon <dtardon@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
2013-04-24 05:17:10 +00:00