Commit Graph
4397 Commits
Author SHA1 Message Date
Ramreiso Kashung bcaf132050 tdf#147132: Flatten Basic function implementations
Some SbRtl_* functions have been flattened at basic/source/runtime/methods.cxx

Change-Id: Id56485ddfaa972133c9b199d22b141d93df475f6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130206
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2022-02-22 09:34:20 +01:00
Andreas Heinisch 3ba8b56b32 tdf#147089 - Round Integral Division (IDIV) literals to Integer values
Change-Id: Ia243c6117a437d0c6efb33a4e76c5e9ee539fbdc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130302
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2022-02-21 23:10:46 +01:00
Mike Kaganski 5276177877 tdf#147364: fix function signature to account to calling convention
First, the integer function result is returned in a 64-bit register (RAX),
and truncation it to sal_Int32 breaks any pointer return value.

Second, using explicit (not vararg) first function double argument would
pass it through XMM0, without also copying it to RCX (which is guaranteed
for varargs).

Ref: https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention
Change-Id: I08212c44d8690d6910068b13c16af2ce899c94f2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129808
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-11 12:56:03 +01:00
Julien Nabet a555aa25bd tdf#147262: CallByName() argument names does not match that of VBA
Change-Id: I3029b98abbe3b8facf01f0e50a7efdff545c2141
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129646
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2022-02-09 20:41:51 +01:00
Andreas Heinisch a79e7dc9e8 tdf#146672 - CDbl: skip spaces and tabs at the end of the scanned string
Change-Id: Ib7a4e8c7145b549a5327de23549d39d11f8590cf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129648
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2022-02-09 11:09:01 +01:00
VaibhavMalik4187 8b327cd86d tdf#147021 Use std::size() instead of SAL_N_ELEMENTS() macro
Change-Id: I4f5258ca5b37e9b1b4237c5d29e4a9e5362fa855
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129116
Reviewed-by: Arkadiy Illarionov <qarkai@gmail.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2022-02-06 21:38:32 +01:00
Mike Kaganski 5bd55c22c1 We know the length here
Change-Id: I630b7fbda7c9ebf578e74260a0d67eea32e9e429
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129549
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-06 13:13:49 +01:00
Andreas Heinisch 6a0f00d3b9 tdf#146742 - Move the initialization code of a method to SbMethod::Call
Change-Id: I516bacdcd22ed094a0e9b6e125e941f32fe88c82
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129238
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2022-02-03 09:43:37 +01:00
Mike Kaganski 30483a6e06 Use default argument
Change-Id: I44e9c2e5de2c041f2839b14a057e1b88fd6ea01f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129337
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-03 08:16:03 +01:00
Mike Kaganski af3316b6f6 SbRtl_Spc is exactly the same as SbRtl_Space
Change-Id: I0ccbffef348fc23ef5ca090ec2112abfe333e8e2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129332
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-02 18:04:17 +01:00
Mike Kaganski 6c4bc63218 Use OUStringBuffer in SbRtl_FormatNumber
Change-Id: Ie3e187b7dd1329f8fae04042fa6375c4bde3fa57
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129331
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-02 16:05:29 +01:00
Mike Kaganski a03b7d2a8d tdf#132388: reimplement fix for tdf#142487
Each call to css::i18n::XTextSearch::SearchForward transliterates input string,
making performance of repeated calls unacceptable. So prepare the transliterated
strings once, and use the offset sequence to map search results to indices into
original string.

Change-Id: Ie08dd5a408aca9a950067db285a480b41a3f9a16
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129162
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-01-30 15:19:39 +01:00
Ramreiso Kashung 124059f64a tdf#145614: Convert #define to enum
Change-Id: I1e89d233797461dc363bcd5021cc5347598ffff8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128001
Tested-by: Jenkins
Reviewed-by: Hossein <hossein@libreoffice.org>
2022-01-28 12:22:55 +01:00
VaibhavMalik4187 d1207a5f3a tdf#90341 Clean Up Excessive const_cast'ing
Change-Id: Ib4cab4a4e476b469378b0b86d0819d4642f38893
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128907
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-01-25 19:54:54 +01:00
Julien Nabet c1205c1cf6 Related tdf#146909: add missing IDIGNORE in Basic
Change-Id: Idbbceb2f5375d47c942bab70ce81f7be79b17478
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128780
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2022-01-22 15:56:25 +01:00
Noel Grandin a2eaf99e46 make comphelper::OInterfaceContainerHelper4 more threadsafe
(*) make all the methods that require an external mutex take a
std::unique_lock as a parameter, so that call sites cannot forget

