Commit Graph

1158 Commits

Author SHA1 Message Date
49d304c4f6 tdf#120706: nullptr dereference
Change-Id: I55814a6b4cdfda93a51621b5b31c166507a7e7a6
Reviewed-on: https://gerrit.libreoffice.org/62005
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-10-19 20:31:22 +02:00
9ec8bf8f22 add SvStream::TellEnd
and simplify callsites to use it instead of the current
    "seek to end, find pos, seek back to original pos"
pattern

Change-Id: Ib5828868f73c341891efc759af8bd4695ae2f33c
Reviewed-on: https://gerrit.libreoffice.org/61738
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-15 07:56:42 +02:00
7ceee0f1ec Extend loplugin:redundantinline to catch inline functions w/o external linkage
...where "inline" (in its meaning of "this function can be defined in multiple
translation units") thus doesn't make much sense.  (As discussed in
compilerplugins/clang/redundantinline.cxx, exempt such "static inline" functions
in include files for now.)

All the rewriting has been done automatically by the plugin, except for one
instance in sw/source/ui/frmdlg/column.cxx that used to involve an #if), plus
some subsequent solenv/clang-format/reformat-formatted-files.

Change-Id: Ib8b996b651aeafc03bbdc8890faa05ed50517224
Reviewed-on: https://gerrit.libreoffice.org/61573
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-10-09 14:47:17 +02:00
206b5b2661 New loplugin:external
...warning about (for now only) functions and variables with external linkage
that likely don't need it.

The problems with moving entities into unnamed namespacs and breaking ADL
(as alluded to in comments in compilerplugins/clang/external.cxx) are
illustrated by the fact that while

  struct S1 { int f() { return 0; } };
  int f(S1 s) { return s.f(); }
  namespace N {
    struct S2: S1 { int f() { return 1; } };
    int f(S2 s) { return s.f(); }
  }
  int main() { return f(N::S2()); }

returns 1, both moving just the struct S2 into an nunnamed namespace,

  struct S1 { int f() { return 0; } };
  int f(S1 s) { return s.f(); }
  namespace N {
    namespace { struct S2: S1 { int f() { return 1; } }; }
    int f(S2 s) { return s.f(); }
  }
  int main() { return f(N::S2()); }

as well as moving just the function f overload into an unnamed namespace,

  struct S1 { int f() { return 0; } };
  int f(S1 s) { return s.f(); }
  namespace N {
    struct S2: S1 { int f() { return 1; } };
    namespace { int f(S2 s) { return s.f(); } }
  }
  int main() { return f(N::S2()); }

would each change the program to return 0 instead.

Change-Id: I4d09f7ac5e8f9bcd6e6bde4712608444b642265c
Reviewed-on: https://gerrit.libreoffice.org/60539
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-09-17 09:05:38 +02:00
b678dee6a8 cppcheck: variableScope in basic
use a range based loop in one case

Change-Id: I3d3acc35739634797e2b6e4d1cc2909b3fe33750
Reviewed-on: https://gerrit.libreoffice.org/60188
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-08 14:45:42 +02:00
24eae7bd70 clang-tidy performance-unnecessary-value-param
Change-Id: I69247498e13331f6ef84afeb242479f8fb1178a8
Reviewed-on: https://gerrit.libreoffice.org/60068
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-06 09:54:25 +02:00
c2139cafe6 loplugin:simplifyconstruct in accessibility..bridges
Change-Id: I08f6a64b50f03d1b08027a2ac9e51442255d64bc
Reviewed-on: https://gerrit.libreoffice.org/59976
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-05 09:28:12 +02:00
bdfa446d2e loplugin:useuniqueptr in SbiDdeControl
Change-Id: I7bded977d12b6105c15a4343206dc43d66b910c6
Reviewed-on: https://gerrit.libreoffice.org/59974
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-04 15:39:05 +02:00
7a0f3d16e3 Translate German comments
Change-Id: I1a4e41ccd3e3eb829419c45edd0417776a73c3ae
Reviewed-on: https://gerrit.libreoffice.org/59285
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2018-08-19 18:48:44 +02:00
5b8007afdb Resolves: tdf#119013 do not over-aggressively reorder date particles
In particular not when reading documents as we don't know what the
original (default/system) locale was when the date format was
created and stored and whether the format's date order actually
matched the locale's ordering.

Regression from

    commit 51478cefaa4e265b42e3f67eda0a64767ff3efba
    CommitDate: Tue Apr 18 17:01:27 2017 +0200

        Resolves: tdf#107012 follow date order of the target locale

