Opened on Feb 20, 2018 at 11:54:42 PM
Closed on Feb 21, 2018 at 8:52:32 PM
Last modified on Feb 22, 2018 at 8:57:43 AM
#3595 closed Bug (No Bug)
Call("Ubound", $array) crashes if $array is empty
| Reported by: | anonymous | Owned by: | |
|---|---|---|---|
| Milestone: | Component: | AutoIt | |
| Version: | 3.3.14.2 | Severity: | None |
| Keywords: | Cc: |
Description
Global $aNumbers[3] = [3, 5, 6]
Global $aEmpty[0]
$i = Call("Ubound", $aNumbers);//Works on non-empty arrays
MsgBox(0, '1st array', $i)
$j = Call("Ubound", $aEmpty);//Crashes when array is empty instead of returning 0
Problem signature:
Problem Event Name: APPCRASH
Application Name: autoit3.exe
Application Version: 3.3.14.2
Application Timestamp: 55fc1979
Fault Module Name: autoit3.exe
Fault Module Version: 3.3.14.2
Fault Module Timestamp: 55fc1979
Exception Code: c0000005
Exception Offset: 00004d46
OS Version: 6.1.7601.2.1.0.256.48
Locale ID: 1033
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
Wrapper info:
"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "E:\New folder\Encoded_7TMF.au3" /UserParams
+>06:52:19 Starting AutoIt3Wrapper v.15.920.938.0 SciTE v.3.6.0.0 Keyboard:00000409 OS:WIN_7/Service Pack 1 CPU:X64 OS:X64 Environment(Language:0409)
+> SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE UserDir => C:\Users\X\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper SCITE_USERHOME => C:\Users\X\AppData\Local\AutoIt v3\SciTE
Running AU3Check (3.3.14.2) from:C:\Program Files (x86)\AutoIt3 input:E:\New folder\Encoded_7TMF.au3
+>06:52:19 AU3Check ended.rc:0
Running:(3.3.14.2):C:\Program Files (x86)\AutoIt3\autoit3.exe "E:\New folder\Encoded_7TMF.au3"
--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
!>06:52:21 AutoIt3.exe ended.rc:-1073741819
+>06:52:21 AutoIt3Wrapper Finished.
Exit code: 3221225477 Time: 1.893
Attachments (0)
Change History (5)
comment:2 by , on Feb 21, 2018 at 12:16:07 AM
I figured it out. For some reason
$j = Call("Ubound", "$aEmpty")
works. But
$j = Call("Ubound", $aEmpty)
doesn't.
comment:3 by , on Feb 21, 2018 at 12:35:22 AM
If I'm not wrong Autoit3.exe parses the value of $aEmpty first before loading the function Call() in my first example.
For it to work as intended I need to put the quotes in the parameters as well.
comment:4 by , on Feb 21, 2018 at 8:52:32 PM
| Resolution: | → No Bug |
|---|---|
| Status: | new → closed |
Why would you use such a silly method to call a builtin function in the first place?
comment:5 by , on Feb 22, 2018 at 8:57:23 AM
It also works if you add the optional parameter:
{{{$i = Call("Ubound", $aEmpty, 1)
MsgBox(0, 'Call Empty + param', $i)}}}
But I agree with BrewManNH - unless you can come up with a sensible use case this is so obscure it does not deserve to have any time spent on it.
M23

$j = Call("IsArray", $aEmpty)Also crashes, Call() doesn't seem to handle empty arrays as parameters well.