(*) make the forEach method drop the lock when firing listener methods,
to reduce the odds of deadlock

Change-Id: I0a80e3b3d1c1c03b7de4a658d31fcc2847690903
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128415
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-01-14 21:04:10 +01:00
Gabor Kelemen 840b4eb2f3 Recheck modules [a-c]* with IWYU
See tdf#42949 for motivation

Change-Id: I74a3c3a67c3639376e2251c3eb917fa4139dfbd0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127808
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2022-01-13 08:26:15 +01:00
Andreas Heinisch 35aa82ef1c tdf#145693 - Argument name should be 'charcode' instead of 'string'
In addition, changed argument datatype from Int to Long.

Change-Id: I702e09b6b8061d7cf00dd403e4681a0ab348d4c5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128100
Tested-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2022-01-08 11:48:32 +01:00
Andreas Heinisch 565a5fdee3 tdf#145960 - Return type of boolean operators should be of type boolean
In addition, added missing vba test to the test routine.

Change-Id: I3ee837e1eab30f10e0a4169d11014f9b6574ad1c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127631
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-12-28 19:54:58 +01:00
Andreas Heinisch d8428094c7 tdf#144353, tdf#146281 - Correctly copy the information about variables
During the assignment of a variable, copy its information only if there
isn't already one present.

Change-Id: I29fcfcd10406f2af0708a879d57e0a3c704f179e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127387
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-12-27 20:48:55 +01:00
Mike Kaganski be596c0192 Nullify passed pointer in releaseDecimalPtr unconditionally
This was an implementation error ever since it was introduced
in commit 79d3bc4799.
The function is used to release the refcounted object, and the
calling code does not always set the pointer to another value
or discard it (see uses in basic/source/sbx/sbxvalue.cxx). If
it resets the pointer in some cases, it must do it always.

Change-Id: I17de412914935082d20f2a1a91ea6e4e289936aa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127254
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-12-23 10:34:19 +01:00
Noel Grandin 26f46b861d loplugin:flatten in accessibility..basic
Change-Id: If2cc282c2b135d634daf393a082c29049b10a677
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127223
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-21 13:43:06 +01:00
Noel Grandin fcba66fa86 osl::Mutex->std::mutex in ModuleInvocationProxy
Change-Id: I2ec935fb1c53338f475d5e8aec877f84824a56e9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127074
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-18 19:49:38 +01:00
Noel Grandin de9fa7b24c osl::Mutex->std::mutex in ImplRepository
Change-Id: Ie3cd416d32214fe4a0477c50bf49749ac620d76a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127072
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-18 19:08:28 +01:00
Noel Grandin 4f043fb3e7 osl::Mutex->std::mutex in CurrDirPool
Change-Id: I889f643266c6f087c34f681e71f27d8ab493e04c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127073
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-18 19:08:16 +01:00
Caolán McNamara 70591eb5ef ofz#42182 oss-build failure
since...

commit 47aabde053
Date:   Thu Dec 2 12:37:07 2021 +0200

    Make the tdf#97983 changes to BASIC optional

where LibreOffice6FloatingPointMode is called from
code not inside !HAVE_FEATURE_SCRIPTING

[LNK] Executable/pptfuzzer
basic/source/sbx/sbxvalue.cxx:1343: error: undefined reference to 'LibreOffice6FloatingPointMode()'
basic/source/sbx/sbxvalue.cxx:1328: error: undefined reference to 'LibreOffice6FloatingPointMode()'
basic/source/sbx/sbxvar.cxx:456: error: undefined reference to 'LibreOffice6FloatingPointMode()'
basic/source/sbx/sbxvar.cxx:441: error: undefined reference to 'LibreOffice6FloatingPointMode()'
clang-14: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [/src/libreoffice/vcl/Executable_pptfuzzer.mk:13: instdir/program/pptfuzzer] Error 1
make: *** [Makefile:170: Executable_pptfuzzer] Error 2

