Modify ↓
Opened 16 years ago
Closed 14 years ago
#1566 closed Bug (Fixed)
Array as its own element issue
| Reported by: | trancexx | Owned by: | trancexx |
|---|---|---|---|
| Milestone: | 3.3.9.3 | Component: | AutoIt |
| Version: | 3.3.6.0 | Severity: | None |
| Keywords: | Cc: |
Description
Code is:
#include <Array.au3> Global $a[3] = [1, 2, 3] $a[1] = $a ; And then $b = $a[1] $c = $b[1] $d = $c[1] $e = $d[1] $f = $e[1] ;... _ArrayDisplay($a, "Displaying $a") _ArrayDisplay($b, "Displaying $b") _ArrayDisplay($c, "Displaying $c") _ArrayDisplay($d, "Displaying $d") _ArrayDisplay($e, "Displaying $e") _ArrayDisplay($f, "Displaying $f")
If array (old) is put as some element of its own endless* recursion occurs. Expected would be $b to be 1, 2, 3.
Obvious workaround works as expected.
I tried to determine how deep it goes but my RAM was sucked up. 10000 here:
#AutoIt3Wrapper_Run_Au3check=n
Global $0[3] = [1, 2, 3]
$0[1] = $0
$iMax = 10000 ; Probably 16000000 / 3 is the max
For $i = 1 To $iMax
Assign($i, Execute("$" & $i - 1 & "[1]"))
Next
_ArrayDisplay(Eval($iMax), "Displaying $" & $iMax)
If this is combined with Ticket #1565 AutoIt crashes (stack overflow).
$a = StringSplit("ab", "")
$a[1] = $a
$obj=ObjCreate("Scripting.Dictionary")
MsgBox(64, "", "It will crash now")
$obj.add("test", $a)
Attachments (0)
Change History (2)
comment:1 by , 16 years ago
| Owner: | set to |
|---|---|
| Status: | new → assigned |
comment:2 by , 14 years ago
| Milestone: | → 3.3.9.3 |
|---|---|
| Owner: | changed from to |
| Resolution: | → Fixed |
| Status: | assigned → closed |
Note:
See TracTickets
for help on using tickets.

Fixed by revision [6885] in version: 3.3.9.3