wizards/source/scriptforge/SF_Dictionary.xba |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

New commits:
commit 57e2245abf50cbd207d5c9c57ed67c055f8afcd6
Author:     Jean-Pierre Ledure <j...@ledure.be>
AuthorDate: Tue Dec 13 11:23:49 2022 +0100
Commit:     Jean-Pierre Ledure <j...@ledure.be>
CommitDate: Tue Dec 13 14:40:13 2022 +0000

    SF_Dictionary: tdf#152351 Fix ReplaceItem does not accept array as value
    
    Next basic code
       Dim myDict as Variant
       myDict = CreateScriptService("Dictionary")
       myDict.Add("key", Array())
       myDict.ReplaceItem("key", Array(1, 2, 3))
    produces an error message incriminating the user code.
    
    While it should run normally ...
    
    Fixed by enlarging the validation rules.
    
    Change-Id: I667abc81cb712308764c342d0e74b95821e46a5f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144041
    Tested-by: Jean-Pierre Ledure <j...@ledure.be>
    Reviewed-by: Jean-Pierre Ledure <j...@ledure.be>
    Tested-by: Jenkins

diff --git a/wizards/source/scriptforge/SF_Dictionary.xba 
b/wizards/source/scriptforge/SF_Dictionary.xba
index 367fc47553d8..22ada5148e2a 100644
--- a/wizards/source/scriptforge/SF_Dictionary.xba
+++ b/wizards/source/scriptforge/SF_Dictionary.xba
@@ -751,7 +751,11 @@ Const cstSubArgs = &quot;Key, Value&quot;
 Check:
        If SF_Utils._EnterFunction(cstThisSub, cstSubArgs) Then
                If Not SF_Utils._Validate(Key, &quot;Key&quot;, V_STRING) Then 
GoTo Catch
-               If Not SF_Utils._Validate(Value, &quot;Value&quot;) Then GoTo 
Catch
+               If IsArray(Value) Then
+                       If Not SF_Utils._ValidateArray(Value, 
&quot;Value&quot;) Then GoTo Catch
+               Else
+                       If Not SF_Utils._Validate(Value, &quot;Value&quot;) 
Then GoTo Catch
+               End If
        End If
        If Not Exists(Key) Then GoTo CatchUnknown
 

Reply via email to