Change-Id: I8e635df26f30edf8acd9c148590d034e8b13c056
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126646
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-12-10 20:50:56 +01:00
Tor Lillqvist 47aabde053 Make the tdf#97983 changes to BASIC optional
If you want to keep the string to floating point conversion semantics
in BASIC as they were in LibreOffice 6, you can either set the
LIBREOFFICE6FLOATINGPOINTMODE environment variable to some non-empty
value, or set the org.openoffice.Office.Scripting/Basic/Compatibility/
UseLibreOffice6FloatingPointConversion flag in the Expert
Configuration. (Or use a registry modification file with that effect.)

Adapt the relevant unit test accordingly. Thanks to Mike Kaganski for
showing how to access the setting in the LibreOffice registry from
Basic.

Change-Id: I13d6d5d834e1bb81ef8df489db2b1da79f01dfc5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125756
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-12-09 12:06:49 +01:00
TheRock Builder 35cc52f778 Fix --disable-(avmedia|scripting)
So it's not a good idea to change the patch without testing it
again. I'm still hoping for a better usable MediaItem then the
previous dummy. The ODF stores a preview image and it should
allow to export the media.

The scripting fix feels like a workaround. somehow the final
class specifier triggers something that makes the linker fail
with missing destructors for all std::unique_ptr objects
derivated from SbxFactory. Implementing these as virtual
overrides didn't help, neither as {} or = default. So this
removes them in the  !"#if HAVE_FEATURE_SCRIPTING" case.

Change-Id: I9f6751f44e0247ed31c27be0ee816239795e9372
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126330
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-04 05:01:23 +01:00
Noel Grandin f9f5c9f0d6 replace comphelper::OListenerContainer with OInterfaceContainerHelper3
OInterfaceContainerHelper3 is in wide use and can do the same thing with
less ceremony

Change-Id: I5252738d6b7bda6245c66da46352944ead79bd52
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126271
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-03 20:42:00 +01:00
Tor Lillqvist d37341ea98 Bin pointless comment
Change-Id: I173dbfc93fabbacacc1a68189b7a50cd993f1caa
2021-12-02 11:26:28 +02:00
Mike Kaganski 59a90439a4 Simplify ImpStrChr and ImpScan
Change-Id: I8c752a7838ded7f3783982411ec937f46224d522
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126172
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-12-01 15:49:17 +01:00
Mike Kaganski c28a13b9e2 Unify and simplify floating-point-to-integer conversion
* Round the number once, to avoid doing it three times for a successful conversion.

* Round to nearest before convertsToAtMost/convertsToAtLeast, to handle cases like
    Dim n As Integer
    n = 32767.4
  which should succeed.

* Add overflow checks to Hyper (U/Int64) types.

Change-Id: Ib10837e6df3cc1e3aba7a657e882bd40e344fd3b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126173
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-12-01 14:03:30 +01:00
Noel Grandin d7cd65577d use more OInterfaceContainerHelper3 in ModifiableHelper
Change-Id: I8d959e365f995d48a6105fac3ed0f84c7cc1d86b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125920
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-27 08:09:11 +01:00
Noel Grandin 11599f6f00 use more OInterfaceContainerHelper3 in NameContainer
Change-Id: I75cb302156ea93fe0b545b22ca85a0c537cce760
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125919
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-27 06:48:07 +01:00
Noel Grandin ec1c4c4930 O[U]String::replaceAt overloads that take string_view
which results in lots of nice string_view improvements picked up by the
plugins

