Commit Graph

348 Commits

Author SHA1 Message Date
76ad32bec8 add tagging to ThreadTasks so we don't need more one pool
If more than one place in the code submits tasks to the shared
pool, then waitTillDone() becomes unreliable.
Add a tagging mechanism, so different callsites can wait
on different sets of tasks.

Also try to protect our worker threads against exceptions from
the thread tasks code.

Change-Id: Idde664ab50008d31a2dd73910bb22f50e62ae22f
Reviewed-on: https://gerrit.libreoffice.org/27042
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-18 06:49:09 +00:00
d94d88d375 loplugin:passstuffbyref also for {css::uno,rtl}::Reference
Change-Id: Ie05f9427dcd88d3b64cfe02c2ece5c0cf40be547
2016-07-07 18:59:55 +02:00
48a8d6d843 loplugin:singlevalfields in various
Change-Id: Ia0d8f463a4dba9ec63aa0159441e3e607dd3bf5e
Reviewed-on: https://gerrit.libreoffice.org/26738
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-06-28 11:21:17 +00:00
9084c11fb4 sfx2: exception on storage commit is an error (related: tdf#91807)
For no good or obvious reason, SfxMedium::StorageCommit_Impl() swallows
embed::UseBackupException if there is a pTempFile, which (as the comment
claims) is "always now".  This results in the temp file actually being
copied to the user-visible file and the SaveAs "succeeding", when it
clearly did not.

Also move the exception throwing to the end of ZipOutputStream::finish()
to avoid more memory leaks.

Change-Id: I448cc43291754ef20adfa6b65916282fcc365a11
2016-06-23 22:39:51 +02:00
8d8b9b80b1 package: fix exception handling in DeflateThread (related tdf#91807)
In the bugdoc of tdf#91807 there are at least 49 corrupt zip streams
that raise exceptions in the DeflateThreads.  Because the maximum
allowed number of threads happens to be 48, this results in an infinite
loop in ZipOutputStream::reduceScheduledThreadsToGivenNumberOrLess().

(regression from 7e2ea27e5d56f5cf767a6718a0f5edc28e24af14)

In case an exception is thrown, don't re-throw it immediately, which
might cause trouble such as leaking all of the ZipOutputEntry instances
in m_aEntries.

Change-Id: Ia74ab8e46fa1349c049d05dbec3454bfbe7d61d9
2016-06-23 11:40:35 +02:00
727d4dbeba loplugin:unusedmethods in package to rsc
Change-Id: I61c6f56a69891d656a41d3617d0ce2b34d848c84
Reviewed-on: https://gerrit.libreoffice.org/25108
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-19 06:42:05 +00:00
7d91753c5b Add SAL_FALLTHROUGH, where apparently appropriate
Change-Id: Ieee43fce49b7f07d6b356e8c2e34e9e92b605957
2016-05-10 17:03:22 +02:00
f07ff7ed8a clang-tidy modernize-loop-convert in oox to sax
Change-Id: If0d87b6679765fc6d1f9300c6972845cf3742b9c
Reviewed-on: https://gerrit.libreoffice.org/24674
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-05 12:44:25 +00:00
2a455e4a36 loplugin:salbool: Automatic rewrite of sal_False/True
Change-Id: I1879dece7dfb206dd55b13ca5572b962e20d37f5
2016-04-20 17:25:46 +02:00
150ac9cf05 clean-up: unused using declarations and includes
Searched source for using declarations.
Checked if those symbols reappear in the source file,
even in comments or dead code but not in #include statements.
If they don't reappear, remove the declaration.
Remove includes whose symbol got removed.

Change-Id: Ibb77163f63c1120070e9518e3dc0a78c6c59fab0
Reviewed-on: https://gerrit.libreoffice.org/24148
Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-04-18 07:25:24 +00:00
62633dfe02 clang-tidy performance-unnecessary-value-param in various
Change-Id: I7168d44dab8e6a8e37bb7920d744ff32f5e52907
Reviewed-on: https://gerrit.libreoffice.org/24019
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-04-14 11:37:19 +00:00
b8eb294651 loplugin:passstuffbyref in various
Change-Id: I80070c83204e531c2f599f8a56193d6ffe0e5022
2016-04-14 10:24:47 +02:00
7e2ea27e5d tdf#93553 limit parallelism at zip save time to useful amount
At ODT export time writing and zipping comtained data packages is nicely
parallelized, but not limited to an upper bounds of threads to use.
Together with memory consumption this makes ressource usage and runtime
behaviour bad to crashing (mostly on 32bit).
I have now limited the processing dependent on the number of available
cores to get a good processing/ressource ratio. The result uses much less
memory, is faster and runs on 32bit systems.

Change-Id: I8bd516a9a0cefd644f5d7001214bc717f29770ab
Reviewed-on: https://gerrit.libreoffice.org/23305
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-03-22 08:56:08 +00:00
6b84445e33 loplugin:constantparam in package
Change-Id: Ifd9bb81ff9ccfaf5093c04024d7ea93946b00e66
Reviewed-on: https://gerrit.libreoffice.org/23329
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-03-18 06:00:58 +00:00
a238b1f8d3 Remove excess newlines
A ridiculously fast way of doing this is:

for i in $(pcregrep -l -M -r --include='.*[hc]xx$' \
  --exclude-dir=workdir --exclude-dir=instdir '^
{3,}' .)
do
    perl -0777 -i -pe 's/^
{3,}/

/gm' $i
done

Change-Id: Iebb93eccbee9e4fc5c4380474ba595858a27ac2c
Reviewed-on: https://gerrit.libreoffice.org/22224
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2016-02-09 08:18:05 +00:00
802765dbe5 loplugin:unusedmethods unused return value in oox,package
Change-Id: I63862c3ce32a1106b7de037f422e7e5480e8bfd6
2016-01-15 09:36:41 +02:00
e3a31fcca7 loplugin:unusedfields
Change-Id: I979592adb978c3757a1e54615021ee424a2e02bf
Reviewed-on: https://gerrit.libreoffice.org/20892
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2015-12-24 07:28:28 +00:00
98f4f2bb0f loplugin:unusedfields in oox,package
Change-Id: I8f8c3ff9ded455a09f3df81c501da17cca0b2310
2015-12-22 09:53:27 +02:00
a78182a993 loplugin:unusedfields in include/package,include/registry
Change-Id: Iadba30885ba3bab7aaee58e298a9dc6b22c8b977
2015-11-25 08:25:09 +02:00
1fc2fe74f2 loplugin:nullptr (automatic rewrite)
Change-Id: I1e5338558bc57afe51db57655550e9b7246f7214
2015-11-10 10:31:33 +01:00
912c034453 Don't check version field from local ZIP header
Our current Maven based Java toolchain produces JARs, which
have a different "version needed to extract" in the ZIP local
and central directory header.

I had a look at 7zip and unzip and they already ignore the version
but compare other data LO already ignores - sig. The "standard"
document from PKWARE doesn't help.

So just compare the file path and calculate the data offset and
otherwise ignore all (duplicated) information from the local index
and rely on a correct central directory entry. Various programs
produce(d) "broken" ZIP files; even LO at some point (see git log).

Change-Id: I8d63abb0d49a1087c7654f401b62355c147c3118
Reviewed-on: https://gerrit.libreoffice.org/19779
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2015-11-05 16:00:58 +00:00
5ced1a6e42 use uno::Reference::set method instead of assignment
Change-Id: I1c7240fe2e2b5eb825f028ca7502e5ba8793046b
2015-11-04 14:42:23 +02:00
8d80b5be02 com::sun::star->css in package,pyuno
Change-Id: I7b7b0e7fea2d1a2b9f6f5501ad5e0b8c1b4a17b9
2015-10-23 15:14:45 +02:00
b36963c0a6 Replace "SAL_OVERRIDE" with "override" in LIBO_INTERNAL_ONLY code
Change-Id: I2ea407acd763ef2d7dae2d3b8f32525523ac8274
2015-10-12 17:52:29 +02:00
5ba6aafa20 package: tdf#88206 replace cppu::WeakImplHelper* etc.
with the variadic variants.

Change-Id: If88e1d741075e86997c91dc2c59eeebe45f67c1f
Reviewed-on: https://gerrit.libreoffice.org/17980
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
2015-08-26 06:35:34 +00:00
ef698035aa Related: tdf#88314 delete temp files
clear to close the inputstream before attempting to delete the temp file, which
is plausible as the windows-specific failure in earlier attempts at this

Change-Id: I751aa3a098dd960f56b77a5f5fc93783c1060556
Reviewed-on: https://gerrit.libreoffice.org/17531
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2015-08-07 07:53:18 +00:00
458bf08125 Resolves: tdf#88314 close temp file after each thread completed
Change-Id: Ic2eec30cfb5f61c53777eefeeb8bad6f552da2fc
Reviewed-on: https://gerrit.libreoffice.org/17355
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2015-08-05 22:15:54 +00:00
33a21d37f3 Revert "Resolves: tdf#88314 close temp file after each thread completes"
This reverts commit 738cf411e9315d17c7eb8be47ded643a00dfe5c5.

It brokes windows in https://gerrit.libreoffice.org/#/c/17289/
as per http://ci.libreoffice.org/job/lo_gerrit_master/4465/Gerrit=Gerrit,Platform=Windows/

was pushed despite that.. :-(
2015-07-26 00:23:50 -05:00
738cf411e9 Resolves: tdf#88314 close temp file after each thread completes
and reopen them when we need their data.

That way we don't have as many open files as substreams in the
package, so we don't run out of file handles

Change-Id: Ic124e275abf15f4578c77ee271d185f40cb844b1
Reviewed-on: https://gerrit.libreoffice.org/17289
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2015-07-24 13:24:55 +00:00
a792aa2c48 loplugin:unusedmethods toolkit,package
Change-Id: I83618cd2fd12fb0c1691dc7255fc7192e68649cd
Reviewed-on: https://gerrit.libreoffice.org/17031
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2015-07-14 09:28:14 +00:00
e546ed01e6 loplugin:unusedmethods package
Change-Id: I19d6bbb9288d72b99d1023b4983b1c3fff7570e8
Reviewed-on: https://gerrit.libreoffice.org/16811
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2015-07-07 11:01:11 +00:00
371200675c drop yet another reimplementation of rtl::Reference (SotMutexHolderRef)
Change-Id: I57f9dff931242405420bd45fae7ec5f13718707f
2015-06-29 09:16:18 +02:00
05661623c7 uncaught exceptions in parallel deflate threads on re-export of HTB23106 odgs
Change-Id: Ib6aef478b8dcf1c7a7262ab60eef4d44da0de632
2015-06-05 11:46:47 +01:00
0a48e0fb4e loplugin:simplifybool
Change-Id: Ia4177cf1a4b0c06ef614b54298fd6f9224956afc
2015-04-24 12:36:25 +02:00
2240118177 Improved loplugin:literaltoboolconversion looking into cond. exprs.
...automatic rewriter fixes

Change-Id: I6b04ca80f08f8a71ff94e309fd52f44d736751ee
2015-04-23 18:39:07 +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
b857703113 const_cast: convert some C-style casts and remove some redundant ones
Change-Id: I313d61fc6e7be3a5513da83d3de9202237306739
2015-03-26 15:33:33 +01:00
858e455634 loplugin:constantfunction: various
Change-Id: I6eddda9f4b31c7ce413c328b6a857a81bd222eed
2015-03-24 10:51:22 +02:00
00173d8c3a Some more loplugin:cstylecast: package
Change-Id: Icf7351082cf63aeb70ec47a8562a89d452ae9d8e
2015-01-20 09:06:50 +01:00
238ce4af68 remove unnecessary casts
leftovers from conversion of SvStream operator>> to Write methods

Change-Id: Id1d1e60ae42afb689910845a3c6ec75e3388fb56
2015-01-15 13:32:15 +02:00
5484475fc1 include algorithm
Change-Id: I55abf17a1da2616ca2b1303747ca8cc7e402634e
2015-01-02 17:03:55 +00:00
65e7851444 include algorithm
Change-Id: Icd44b7c128bf72236206d7c753a9ef986f50dad2
2015-01-02 16:44:34 +00:00
f92183833f package: Better to use temporary files for huge memory zip streams
ZipPackageBuffer was holding the whole compressed data stream in one
uno::Sequence which seems to be a lot for big documents in some cases.

Change-Id: Ib10d00ac54df9674231f4bbf047fab7e9b0a7d45
2014-12-14 00:21:20 +01:00
43eca2d9f8 package: Create memory buffer only when we need it - if we use parallelism
Otherwise write directly to the resulting zip file.

Change-Id: I75097969f0cccf0b45da591c71221e5ae18668cb
2014-12-14 00:21:18 +01:00
2c2e80da68 callcatcher: remove newly unused code
and rework reads to just return the read value

Change-Id: I5d2f01064465c65859ec4ba031ec9dfa16403487
2014-12-12 11:49:03 +00:00
70d4989c27 remove operator>> methods
in favour of ReadXXX methods.

Change-Id: I242b92da7dbcafe22aef69dc7348ac58dadc9241
2014-12-11 14:57:34 +02:00
0674dd36b6 coverity#1242675 Untrusted value as argument
Change-Id: Id1f1ff8de23b041742d2a8286b78312529f6566e
2014-11-21 11:55:12 +00:00
319524767e coverity#1242675 Untrusted value as argument
Change-Id: I1d8f32095f297919dc3ccab51093295f8c31707d
2014-11-19 11:01:07 +00:00
6a0fe37dec sal: clean up public headers with include-what-you-use
Sadly cannot forward declare "struct {...} TimeValue;".

rtl/(u)?string.hxx still include sal/log.hxx but removing osl/diagnose.h
was painful enough for now...

Change-Id: Id41e17f3870c4f24c53ce7b11f2c40a3d14d1f05
2014-11-17 11:06:53 +01:00
7088166a67 Simplify input parameters to just take the sequence
Change-Id: Ic2538ca8b0f7261064e1dfbf3884dd452003c797
2014-11-17 10:49:23 +01:00