summaryrefslogtreecommitdiff
path: root/include/tools/multisel.hxx
AgeCommit message (Collapse)Author
2018-09-27loplugin:constfields in toolsNoel Grandin
Change-Id: I83499cfb49f7abdbf0629c60167d09a1352571ee Reviewed-on: https://gerrit.libreoffice.org/60987 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-04-18tdf#117044 Base crash when attempting to edit a table definitionNoel Grandin
this story started in commit 433fc2214c980abd82fa6240f45e634a53a3c61c (patch) sal_uIntPtr->sal_Int32 in MultiSelection which caused a regression, reported in tdf#116981. I attempted to fix it in commit 235d61890512894e27f4f81e38a325eee3c67b30 Date: Fri Apr 13 17:14:59 2018 +0200 tdf#116981 Base when deleting table column and commit 0973e1f4e727a3204c843398bcb0e6a411b1a02d Date: Mon Apr 16 08:28:16 2018 +0200 follow on for tdf#116981 But my analysis was wrong. To recap, and get it right: Before all this, MultiSelection stored it's values internally as sal_uIntPtr, but returned them as long in FirstSelected(), NextSelected(),and SFX_ENDOFSELECTION was defined to be ULONG_MAX. On 64-bit Linux, sal_uIntPtr is typedefed to sal_uInt64, and ULONG_MAX is 2^64, which means that previously, the SFX_ENDOFSELECTION value was being converted from 2^64 to -1 when it was returned, which was why these loops worked. So convert SFX_ENDOFSELECTION to -1 to match how how the external code wants it to be (and the code frequently uses -1 instead of SFX_ENDOFSELECTION or BROWSER_ENDOFSELECTION) The modification to MultiSelection::Select is necessary because previously, nCurMin and nCurMax would be == ULONG_MAX, and we would, somewhat unintuitively, end up in the // expand on left side? if( nTmpMax < nCurMin ) part of the logic, which would do the right thing, even if a little weirdly. Change-Id: I7c830b0392add394d8c294247f75a2ffe8017c24 Reviewed-on: https://gerrit.libreoffice.org/53022 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-04-16follow on for tdf#116981Noel Grandin
the previous commit 235d61890512894e27f4f81e38a325eee3c67b30, fixed just exactly the problem reported in tdf#116981. This commit fixes similar issues that may exist elsewhere. To recap, this started as a regression from commit 433fc2214c980abd82fa6240f45e634a53a3c61c (patch) sal_uIntPtr->sal_Int32 in MultiSelection Previously, MultiSelection stored it's values internally as sal_uIntPtr, but returned them as long in FirstSelected(), NextSelected(), and SFX_ENDOFSELECTION was defined to be ULONG_MAX. On 64-bit Linux, sal_uIntPtr is typedefed to sal_uInt64, and ULONG_MAX is 2^64, which means that previously, the SFX_ENDOFSELECTION value was being converted from 2^64 to -2^63 when it was returned, which was why these loop worked. So convert SFX_ENDOFSELECTION to SAL_MIN_INT32, so we get a large negative value which can never be a valid index, and which works more like it did before the regression. Also fix as many loops as I can find, to check against SFX_ENDOFSELECTION explicitly. Change-Id: I947d43dbe23a08105be3d849e33d7e774a8a19fa Reviewed-on: https://gerrit.libreoffice.org/52934 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-20loplugin:unused-returns in filter,tools,xmloffNoel Grandin
Change-Id: I7a57be7e241883adac4417baa699a97d6304a631 Reviewed-on: https://gerrit.libreoffice.org/48188 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-20loplugin:unusedmethodsNoel Grandin
Change-Id: If00b0e659e1818c29ae39b89f8b4f7ea29d14986 Reviewed-on: https://gerrit.libreoffice.org/48185 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-11loplugin:useuniqueptr in tools,stoc,unotoolsNoel Grandin
Change-Id: Ia72b65577143623cedc7a40bc34f7fb897add097 Reviewed-on: https://gerrit.libreoffice.org/47726 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-03loplugin:singlevalfields improve copy constructor checkNoel Grandin
Change-Id: Id1e7fbecd9e9f816553d2e678c3f1b7890fc4db8 Reviewed-on: https://gerrit.libreoffice.org/47293 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-12-14sal_uIntPtr->sal_Int32 in MultiSelectionNoel Grandin
also replace the long/size_t with sal_Int32 so we have some consistency Change-Id: I9d3099b881354af7b9f59d312e6b15b213d1e580 Reviewed-on: https://gerrit.libreoffice.org/46395 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-20loplugin:unusedfields in toolsNoel Grandin
Change-Id: I4e26c4750f6ff6c246a25507cfed1a0b4e3c6b81 Reviewed-on: https://gerrit.libreoffice.org/40225 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-01-31a whole bunch of SAL_WARN_UNUSEDNoel Grandin
Change-Id: Iea28debc7d3abc58cca21bd3856cb65b321dc1e6 Reviewed-on: https://gerrit.libreoffice.org/33693 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-12-12coverity#1371265 Missing move assignment operatorCaolán McNamara
Change-Id: I5b7c6992e92e4d096b8230774ed8f4bfaaad5831
2016-10-21loplugin:expandablemethodds in include/tools..unotoolsNoel Grandin
Change-Id: I5607d4a2a81de1a3ae329acd1e90280a21522f06 Reviewed-on: https://gerrit.libreoffice.org/30097 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-07-13loplugin:constparams in toolsNoel Grandin
Change-Id: Iea05efbb90a0a95fefd18ae9673095a31422f06c Reviewed-on: https://gerrit.libreoffice.org/27137 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-26loplugin:unusedmethodsNoel Grandin
Change-Id: Ib36bc0e87d00abb638cbfec511cd13b6179eabda Reviewed-on: https://gerrit.libreoffice.org/25431 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-19loplugin:unusedmethods in toolsNoel Grandin
Change-Id: I26a4ce6e849615d6d24632650ca03c40ab16502e Reviewed-on: https://gerrit.libreoffice.org/25089 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-04-04loplugin:constantparam in toolsNoel Grandin
Change-Id: I8b2a722b525722bd09ed1f27c648062d6f29cce7 Reviewed-on: https://gerrit.libreoffice.org/23723 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-03-17loplugin:constantparam in toolsNoel Grandin
Change-Id: I3774661799c074561c694515baba42a375d0a077 Reviewed-on: https://gerrit.libreoffice.org/23301 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-03-04loplugin:unuseddefaultparam in toolsNoel Grandin
Change-Id: I027f4d53e3aa793bd61bf110899e464a9b6430ec Reviewed-on: https://gerrit.libreoffice.org/22891 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-03-01loplugin:unuseddefaultparam in toolsNoel Grandin
Change-Id: I2a974ba76566700c2037fcb38de3ecfea9d2651d
2016-02-08loplugin:unusedmethodsNoel Grandin
using an idea from dtardon: <dtardon> noelgrandin, hi. could you try to run the unusedmethods clang plugin with "make build-nocheck"? that would catch functions that are only used in tests. e.g., i just removed the whole o3tl::range class, which has not been used in many years, but htere was a test for it... <noelgrandin> dtardon, interesting idea! Sure, I can do that. Change-Id: I5653953a426a2186a1e43017212d87ffce520387 Reviewed-on: https://gerrit.libreoffice.org/22041 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-01-15loplugin:unusedmethods unused return value in include/toolsNoel Grandin
Change-Id: I77a6a46ca20cb41ed73050185fb2064a1bbf2009 Reviewed-on: https://gerrit.libreoffice.org/21485 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2015-11-10loplugin:nullptr (automatic rewrite)Stephan Bergmann
Change-Id: Ia5acfb564f913d52cd25b5d64d06b5280b94cb72
2015-07-02loplugin:unusedmethods toolsNoel Grandin
Change-Id: I45f5489233879126d4f9ee3d01db504d950bb597 Reviewed-on: https://gerrit.libreoffice.org/16656 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2014-09-07create clang plugin to warn about C-style castsNoel Grandin
We don't like C-style casts in our nice C++ code Change-Id: I94e7ec90de9275cd6e20c4146d4f3a74bed93c9d Reviewed-on: https://gerrit.libreoffice.org/10367 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com> Tested-by: Norbert Thiebaud <nthiebaud@gmail.com>
2014-06-09loplugin: inlinesimplememberfunctionsNoel Grandin
Change-Id: I42119f656ca528286fb25d2d36c0af54b7d04a6b
2013-11-09fdo#65108 inter-module includes <> include/toolsNorbert Thiebaud
Change-Id: I5f44f041e465230d10d562e8bd6f141848465e07
2013-10-23fixincludeguards.sh: include/{toolkit,tools}Thomas Arnhold
Change-Id: I5572c320431222be2405f8c2dc8adeafe4f3828b
2013-06-30Clean String and sal_Bool in toolsNorbert Thiebaud
Change-Id: I6a92196f33d7a5278c7dcc426112e9c56d582655 Reviewed-on: https://gerrit.libreoffice.org/4627 Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com> Tested-by: Norbert Thiebaud <nthiebaud@gmail.com>
2013-04-27Bin ugly (ab)use of preprocessor in headersTor Lillqvist
The time when it made sense to use "clever" #ifdefs to, for performance or compiler reasons, conditionally bypass private parts of a class declaration passed a decade or longer ago. Still more of this in sw and sc. People working on those modules might want to do it too, or not. Change-Id: I1053139ca5e5e2631f7b22d99d3bada54fc337be Reviewed-on: https://gerrit.libreoffice.org/3627 Tested-by: LibreOffice gerrit bot <gerrit@libreoffice.org> Reviewed-by: David Tardon <dtardon@redhat.com> Tested-by: David Tardon <dtardon@redhat.com>
2013-04-23execute move of global headersBjoern Michaelsen
see https://gerrit.libreoffice.org/#/c/3367/ and Change-Id: I00c96fa77d04b33a6f8c8cd3490dfcd9bdc9e84a for details Change-Id: I199a75bc4042af20817265d5ef85b1134a96ff5a