summaryrefslogtreecommitdiff
path: root/sal/util
AgeCommit message (Collapse)Author
2014-05-20fdo#60338: Introduce osl_createDirectoryWithFlagsStephan Bergmann
...so that utl::TempFile can pass osl_File_OpenFlag_Private and doesn't have to resort to umask (the calls to umask around Directory::create had somewhat erroneously been removed recently with 1d72a0262c4570631d0aa8f98e34e21fb9d6ae42 "Related fdo#60338: Create missing temp file dir with user's original umask," mistaking this for creation of intermediate directories in the hierarchy). On Windows, the flags argument to osl_createDirectoryWithFlags is ignored completely for now. Change-Id: Iac56a5049d579be729a3f338aa62105123edb6cb
2014-05-13All three uses of osl_getFileOSHandle have been removed againStephan Bergmann
...introduced with a64db11b6ca1c0c99937cd99129758dbbe575ac2 "Add some non-public API to be used by SvFileStream" and e541105b45d5da8df296883111194e3a0297a2e7 "Use osl API to access files in the SvFileStream code" but subsequently identified as dead code with ab02fa6552fb098990e74f2787cf02b01c0e532b "callcatcher: update list," 05a8216d03b5db559e01dd1808f2805df31c970a "STAR_ENABLE_FILE_LOCKING was a secret," and 1d3483ed279982278b2f9fb1bab63485523e48c5 "Remove some unused code from unusedcode.easy." Change-Id: I9c8584890270a87e58b8d8021080ffe54bc97b93
2014-05-13osl_openMemoryAsFile is internal, Android-only functionalityStephan Bergmann
Change-Id: I36734b0e5e1c0b15ed4f0845450b444b23579ffe
2014-02-28Fix typo: s/Alined/AlignedTor Lillqvist
Change-Id: I248d002d2ed0e61f97a35ea0d329c64832252ad7
2014-02-27Ensure that numeric array storage is aligned to 256-byte boundary.Kohei Yoshida
OpenCL devices require this else we would get a performance hit. Change-Id: I6b1db6320fa84f933b6446022a0fd02ba267bf21
2014-02-18Stick to a single O[U]String hash functionStephan Bergmann
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
2014-02-17String cleanups.Muthu Subramanian
Change-Id: Ibebf394d69ed4845d91176727f291187ba35ed34
2014-02-13Move string hash function into String class.Muthu Subramanian
hashCode() seems to do sampling while creating the hash. hashCode64() will not. Change-Id: Id30f5a2a774cf5244dbc00da9649e95a532484be
2013-06-13Introduce O[U]String::toUInt32Stephan Bergmann
...which has become necessary since bd60d41176da540b01d7583cfe00637431967f39 "Handle oveflow in O(U)String::toInt() functions" reduces values in the range (SAL_MAX_INT32 .. SAL_MAX_UINT32] to zero, but some calls of toInt32(16) relied on getting a correct (unsigned) value for the whole input range ["0" .. "FFFFFFFF"] (see libreoffice-4-1 commit 9bf6c83367cedb7be81bf67f30d2147d26c7a8c3 "Revert overflow checks in O[U]String::toInt{32,64} again"). Audited all uses of toInt32/64 with non-decimal radix. (There is still a TODO comment in oox/source/helper/attributelist.cxx, and stoc/source/typeconv/convert.cxx will still need some love and test code.) Change-Id: Iadaca1c0e41dab553687d0ce41c20c10cd657a95
2013-03-25Clean up new toUInt64Stephan Bergmann
Change-Id: Ic908cb5cc9169ab1baae2c1c52070adfb9afba39
2013-02-04add OUString::toUInt64()David Ostrovsky
Change-Id: I2051e161219d424d2c2b69faf6f939cfe21fa5f7 Reviewed-on: https://gerrit.libreoffice.org/1980 Reviewed-by: Luboš Luňák <l.lunak@suse.cz> Tested-by: Luboš Luňák <l.lunak@suse.cz>
2013-01-28cleanups for number() string functionLuboš Luňák
- add sal_uInt64 valueOf helper to handle its full value range - group deprecated valueOf() together - forward to the number() taking the largest type instead of repeating the same code every time - various doc improvements: - add missing @since - do not refer to non-existent number() overloads in docs - "use number" - "huh, of course I use a number?" - "code your own" - my own function? why? - + or += operators are not, strictly speaking, replacements for valueOf() Change-Id: Ib138a06c4ac4365cfffc534e6ab115d55180a70d
2012-12-06mvoe rtl_(u)string_alloc to salLuboš Luňák
No point in hidding something useful like this in some helper lib. Change-Id: I7332d7f6bd428378cd19e7e95ad130771a541140
2012-12-06rtl_(u)String_ensureCapacityLuboš Luňák
Ensure there will be enough extra space in a string, to be used for string appending. A bit like rtl_(u)String_newConcat(), but without the function actually appending anything. Unlike the stringbuffer variant this does not allocate any extra. Change-Id: Ic6f84bf014a713f9912c81d8f1405c593978822d
2012-12-04LIBO_UDK_3.7 -> LIBO_UDK_4.0Luboš Luňák
There will be no 3.7. Change-Id: Ib2808aa259baaa7eac42c7ec7a640105fc8c07a1
2012-12-04Fixup: putting back dummy methods for removed semaphoreThorsten Behrens
We don't want to change sal SONAME just yet. Change-Id: I3a9de9a53a4ba845c00a26450e281534ca5d97f6
2012-12-04API CHANGE: remove long-deprecated Semaphore & related stuff.Thorsten Behrens
osl::semaphore was not portable & thusly long-deprecated. Also killing further unused clients of that code in salhelper. Change-Id: Ie1c1924e06e8ce3be33fd1dc2c6933f2de8b5217
2012-11-21re-base on ALv2 code. Includes:Michael Meeks
Patch contributed by Herbert Duerr: #i118662# remove berkeleyDB from module xmlhelp (author=orwitt) http://svn.apache.org/viewvc?view=revision&revision=1213188 #i119141# remove ISCII converter for now http://svn.apache.org/viewvc?view=revision&revision=1306246 make exceptions for cppunittester verbose http://svn.apache.org/viewvc?view=revision&revision=1174831 Patches contributed by Pedro Giffuni: Avoid some uses of non portable #!/bin/bash in shell scripts. http://svn.apache.org/viewvc?view=revision&revision=1235297 Patch contributed by Oliver-Rainer Wittmann 88652: applied patch, remove unicows deps http://svn.apache.org/viewvc?view=revision&revision=1177585 drop OS/2 code, remove in-line assembler ARM atomics, and obsolete armarch header.
2012-10-09Add a 'fromIndex' parameter to OUString::replaceAllNoel Grandin
This method will be needed for forthcoming String->OUStringBuffer conversions. Change-Id: I001099baaca5cd402aebcd15c031d9060286a8f9
2012-10-04Version name/dependency cleanup towards 3.7Stephan Bergmann
Change-Id: Ib5da7703bf48713093bc6a3380facafd0013e039
2012-10-02update string copy semantics to be undefined in a non-crashing way.Michael Meeks
Change-Id: I03bb4db5931932280e368012cbaee6bef2854dd6
2012-07-20saltextenc.map is unncessaryStephan Bergmann
...as sal_textenc lib is not part of stable URE interface. Change-Id: I5aeacd7668cca36f900aede4012d508217f3ab46
2012-05-18fdo#42865: privatized unique empty string symbol:Michael Stahl
Unfortunately this --enable-dbg-util only problem (caused by _GLIBCXX_DEUBG) resurfaced, perhaps because of new std::string based logging in sal; adapt all map files to export the unique symbol.
2012-04-02sal: expose more stringbuffer related instrumentation pointsMichael Meeks
Avoid ref/unref pair in makeStringAndClear, hook into the stringbuffer-like 'String' class to expose it's conversion to immutable strings, and fixup misc. missing instrumentation.
2012-03-31sal: use CustomTarget makefileMatúš Kukan
2012-03-12OString ctor for string literals without RTL_CONSTASCII stuffLuboš Luňák
2012-03-12rtl_uString_newFromLiteral() for string literalsLuboš Luňák
Drop the recently introduced rtl_uString_newFromAscii_WithLength() and replace it with this one. The name fits better and it'll be also a distinct function that specifically includes embedded \0's (because that's what OUString supports and if a string literal explicitly includes it, it makes sense to copy it as such).
2012-03-12osl_loadModuleRelativeAscii was erroneously not exportedStephan Bergmann
2012-03-05rtl_uString_newFromAscii_WithLength() and use it in OUStringLuboš Luňák
2012-02-15Various string function clean upStephan Bergmann
Added: * rtl::OString::matchL * rtl::OString::endsWith * rtl::OString::endsWithL * rtl::OString::indexOfL * rtl::OString::replaceFirst * rtl::OString::replaceAll * rtl::OString::getToken * rtl::OUString::endsWith * rtl::OUString::replaceFirst * rtl::OUString::replaceFirstAsciiL * rtl::OUString::replaceFirstAsciiLAsciiL * rtl::OUString::replaceAll * rtl::OUString::replaceAllAsciiL * rtl::OUString::replaceAllAsciiLAsciiL * rtl::OUString::getToken plus underlying C functions where necessary Deprecated: * comphelper::string::remove * comphelper::string::getToken Removed: * comphelper::string::searchAndReplaceAsciiL * comphelper::string::searchAndReplaceAllAsciiWithAscii * comphelper::string::searchAndReplaceAsciiI * comphelper::string::replace * comphelper::string::matchL * comphelper::string::matchIgnoreAsciiCaseL * comphelper::string::indexOfL Also fixed some apparent misuses of RTL_CONSTASCII_USTRINGPARAM -> RTL_CONSTASCII_STRINGPARAM.
2012-02-05Remove unused VolumeDevice functions and related codeFrançois Tigeot
2012-01-21android: remove nonsensical write to file buffer during readLineMichael Meeks
also expose in-memory file method for unit testing.
2012-01-19sal: expose a public API for comparing directory itemsMichael Meeks
Windows impl. still pending.
2012-01-19fix SvStream to not require a custom open or lstat method.Michael Meeks
2012-01-19fix SvStream to not disagree with sal on sizeof struct statMichael Meeks
A temporary tweak to restore build-ability; the oslDirectory change needs a little more thought & public exposure, but rsc no longer crashes during compile ...
2012-01-18Add some non-public API to be used by SvFileStreamTor Lillqvist
Having SvFileStream call the file opening etc functions here, instead of calling open() directly itself, means we won't have to duplicate the Android .apk hooks there, too.
2012-01-07sal.map: allow different name manglingMatúš Kukan
2012-01-06Final disentanglement between sal and sal_textenc.Stephan Bergmann
2012-01-06Made textenc/converter cleanly usable by both sal and sal_textenc.Stephan Bergmann
2012-01-06Extracted convertsimple (used by sal and sal_textenc) from tcvtbyte.Stephan Bergmann
2011-12-21osl_unmapFile can't work for files bundled inside the .apk on AndroidTor Lillqvist
On Android, when an app is installed, arbitrary files bundled in the app won't be unpacked into actual separate files in the file system. They will exist only as archive entries in the .apk file (which is a zip archive). The SDK tooling puts such files under the /assets folder in the .apk. The LibreOffice bootstrapping code for Android maps the .apk file into memory. osl_openFile() knows about the /assets special case, and uses a separate abstraction for such memory-mapped files. Obviously, when producing an .apk, one needs to make sure these bundled files are not compressed, if one wants to be able to use them directly from the memory-mapped .apk file. We do that in our test and sample Android projects. When mapping such files under /assets , just return a pointer to the file's location inside the mapped .apk archive. We can't use the old osl_unmapFile() on such mapped files, as that would unexpectedly unmap fairly arbitrary pages of the .apk mapping, wreaking havoc on later use of the same pages. So, introduce a new osl_unmapMappedFile() function that takes also the oslFileHandle originally passed to osl_mapFile(). Use this instead in the few places where the code actually called osl_unmapFile(). Make sure osl_mapFile() is nonexistent on Android.
2011-12-20Always use the autoconfed sizes and alignments, not only when cross-compilingTor Lillqvist
2011-12-20Need gb_CXXFLAGS, tooTor Lillqvist
2011-12-19Add symbols from addsym.awk to gbuilified .map files.Stephan Bergmann
2011-12-19sal: convert to gbuildMatúš Kukan
2011-12-11I don't see NO_BSYMBOLIC being used anywhereTor Lillqvist
2011-12-06normalize Red Hat, Inc. spellings, and bump to latest templateCaolán McNamara
2011-11-30Android code refactorig and hackingTor Lillqvist
Sorry for the large unstructured commit. But hey, the Android code is experimental so far. Extract the native lo-bootstrap code into a fairly normal library built in sal. (Previously it was the JNI part of the "Bootstrap" app.) Just linkink normally to liblo-bootstrap from C++ code that uses it works fine, no need to do a dlsym lookup. Bootstrap is still a subclass of NativeActivity and can thus still be used as an "app" (to start unit tests, or whatever), but can also be used from some other app's Java code to just get access to the lo-bootstrap native methods. Introduce a new top-level "module", android, for Bootstrap and the experiments with DocumentLoader. Note that the experimental DocumentLoader app still crashes. It can't create the com.sun.star.frame.Desktop instance. I spent lots of time debugging in the painfully inadequate ndk-gdb. (Even the newer gdb build from the "mingw-and-ndk" project is quite crappy in many ways.) I should really experiment with corresponding code on a normal platform first before even trying on Android. Basically, I think that if I just can get the concept of Java code that instantiates and uses LO components *in-process* working on a normal desktop platform, it should work on Android, too.
2011-11-22New sal/log.h obsoletes osl/diagnose.h and tools/debug.hxx.Stephan Bergmann
* New SAL_INFO..., SAL_WARN... macros. * New SAL_STREAM supersedes OSL_FORMAT. * oustringostreaminserter.hxx moved from unotest to rtl (and always UTF-8 now). * TODO to enable GCC __attribute__((format)) in sal/log.h (requires call-site cleanup). * Further functionality in tools/debug.hxx (DBG_MEMTEST, DBG_CTOR, etc.) not yet addressed. * Some replacements tools String -> rtl::OUString.
2011-11-01Removed obsolete rtl/tres stuff.Stephan Bergmann