Custom Query (3927 matches)
Results (148 - 150 of 3927)
| Ticket | Resolution | Summary | Owner | Reporter |
|---|---|---|---|---|
| #1357 | Rejected | New concatenation operator for Static | ||
| Description |
Special concatenation operator with new Static is missing. This shows the problem: For $i = 0 To 100 ConsoleWrite(StringLen(_String()) & @CRLF) Next Func _String() Local Static $sString = "Variable That Would Exceed Script Line Limit If It's All Here" $sString &= "The Rest Of The Variable" ; <- This adds over and over Return $sString EndFunc |
|||
| #1565 | Fixed | Arrays as object properties; memory leak | ||
| Description |
If arrays are used with objects as e.g. properties some sort of memory leak occurs. This seems to be specific only to Array type. Example (monitor memory usage during execution): $a = StringSplit("a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z", ",")
MsgBox(0, "", "start")
For $count = 0 To 10000
$obj = ObjCreate("Scripting.Dictionary")
$obj.add("test", $a)
$obj = 0
Next
MsgBox(0, "", "stop")
For possible comparisons, VBS version would be: a = Split("a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z", ",")
MsgBox("start")
For count = 0 to 10000
Set obj=CreateObject("Scripting.Dictionary")
obj.add "test", a
Set obj = Nothing
Next
MsgBox("stop")
No leak there (or with some other languages). |
|||
| #1566 | Fixed | Array as its own element issue | ||
| 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)
|
|||
