#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:1 Changed 7 years ago by anonymous
comment:2 Changed 7 years ago by anonymous
I figured it out. For some reason
$j = Call("Ubound", "$aEmpty")
works. But
$j = Call("Ubound", $aEmpty)
doesn't.
comment:3 Changed 7 years ago by anonymous
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 Changed 7 years ago by BrewManNH
- Resolution set to No Bug
- Status changed from new to closed
Why would you use such a silly method to call a builtin function in the first place?
comment:5 Changed 7 years ago by Melba23
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
Guidelines for posting comments:
- You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
- In-depth discussions should take place on the forum.
For more information see the full version of the ticket guidelines here.
Also crashes, Call() doesn't seem to handle empty arrays as parameters well.