v1.0.40.08 メモリリークバグ修正

関数の再帰コール時のメモリリークバグが修正されたっぽい。試しに再度テストしてみたが実行するごとにメモリ使用量が増えていく現象はなくなった。ただ、テストでは再帰関数とそうでない関数でメモリ使用量が倍近く変化する。

起動時 メモリ常駐: 3980kb 仮想メモリ: 2352kb
test1(通常)実行 メモリ常駐: 3988kb 仮想メモリ: 2364kb
test2(再帰)実行 メモリ常駐: 6568kb 仮想メモリ: 4972kb
test2(再帰)実行 メモリ常駐: 6572kb 仮想メモリ: 4972kb

再帰関数の方が普通よりメモリ食うってことですかね。テストの内容にもよるかもだけど

#1::    OutputDebug, % test1(2,100)
#2::    OutputDebug, % test2(2,100)

test1(add,cnt)
{
    result=0
    loop,%cnt%
        result := add + result
    return result
}
test2(add,cnt)
{
    result=0
    if (cnt > 0)
        result := add + test2(add,cnt-1)
    return result
}