Age | Commit message (Collapse) | Author |
|
8f8bc0dcf3bc253ae49159d52db049767f476ced "Move string hash function into String
class" had introduced a new getHash64 that, besides returning sal_uInt64 instead
of just sal_Int32, didn't do sampling of only a handful of characters, but
always computed the hash over all characters (as the usage in SfxItemSet and
SdPage appears to require for either performance or approximated correctness).
However, it would be advantageous to keep the stable URE interface as small as
possible. Now, O(1) sampling was apparently considered state of the art when
the rtl string classes were first created, closely copying java.lang.String,
which at that time demanded sampling for hashCode(), too---but never sampling
more than 15 characters, with the obvious (in hindsight, at least) performance
catastrophes, so they changed it to O(n) somewhere along the way.
Based on that, this commit changes the existing hash functions to not do
sampling any more, and removes the newly introduced -64 variants again. (Where
the extended value range of sal_uInt64 compared to sal_Int32 was hopefully not
vital to the existing uses.)
The old implementation used sampling only for strings of length >= 256, so I did
a "make check" build with an instrumented hash function that flagged all uses
with inputs of length >= 256, and grepped workdir/{Cppunit,Junit,Python}Test for
hits. Of the 2849 hits encountered, 2845 where in the range from 256 to 295
characters, and only the remaining four where of 2472 characters. Those four
were from CppunitTest_sc_subsequent_filters_test, importing long text into a
cell, causing ScDocumentImport::setStringCell to call
svl::SharedStringPool::intern, which internally uses an unordered_set. These
results appear to justify the change.
Change-Id: I78fcc3b0f07389bdf36a21701b95a1ff0a0d970f
|
|
Change-Id: I2a8b33adbc3844347e78738fbbf5a336af543e8a
|
|
Change-Id: Ia7b1a6aa15dd2438ebb39739535c4dfe0836e785
|
|
Change-Id: I6ebb1078c44b5fc0140ee59dc16a2bd7c7188453
|
|
Change-Id: I071a931660dafc1ee5950da527b042fb175255b8
|
|
Change-Id: Ibebf394d69ed4845d91176727f291187ba35ed34
|
|
This reverts commit 56ff07a795aca516106bfde80cb32860065690a6, the correct fix is
d19598b56c8bec688d1944cd167f32a369344100 "Adapt ImplicitBoolConversion to 32-bit
builds (where sal_Int32 is long)."
|
|
hashCode() seems to do sampling while creating the hash.
hashCode64() will not.
Change-Id: Id30f5a2a774cf5244dbc00da9649e95a532484be
|
|
Change-Id: I5ecaf73922c6a30add6e270b8abdfdb5c28fe4a5
|
|
Change-Id: Ie972599650620324fa7af5ed2b2843bfc1f34c43
|
|
Change-Id: Idd49478d59cd062118fbf8e99d1c8bc5250013fc
|
|
Change-Id: I840d120644760b61a39ad88b4095056f0f753bb7
|
|
Change-Id: I0cf67a4bd5ec95e135511611c236350d4347895e
|
|
Change-Id: I7ae2b02e435d21390843c6c56877a8ce3a73f9f2
|
|
Change-Id: I9096e00db4c94b318406b022f675bb866f568d7e
|
|
Change-Id: I653b78d9404764d1c89d11154fd8e6a767df9cb0
|
|
Change-Id: Id0e2c8e5579ae81c368cf886e52c8306f271c067
|
|
Change-Id: I78cfe1a807e59d63dc22fbec8bcadfa7596d5a96
|
|
Change-Id: I9c09333d0879ba8dc9ef8c4cb2c1d9f0b3654d45
|
|
Change-Id: Ibb3b8b4a3f29b46ada9824f7c7d15a0d87d60e23
|
|
...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: Ibf43c5ded609b489952e1cc666cac1e72ffa2386
|
|
Change-Id: I05bb7592600ab157d7a5e9dc6280168519d7b5bd
|
|
...to improve diagnosing misuses of boolean expressions in client code (cf.
compilerplugins/clang/implicitboolconversion.cxx). This change should be
transparent to client code.
Missing overloads of insert() for bool have been added to OStringBuffer and
OUStringBuffer (which required dropping one !VALID_CONVERSION check that would
now pick that overload, but would be flagged by
compilerplugins/clang/pointertobool.cxx).
Change-Id: I2d64cd923b8f47bfaa31e753def6515c29a3f8c9
|
|
3af99e4d59d89c343965a928681a30f36b1007d2 "convert equalsAsciiL calls to
startsWith calls" should rather have converted to oprator ==.
Change-Id: Id4a8836c5d6d570e54661c40be7214632e202b21
|
|
Change-Id: I58144461d3941359f8ea6c2bd547486b2c8ae81a
|
|
Change-Id: I46c30a62fb39c2223a369f91010a860372efc72f
|
|
Change-Id: I12f0a6331c435c1eac692e5c20a173ce84830290
|
|
Change-Id: I4349f4560ca34610351f4f07ff6e406e09b488e7
|
|
- document general COM threading architecture in vcl README
- document winaccessiblitiy locking in README
- define _ATL_APARTMENT_THREADED for UAccCOM
Change-Id: I7c3fd952f2cdee7d245a818bf33c477e7ea20fc2
|
|
Change-Id: I43d77cbf572acc4c27785990e28b43b35d71c96d
|
|
Change-Id: I82628046e8a40d45b0e711079e1cab9be89d69a9
|
|
Convert code like:
buf.append( static_cast<sal_Unicode>('!') );
to:
buf.append( '!' );
Change-Id: Iacb03a61de65a895540940953b49620677b3d051
|
|
Change-Id: I27ada8b5154968e521d9e67f21473aa85776e70e
|
|
Change-Id: I96e7ac419f4300a1dd62a5c24611c1467ef3b19a
|
|
Change-Id: I96845d358765e2d2507763a9b15a30388b32bc6b
|
|
Change-Id: Ia5f104bfd707bcf4e159c78ca2764c861fb0b6d9
|
|
Fallout from 0e6a2601b39cbadaff7f7506ba9e804f108060db ("Convert code that
calls OUString::getStr()[] to use the [] operator"). The code was a bit silly
and "hand-optimized" in the first place so no wonder a bug was introduced
accidentally in that commit.
Make it simpler and more obvious.
Change-Id: Idafb1c0741289e915dfbaa108383a926321764d2
|
|
Change-Id: I6f75d0df0ddafc892fef0ce1bfdcdd6c70151afc
Reviewed-on: https://gerrit.libreoffice.org/7104
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Convert code like
aFilename = OUString::number(nFilePostfixCount) + OUString(".bmp");
to
aFilename = OUString::number(nFilePostfixCount) + ".bmp";
Change-Id: I03f513ad1c8ec8846b2afbdc67ab12525ed07e50
|
|
Change-Id: I5150eec33228e18e274a8ae4effd3f185851b7f4
Reviewed-on: https://gerrit.libreoffice.org/7103
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Michael Stahl <mstahl@redhat.com>
|
|
Change-Id: Ia6799c852eb95d496fbc8dcfdabde62dffc263a6
Reviewed-on: https://gerrit.libreoffice.org/7066
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Convert code like
if( !aStr.isEmpty() && aStr[0] == 'x' )
to
if( aStr.startsWith("x") )
Change-Id: Iabc3a44ed3be2d29eed876e0eeef212ccd271edf
|
|
Change-Id: I6fc350f489863ec86c76822053f0a399cef5cd7f
|
|
Change-Id: Ife8ebbb5e46704c5d2ff46cc345b4ed926e7dc12
|
|
Change-Id: I76be464200d486efef9c8a7e957c310c9adae3b8
|
|
...non-explicit OString(rtl_String*) ctor already covers that
Change-Id: I9e447795ddc585d765b48d1f7f41f3c795aecba2
|
|
Change-Id: Ic580c625c78802087a32f8669feec91fe79672cd
|
|
(cherry picked from commit 2a0a1e41bcca97caaf3fdfb375f5cebb330a0fcc)
Change-Id: I107a73ad001647eeb25b44e521251ef9543cc83a
|
|
The crash reporter facility can provide much better details about crashes.
But if that facility is disabled then handling SEH events such as div-by-zero
as C++ exceptions is a worthwhile alternative. It can provide a few interesting
details and it allows a graceful shutdown of the application.
(cherry picked from commit c9d10b167b37a9cb0bb310cafc8e80b6cce8ea7a)
Conflicts:
sal/osl/w32/signal.cxx
Change-Id: I25324d6e02ab8acd8fd2b036b77039aac87cf262
|
|
Change-Id: Ic1863a2126c26cf703afc5fe250dea2bbddfef7d
|