I've tested this code with Ardunio and there is no memory leak:
B4X:
Sub Process_Globals
Public Serial1 As Serial
Private sd As SD
End Sub
Private Sub AppStart
Serial1.Initialize(115200)
Log("AppStart")
Log(sd.Initialize(4)) '4 is the CS pin when using the ethernet shield
For i = 1 To 100
ListFiles
Log("********************************** ", AvailableRAM)
Next
End Sub
Sub ListFiles
For Each f As File In sd.ListFiles("/")
Log(f.Name, TAB, Round(f.Size / 1024), "kb", TAB, f.IsDirectory)
Next
End Sub
Might be an issue specific to ESP8266.
If you can please add some debug messages in rSD.cpp:
First one in FileIterator::MoveNext:
I add the code to rSD.cpp, I can see the "closing dir" log, the memory still leaking.
B4X:
********************* PROGRAM STARTING ****************
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 47032
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 46720
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 46408
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 46096
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 45784
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 45472
System Volume Information 0kb 1
SDExistsStatus 0kb 0
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 47032
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 46720
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 46408
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 46096
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 45784
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 45472
System Volume Information 0kb 1
SDExistsStatus 0kb 0
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 47032
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 46720
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 46408
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 46096
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 45784
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 45472
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 45160
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 44848
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 44536
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 44224
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 43912
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 43600
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 43288
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 42976
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 42664
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 42352
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 42040
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 41728
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 41416
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 41104
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 40792
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 40480
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 40168
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 39856
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 39544
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 39232
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 38920
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 38608
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 38296
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 37984
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 37672
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 37360
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 37048
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 36736
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 36424
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 36112
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 35800
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 35488
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 35176
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 34864
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 34552
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 34240
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 33928
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 33616
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 33304
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 32992
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 32680
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 32368
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 32056
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 31744
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 31432
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 31120
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 30808
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 30496
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 30184
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 29872
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 29560
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 29248
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 28936
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 28624
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 28312
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 28000
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 27688
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 27376
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 27064
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 26752
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 26440
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 26128
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 25816
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 25504
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 25192
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 24568
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 24568
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 24256
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 23944
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 23632
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 23320
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 22696
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 22696
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 22384
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 22072
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 21760
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 21448
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 21136
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 20824
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 20512
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 20200
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 19888
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 19576
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 19264
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 18952
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 18640
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 18328
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 18016
System Volume Information 0kb 1
SDExistsStatus 0kb 0
test 0kb 1
closing dir
********************************** 17704