Age | Commit message (Collapse) | Author | Files | Lines |
|
Change-Id: I0e7cf850b51343e4afc1ea0a0409ad2c4e596435
(cherry picked from commit 373daf55d98ba706d3dea131e755da3a00eb259f)
|
|
* We need to call xmlInitParser() before using it in a multi-threaded
way (according to the libxml2 doc).
* Better to use 'rEntity' which references the one stored in the vector
rather than 'entity' whose copy gets stored in the vector. On Windows
at least 'rEntity' and 'entity' hold different parser pointer values.
* Free the parser before popping the entity. Popping the entity first then
freeing the parser using its pointer value stored in the entity looks
weird.
Change-Id: I6b64a6d8ac9c1d4fea8339d8fb2d38dfffbba47b
|
|
Change-Id: I3d2d57850dcb1fde1c004b4455591071a1fe03fa
(cherry picked from commit 4a757923fed5210d7bcf580865d53d4097dfbc8e)
|
|
Else we would get raw entity values such as '&' in lieu of '&'.
Change-Id: Ib700705fd9b68980306883aa9652579e1686040d
(cherry picked from commit 285cd8301c725cceead97d645f22fd92ba644492)
|
|
Change-Id: Ia173f7f4c88c90b6d54c9a47d6ae18b933502678
|
|
SAX interface is not required to provide the whole node content in one
characters() call (e.g. if there's an entity that needs decoding). However
it's easier to consumers to assume this (e.g. writerfilter's
DomainMapper::lcl_utext() handles datecontrol that way), and expat apparently
never used this. However this can happen with libxml2, so ensure such consumers
still work.
Change-Id: Ib564f372fbea8451f84553a6d49a07d091a950e9
|
|
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
|
|
|
|
Using SAX2 interface provides element/attribute names split into prefix/name,
and provides namespaces/urls, so FastSaxParserImpl::callbackStartElement()
does not have to figure out these on its own (and additionally libxml2
spends a noticeable portion in xmlStrdup() when not in SAX2 mode).
The switch saves about 5-10% time.
Change-Id: Idd424d7cc9b30c248179a5bad8ec79dbfc62e765
|
|
Since that's how it's internally stored anyway, and I have a use case
where it's useful to limit the length by passing it to OString ctor.
Change-Id: I5903ea4f1b2cdb48c1bbceac6b8e21eb5882d377
|
|
Otherwise the strlen() might give an incorrect length if the attribute
value is just a part of a longer string.
Change-Id: I67eb7baecfa928fdee26c5ea9003bd7fc9b96d59
|
|
Change-Id: I6026ab64f0cfe1d509c8f94ce3b9c6f700c823cf
|
|
This reverts commit 05050cdb23de586870bf479a9df5ced06828d498,
not all places that use e.g. OStringToOUString to convert potential UTF-8
are guaranteed to fulfil the prerequisites necessary to use fromUtf8 (and
some places like e.g. in codemaker are happy with the best-effort effect
of OStringToOUString's OSTRING_TO_OUSTRING_CVTFLAGS).
|
|
Change-Id: I771004b7ccab3344a67e827e45bc34c22ffa5f77
|
|
they are largely unnecessary these days, since our OUString infrastructure
gained optimised handling for static char constants.
Change-Id: I07f73484f82d0582252cb4324d4107c998432c37
|
|
Change-Id: Ia43976d84eede6f699381bc4f3daf89b95e4cb4f
Reviewed-on: https://gerrit.libreoffice.org/12150
Reviewed-by: Bryan Quigley <gquigs@gmail.com>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Michael Stahl <mstahl@redhat.com>
|
|
It turns out that almost none of them were necessary.
Change-Id: I1311ed28409c682b57ea8d149bcbaf2c49133e83
Reviewed-on: https://gerrit.libreoffice.org/12133
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: I9e56aa8908ae6747d6820d8b90e85ec07e981223
|
|
and
coverity#1249456
Change-Id: If1f6ef550290d3b6bb53ae87389b466c7d7a31f1
|
|
Change-Id: I3479a7f219d10301108f24efc273d822c77477d2
|
|
Change-Id: I23a85ba05a596b566be35ebecc6b1804c0d0cb62
|
|
To ensure the correct order of calling ForMerge methods,
call flush always before touching maMarkStack.
This was the missing piece in optimizing write() methods,
because of writeBytes() checking each time what to call.
E.g. for Calc documents we don't use maMarkStack at all.
So, just transfer the output to proper "ForMerge" when inside mark()
and allow optimizations.
This commit makes write() methods almost 1/3 as fast.
Change-Id: I96c13888206c81f87e29b998839f78ea9d5570af
|
|
Change-Id: Ifa0746d635ec43cdc37867cf94bcc128bb8e2aca
|
|
Would be easier to use OStringBuffer, but we can't get its pData member.
Also its append(double) is suboptimal (or anything that uses
rtl_str_valueOfDouble) - should be doing something like this commit.
Change-Id: I8f3140081a574a84f0e60dc85cce1bd2de23cd34
|
|
Well, at least the allocated space is fixed size.
When passing that to XOutputStream, change the size in a hacky way.
Change-Id: I24fa134286e3086beda25c9a6915549e7c69119a
|
|
Change-Id: I3920caf9d95f20992b7961873f1668468d797e8e
|
|
Change-Id: I3e9a302a7513eebfeff07402f71fc3dde22e4cc2
|
|
Saves about 80m pcycles for 180k calls.
Change-Id: I9c9b3bf5a076df56d1b5b87f0a85ac3404abe8a4
|
|
Change-Id: I7dee908f5441ad34128d688e1008fd6ffad2ab3f
|
|
Change-Id: I8b43635ab1f77b61469f060c9a092f1494388955
|
|
Saves another ~100m pcycles for 650k calls in startElementInternal()
Change-Id: I190326edc7feffb900e91fa7e5c3530b5b267f59
|
|
This makes writeBytes(), which is called a lot, simpler and thus faster.
E.g. for ~15m calls, this saves ~110m pcycles.
Change-Id: I29d01a1a8651f668aff574e0f015cd2f018eb1cd
|
|
Change-Id: Ia2268ce8a1e2111adb609c515e5bfa824afa66ce
|
|
Previously comphelper::OSequenceOutputStream was used.
Change-Id: I4dc38c8c62422e59efa1071312497364cdf5be3c
|
|
Change-Id: I2d5dbe9adccdd231cc16a1f83a90a4adeb965c64
|
|
Change-Id: I28085d4e060bcf052e6aa97a0822a4d653d7c066
|
|
This contained an rtl_Sequence complete with horror internal
allocator, caught red-handed serializing threaded loading to no
good purpose.
Change-Id: I837b2c17e4f70fd6a49bed33ad74a7d79f98f35c
|
|
Change-Id: I462f8ed89de48174ed7aa6e008709963bec50649
|
|
Change-Id: I359ca9d3b766b71904e4199ebfbdbd5b203775cc
|
|
Instead directly write the content.
Change-Id: I7b6db925348b879a013acbd2a76a80d590f721c0
|
|
And remove characters() member function.
Change-Id: Ifcedbb6d969b7b057ff378d2fbce09c2dde5ac18
|
|
Change-Id: Id89fb1f0444331c2858a9795ae81dcdb875d3d2b
|
|
Change-Id: Ibca65a2b8397358ac4013c8e5b53389ac6949e4d
|
|
Change-Id: I6996e15f99b94b50c1903092d7424a96339ccfaf
|
|
Use OSequenceOutputStream class to concatenate strings in a
Sequence<sal_Int8> buffer. And write data to file only at the end.
The design is a bit fragile, since all FSHelpers need to be destroyed
before calling FilterBase::commitStorage(). Otherwise data is not written.
Change-Id: I26b02335ef36011bfcda17484b560811d18c7657
|
|
...detected with a modified trunk Clang with
> Index: lib/Sema/SemaDeclCXX.cpp
> ===================================================================
> --- lib/Sema/SemaDeclCXX.cpp (revision 219190)
> +++ lib/Sema/SemaDeclCXX.cpp (working copy)
> @@ -1917,9 +1917,10 @@
> const Type *T = FD.getType()->getBaseElementTypeUnsafe();
> // FIXME: Destruction of ObjC lifetime types has side-effects.
> if (const CXXRecordDecl *RD = T->getAsCXXRecordDecl())
> - return !RD->isCompleteDefinition() ||
> - !RD->hasTrivialDefaultConstructor() ||
> - !RD->hasTrivialDestructor();
> + return !RD->hasAttr<WarnUnusedAttr>() &&
> + (!RD->isCompleteDefinition() ||
> + !RD->hasTrivialDefaultConstructor() ||
> + !RD->hasTrivialDestructor());
> return false;
> }
>
> @@ -3517,9 +3518,11 @@
> bool addFieldInitializer(CXXCtorInitializer *Init) {
> AllToInit.push_back(Init);
>
> +#if 0
> // Check whether this initializer makes the field "used".
> if (Init->getInit()->HasSideEffects(S.Context))
> S.UnusedPrivateFields.remove(Init->getAnyMember());
> +#endif
>
> return false;
> }
to warn about members of SAL_WARN_UNUSED-annotated class types, and warn about
initializations with side effects (cf.
<http://lists.cs.uiuc.edu/pipermail/cfe-dev/2014-October/039602.html>
"-Wunused-private-field distracted by side effects").
Change-Id: I3f3181c4eb8180ca28e1fa3dffc9dbe1002c6628
|
|
This reverts commit 9a25d12534f91c13400a63e265fb5aa14c6aca66,
there's another use of DebugAttributes.find(rAttrName) in that
function where rAttrName is of type OUString.
|
|
Change-Id: Ia2268ce8a1e2111adb609c515e5bfa824afa66ce
|
|
Change-Id: Icfbe30efa3ebd63620a900e345e4b4a74070b021
|
|
Change-Id: Ife7b28fcb67051c41831ef9eb566c3a2c148033d
|