Modify

Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#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

Change History (5)

comment:1 Changed 7 years ago by anonymous

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

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

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

Last edited 7 years ago by Melba23 (previous) (diff)

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.

Add Comment

Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.