Change-Id: Ib0ec3887816b3d4436d003b739d9814f83e244b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125657
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-23 14:00:08 +01:00
Mike Kaganski 37429f2690 Use M_PI* instead of F_PI*
Change-Id: Ie2b7a1c74fc516781a17a20157b8217bc41e383d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125504
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-19 09:59:43 +01:00
Mike Kaganski fffc6b40b9 Drop unused argument names, and (void) noise
Change-Id: I75f313924db7d6a0658f9d7cc1d571767cec3144
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125364
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-18 13:05:44 +01:00
Julien Nabet ccfeef1a48 tdf#145725: document about VBASupport+RGB (no bug here)
Change-Id: I1a90509b7e5481bcf811f19889688c767c32e46b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125430
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-11-18 10:01:11 +01:00
Noel Grandin b3c6b3a274 rtl::Static to thread-safe static
Change-Id: I35e2a252708228bdbeaee557ef35763c64608653
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124884
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-09 08:28:56 +01:00
Noel Grandin a0e0575dcf forward decls go after #include
Change-Id: I54c33508639044092356eed5144720261b4f65db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124816
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-07 19:20:17 +01:00
Noel Grandin 6299c8cae9 loplugin:constparams
Change-Id: Iebeb531fad5cc819b536788925cf8508737198b7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124599
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-03 07:54:12 +01:00
Andreas Heinisch 27d96bfaea tdf#145371 - Delete array variable only before ReDim
Otherwise, global array variables don't maintain their state.

Change-Id: I10dafd9e2946630c5476c9858f765d67ef2f6d6c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124368
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-10-30 18:28:17 +02:00
Mike Kaganski 81a7d46d9f Prepare for removal of non-const operator[] from Sequence in basic
Change-Id: If048bc301c38ac5ac5412a7d8f69231705088a50
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124343
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-29 06:50:32 +02:00
Andreas Heinisch 7d27e4b025 tdf#57308 - Basic IDE: Watching of a variable does not work
Watching a variable which returns a value from a function always shows
"out of scope" in the watch window of the Basic IDE. In order to resolve
this issue, the name of the variable being watched will be searched also
in the current method instance.

Change-Id: I5ff6ce22067e11d74275eeb82da814da1eebe3db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124239
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-10-27 09:29:34 +02:00
Andreas Heinisch 514e83a0a5 Revert "tdf#57308 - Basic IDE: Watching of a variable does not work"
This reverts commit f9ce4b2d04.

Reason for revert: Cast to SbxVsriable instead of SbxMethod causes the code to start over

Change-Id: I8f00f8f13faef8cb8c6db4e8c2a096a921f8714b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124187
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-10-26 08:05:27 +02:00
Andreas Heinisch f9ce4b2d04 tdf#57308 - Basic IDE: Watching of a variable does not work
Watching a variable which returns a value from a function always shows
"out of scope" in the watch window of the Basic IDE. In order to resolve
this issue, the name of the variable being watched will be searched also
in the current method instance.

Change-Id: Id383e03925956056931d199fe86d1b352cf8e4eb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124075
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-10-25 13:22:09 +02:00
Andreas Heinisch 67c1591060 tdf#125637 - Correctly hand names ending with an underscore
If a name is ending with an underscore at the end of the line, it won't
be recognized correctly and it will be wrongly interpreted as the
respective name without the underscore at the end. Instead of changing
the macro source, use a flag in order to correclty identify the line end.

Change-Id: I6f933d7382b510bffed3e2692d32c232b7084624
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123833
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-10-20 20:27:59 +02:00
Noel Grandin 283a9790bf loplugin:indentation check for indent inside block
look for places where the statements inside a block are
not indented

Change-Id: I0cbfa7e0b6fb194b2aff6fa7e070fb907d70ca2f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123885
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-20 15:39:38 +02:00
Arnaud Versini 0f98bcdf4d basic: simplifiy class initialization
Change-Id: I87fa2f606011aab8e34d9445d9e9299786f05747
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123324
Tested-by: Jenkins
Reviewed-by: Arnaud Versini <arnaud.versini@libreoffice.org>
2021-10-17 21:25:44 +02:00
Julien Nabet cf3971a941 Simplify Sequence in b*
Change-Id: I0817d9a35a9c3fc43badb6cc60727de69849b063
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123720
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-10-17 14:13:10 +02:00