Change-Id: I9d3bdbd512d95ed81ff6459e368a2d7497ec8a2d
Reviewed-on: https://gerrit.libreoffice.org/59182
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2018-08-16 18:54:31 +02:00
cd66852f6d create appendCopy method in OUStringBuffer
so we can avoid temporary copies when appending a substring of an
OUString to the buffer. I would have preferred to call the method just
"append" but that results in ambiguous method errors when the callsite
is something like
   sal_Int32 n;
   OUStringBuffer s;
   s.append(n, 10);
I'm not sure why

Change-Id: I6b5b6641fcb5b26ce2269f89ef06e03c0b6aa76f
Reviewed-on: https://gerrit.libreoffice.org/58666
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-14 08:35:00 +02:00
60c5543021 Fix typos
Change-Id: I47725a9f56528a88cd3db1798eae954eff337560
Reviewed-on: https://gerrit.libreoffice.org/58611
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2018-08-13 21:47:54 +02:00
d977e02ec6 unnecessary null check before dynamic_cast, in various
Change-Id: I76ad0b3152030c29ee28f6a6cc80d0832188d02b
Reviewed-on: https://gerrit.libreoffice.org/58774
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-10 08:21:55 +02:00
2858011080 add operator+=(OUStringBuffer) method to OUString
to reduce needless object creation and copying some more

And fix what looks like a bug in CSS hex color parsing at line
609 in sw/../parcss1.cxx that has been there since
commit 7b0b5cdfeed656b279bc32cd929630d5fc25878b "initial import"

