Modify

#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 by anonymous, on Feb 21, 2018 at 12:06:50 AM

$j = Call("IsArray", $aEmpty)

Also crashes, Call() doesn't seem to handle empty arrays as parameters well.

comment:2 by anonymous, 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 anonymous, 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 BrewManNH, on Feb 21, 2018 at 8:52:32 PM

Resolution: No Bug
Status: newclosed

Why would you use such a silly method to call a builtin function in the first place?

comment:5 by Melba23, 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

Last edited on Feb 22, 2018 at 8:57:43 AM by Melba23 (previous) (diff)

Modify Ticket

Action
as closed The ticket will remain with no owner.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.