Change-Id: Ibad42b23721a56493bd1edcd7165e6104494a5c3
Reviewed-on: https://gerrit.libreoffice.org/58357
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-01 21:39:28 +02:00
b83cc2b010 loplugin:stringloop in basic, framework, sax, svtools
Change-Id: I2bad74a8f103e9dc68c8e0d0e6315697068d2f6d
Reviewed-on: https://gerrit.libreoffice.org/58135
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-07-27 11:35:24 +02:00
ea96a4815e Fix typos
Change-Id: If6e6df9ac592c77f19e381e50b7eb26fbf429f61
Reviewed-on: https://gerrit.libreoffice.org/57831
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2018-07-23 23:40:22 +02:00
618e1fdac1 Fix typos
Change-Id: I563ea72a1e3870f5c362527f018c6b63607b4011
Reviewed-on: https://gerrit.libreoffice.org/57597
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-07-18 09:52:44 +02:00
7af90cc93b Add missing sal/log.hxx headers
rtl/string.hxx and rtl/ustring.hxx both unnecessarily #include <sal/log.hxx>
(and don't make use of it themselves), but many other files happen to depend on it.
This is a continuation of commit 6ff2d84ade299cb3d14d4110e4cf1a4b8070c030
to be able to remove those unneeded includes.

This commit adds missing headers to every file found by:
grep -FwL sal/log.hxx $(git grep -Elw 'SAL_INFO|SAL_INFO_IF|SAL_WARN|SAL_WARN_IF|SAL_DETAIL_LOG_STREAM|SAL_WHERE|SAL_STREAM|SAL_DEBUG')
to directories from a* to configmgr

Change-Id: I6ea1a7f992b1f835f5bac7a725e1135abee3f85a
Reviewed-on: https://gerrit.libreoffice.org/57170
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-07-09 10:49:06 +02:00
7283125c56 tdf#118218: Make FormatNumber VBA-only
0f7a7c8e719dab6b79e24285b907b5be17f39fc8 follow-up

Change-Id: I79ed02770a4321401f250b85b04ef66d476a67df
Reviewed-on: https://gerrit.libreoffice.org/56742
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-06-30 09:43:23 +02:00
0f7a7c8e71 tdf#118218: Implement FormatNumber VBA function
The existing unit test (previously non-functional because of defunct
success condition) is fixed and extended.

Change-Id: I2544f865144b25f51a5f0941e5d961f246f41c4b
Reviewed-on: https://gerrit.libreoffice.org/56610
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-06-29 21:06:12 +02:00
f1514f903c loplugin:includeform (clang-cl)
Change-Id: Ia15fc0ea8d46cd4eab6ca690e1dac3a530512ab6
Reviewed-on: https://gerrit.libreoffice.org/55170
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-06-01 14:16:22 +02:00
44391aec4a Add missing include
Change-Id: I645e25d6dcff1d395760f3a9980858a4c4ac1378
Reviewed-on: https://gerrit.libreoffice.org/54923
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2018-05-28 20:24:24 +02:00
f122faeede basic: Avoid looking up system clock twice to get current datetime
Change-Id: I3de322a420bdbbd7906160b97dca531dfe3092a4
Reviewed-on: https://gerrit.libreoffice.org/53929
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Takeshi Abe <tabe@fixedpoint.jp>
2018-05-28 11:32:14 +02:00
ff3bdde252 loplugin:passstuffbyref
Change-Id: I785e96599bbda029adf4698d11d7f981750dec07
Reviewed-on: https://gerrit.libreoffice.org/54802
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-05-25 21:46:32 +02:00
b9ebabd675 tdf#97231: basic: do not use extra wrapping for string marshaling
previous approach did wrap string reference once again, making
practically "a pointer to pointer to string" so this code was not
working correctly for RegQueryValueExA WinAPI call.

String is already provided as a reference (see marshalString(), so
no reason to wrap its reference.

This approach was just copied from from dllmgr-x86.cxx plus some
minor changes to make both versions similar.

Change-Id: I85065112407de3f078265d2c76437814402eb1b3
Reviewed-on: https://gerrit.libreoffice.org/54645
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-05-22 01:07:46 +02:00
de9620dd45 tdf#97231: potential crash fixed
blob2 pointer can be invalidated during marshalString() call,
because it also adds new element in data vector and thus later
access to blob2 can cause crash.

Change-Id: I2de519c363193f34b249e7250a016397b7420882
Reviewed-on: https://gerrit.libreoffice.org/54613
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-05-21 15:41:09 +02:00
649313625b New o3tl::temporary to simplify calls of std::modf
...that ignore the out-parameter integral part

Change-Id: I05f07c1a8909023232f8aecf75ea5541d4eb81ca
Reviewed-on: https://gerrit.libreoffice.org/54474
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
2018-05-17 21:03:12 +02:00
40c9a129e5 Resolves: tdf#117612 truncate DateAdd("m",...) to last day of month
... instead of resulting in error because of roll-over not being set.

Fallout from

    commit 6d424f07701bf26d8fb173563b567d5f097c33e2
    CommitDate: Tue May 2 23:12:34 2017 +0200

        Replace mouth-painted "inaccurate around leap year" rollover algorithm

that does stricter checking but DateAdd() needs a lax checking
with truncate to last day of month.

Change-Id: I9d6f95ad3ac38257d492019bd621070491e98e76
2018-05-16 11:38:53 +02:00
657668c378 Related: tdf#116579 tell SvNumberFormatter the proper NfEvalDateFormat
So far Basic relied on the side effect of date acceptance patterns
selected according to the passed format's locale, which changed
with the (temporarily reverted) commit
dfb9138b8b5a239b46f189a717999bcaff19aa79. Explicitly tell the
formatter the behavior to use.

Change-Id: I9819399df69bdfa36d79bc9db116dec37a85cbeb
Reviewed-on: https://gerrit.libreoffice.org/53787
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
2018-05-04 00:28:59 +02:00
4cb78942f2 loplugin:expressionalwayszero (clang-cl)
Change-Id: If47b5bb3436ebdf799b74f7c0070f674ab52804e
2018-04-20 08:53:16 +02:00
d43fa87fbc weld SbiInputDialog
this is basically the same as SvRTLInputBox

Change-Id: Idbf0f58cf51ea706928e18b81ce80088015dccc4
Reviewed-on: https://gerrit.libreoffice.org/52763
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-04-12 14:04:53 +02:00
6672151fbb weld SvRTLInputBox
This (forgotten) dialog is the statbasic "InputBox" dialog

Change-Id: Ifb65fb382be7bd6b5a2ba904e0cb64ddce2485a8
Reviewed-on: https://gerrit.libreoffice.org/52749
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-04-12 10:52:01 +02:00
cc20344010 tdf#111313: Honor bWriteNoLenParam in !bCompatibility, too
e8deba22e887a972f60ff05551e93c334ac1e7b6 "INTEGRATION: CWS ab26" had added
the bCompatibility case with all the argument checking ("2006/05/04 08:33:46 ab
1.66.10.3: #111951# Changed Mid runtime behaviour only for
CompatibilityMode(true)"), and it was probably an oversight that, for
!bCompatibility, it left the bWriteNoLenParam case (triggered by Basic code like

  s = "abc"
  Mid(s,1) = "d"

) calling OUStringBuffer::remove with an illegal argument of len=-1.

Change that so that only setting ERRCODE_BASIC_BAD_ARGUMENT is controlled by
bCompatibility, while all the other checks (that are probably all necessary to
not call rtl string functions with illegal arguments) are done in both modes.

Also, the check

  nStartPos + 1 > nArgLen

should probably be

  nStartPos > nArgLen

instead, as nStartPos has already been decremented from the one-based Basic
index to the zero-baesd rtl string index.

Change-Id: I75deec0acf75b8677aa89f91897c06c1caa5614d
Reviewed-on: https://gerrit.libreoffice.org/52500
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-04-06 14:56:20 +02:00
9fcef57a34 convert Redline warning dialog to .ui to get helpids
etc.

Change-Id: Ic5e6031fe99347f19002d5d8527b5632333fefb0
Reviewed-on: https://gerrit.libreoffice.org/50431
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-02-27 17:25:59 +01:00
0fad8d3081 convert remaining WarningBox to weld::MessageDialog
Change-Id: I7e3c156a6ad47ac232636ae274280c1cb7556d4a
2018-02-27 09:52:32 +00:00
d75144cf44 convert remaining InfoBox to weld::MessageDialog
Change-Id: I91d828e38d96264cf4a76f30940942556b8f78d8
Reviewed-on: https://gerrit.libreoffice.org/50205
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-02-25 20:03:26 +01:00
1daf4db963 Blind fix for 3ceb01afc3e5f47930e24fb0b21e6e85b86f660e
Change-Id: I01649065c93de368f900eb836a0467693f361f68
Reviewed-on: https://gerrit.libreoffice.org/50297
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-02-25 12:02:53 +01:00
3ceb01afc3 Use for range loops in basegfx and basic
Change-Id: I5b2086c245695aeb30630150b3c5ccf61fbd6a56
Reviewed-on: https://gerrit.libreoffice.org/50280
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-02-24 17:28:43 +01:00
bddd6c7781 Revert "loplugin:changetoolsgen in avmedia..basic" and reapply plugin
because I
(a) forgot to insert parentheses which changes the meaning of some expressions and
(b) I now use the AdjustFoo calls when changing unary operations, which reads much better

This reverts commit 1adb1a320a7e9832a41545bde13fd59d27ce7954.

Change-Id: I52924b35008c8e4b44c8a6b6657cc3a1ac513886
Reviewed-on: https://gerrit.libreoffice.org/49848
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-16 19:50:47 +01:00
1adb1a320a loplugin:changetoolsgen in avmedia..basic
Change-Id: I4e355ae27b9fad1cc6e8f8f408dbd9e93d7256d7
Reviewed-on: https://gerrit.libreoffice.org/49603
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-13 07:38:03 +01:00
7c7aa4e307 loplugin:pointerbool (clang-cl)
Change-Id: Idaf9e1858afb8f22bba1767470138ec820a8d7cb
2018-01-25 08:13:11 +01:00
9af8f190ed More loplugin:cstylecast on Windows
Automatic rewrite (of loplugin:cstylecast and loplugin:unnecessaryparen) after
cab0427cadddb3aaf1349c66f2fa13a4234ba4b2 "Enable loplugin:cstylecast for some
more cases" and a409d32e7f6fc09e041079d6dbc3c927497adfed "More
loplugin:cstylecast"

Change-Id: Ib3355159dd08333e1b7a8d091caf2069cdcc7862
Reviewed-on: https://gerrit.libreoffice.org/48317
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-01-23 07:54:51 +01:00
000fa4c495 loplugin:useuniqueptr in SbiStdObject
Change-Id: Ic66d817746de423549c87f58068e47f9942d04fd
2018-01-19 08:58:46 +02:00
5954878448 loplugin:useuniqueptr in SbiGlobals
Change-Id: I0ebec3193b4369039f90be4223ebdf6d048b8478
2018-01-19 08:58:46 +02:00
263d732569 loplugin:useuniqueptr in SbModule
Change-Id: I20525bd69c91ff35c9e569525a0d4556bc184982
2018-01-19 08:58:46 +02:00
3a40d3de89 More loplugin:cstylecast: basic
Change-Id: I0bb219632da384ab047a2b1fc3f2b041dacaf2cb
2018-01-15 09:07:14 +01:00
6070aaa47d More loplugin:cstylecast: basic
auto-rewrite with <https://gerrit.libreoffice.org/#/c/47798/> "Enable
loplugin:cstylecast for some more cases" plus
solenv/clang-format/reformat-formatted-files

Change-Id: I20b38196ee1b6a34384dc46d9de1b6e1b44947ae
2018-01-12 20:29:14 +01:00
ee4b074ce2 basic, solve link problems
When not using scripting, there were a number of
unresolved symbols. First aproach did not work, so this
commit is the more extensive.

Change-Id: Iaf78bde10d9a43862d58d1aa8f46b14aa075eddb
2018-01-08 13:18:36 +01:00
2a421b26c0 loplugin:passstuffbyref improved return in basic,framework
Change-Id: Ib19836febb59f4e2bb07dc874cfc6baabc653237
Reviewed-on: https://gerrit.libreoffice.org/47065
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-12-26 19:56:02 +01:00
00bc5a0973 wrap scoped enum around css::util::NumberFormat
Change-Id: Icab5ded8bccdb95f79b3fa35ea164f47919c68fa
Reviewed-on: https://gerrit.libreoffice.org/46339
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Eike Rathke <erack@redhat.com>
2017-12-19 22:08:26 +01:00