LZLE List Engine with user friendly powerfull syntax - BETA 0.997a

User projects written in or related to FreeBASIC.
Post Reply
StringEpsilon
Posts: 42
Joined: Apr 09, 2015 20:49

Re: LZLE List Engine with user friendly powerfull syntax - Alpha1 Frozen (Latest FIX 27/04)

Post by StringEpsilon »

Lost Zergling wrote:Hello String Epsilon.
I am not very used to the logs of the grid of values. About memory leaks, do you know if it is a fixed leak, proportionnal with the size of the lists or both ?
It seems like it leaks the size of ListContainer each time List.AllowPancake() hits the else-path.

Core issue seems to be the usage of MaListe.val()

As of the nastyness: The example leaks a total of 8.5 kilobyte. That's quite a lot of memory for something that only demoes a list. pValTmp accounts for 527 bytes from 4 calls to AllowPancake().

An interesting leak I found is in Example 4.

Code: Select all

LIST.DESTROY
LIST.DROPALL
LIST.GARBAGECOLLECTOR
LIST.VAL(<string>)
LIST.VALPRIVATE(<string>)
LIST.ALLOWPANCAKE
Destroy calls dropall, which then calls garbagecollector and so on. This ends up with AllowPancake being called and it hits the else-path and allocates memory, even though the List should clean up on itself. The allocated memory then never gets cleared.
Lost Zergling
Posts: 538
Joined: Dec 02, 2011 22:51
Location: France

Re: LZLE List Engine with user friendly powerfull syntax - Alpha1 Frozen (Latest FIX 27/04)

Post by Lost Zergling »

I'll try to fix it either. Thanks.
paul doe
Moderator
Posts: 1733
Joined: Jul 25, 2017 17:22
Location: Argentina

Re: LZLE List Engine with user friendly powerfull syntax - Alpha1 Frozen (Latest FIX 27/04)

Post by paul doe »

Lost Zergling wrote:@Paul Doe. I'll try to do my best even thought it is not perfect or bugged. Your post was interesting for me because it forces me to improve the level of requirement. Welcome back with suggestions as your choice.
As you wish. I hope that you at least heed the advice you're receiving (which is quite a lot), instead of choosing to ignore it (as if you've had a choice in the first place):
Lost Zergling wrote:...however it would not be unacceptable (for not too demanding users) what would not be the case of a significant memory loss proportional to the load...
What!? The app shouldn't leak a zzzzzingle byte, much less kilobytes.
StringEpsilon wrote:As of the nastyness: The example leaks a total of 8.5 kilobyte. That's quite a lot of memory for something that only demoes a list. pValTmp accounts for 527 bytes from 4 calls to AllowPancake().
@Lost Zergling: to put this in perspective, let's assume a similar load for another app, that does something like this:

Code: Select all

dim as uinteger numLists = 1000
dim as List compositeList( 0 to numLists - 1)
Which is an entirely possible scenario if you want to make, for example, a composite list (and also simply because you're providing the 'library' as an object). That line alone will leak 8,3 MB. Imagine what would happen with higher loads...
Worse still: the longer the program runs, the more memory it leaks.

This is the report produced by Dr. Memory (a tool similar to valgrind but has a Win32 version) for 'exemple 5.bas'. I removed some entries that didn't had anything to do with your code, and also splitted it in two posts because the report doesn't fit in one:

Code: Select all

Dr. Memory version 1.11.0 build 2 built on Aug 29 2016 02:42:07
Dr. Memory results for pid 6220: "example-5.exe"
Application cmdline: "example-5.exe"
Recorded 115 suppression(s) from default C:\Programming\DrMemory-Windows-1.11.0-2\bin\suppress-default.txt
Running on an unsupported operating system. Please download http://drmemory.org/syscalls_wow64.txt and save as C:\Programming\DrMemory-Windows-1.11.0-2\bin\syscalls_wow64.txt to avoid false positives and other problems. If that fails, please file a bug report.

Error #1: UNADDRESSABLE ACCESS beyond heap bounds: writing 0x048e14b9-0x048e14ba 1 byte(s)
# 0 fb_hStrCopy@12                  [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 1 fb_StrAssignEx@24               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssign@20                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 main                            [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:8]
Note: @0:00:07.439 in thread 7760
Note: next higher malloc: 0x048e14e0-0x048e14e1
Note: refers to 0 byte(s) beyond last valid byte in prior malloc
Note: prev lower malloc:  0x048e14b8-0x048e14b9
Note: instruction: mov    $0x00 -> (%edi)

Error #7: UNADDRESSABLE ACCESS of freed memory: writing 0x048e0e30-0x048e0e34 4 byte(s)
# 0 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:966]
# 1 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:46]
Note: @0:00:09.250 in thread 7760
Note: next higher malloc: 0x048e0e60-0x048e0e85
Note: prev lower malloc:  0x048e0d70-0x048e0da4
Note: 0x048e0e30-0x048e0e34 overlaps memory 0x048e0e10-0x048e0e40 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:46]
Note: instruction: mov    %eax -> (%edx)

Error #8: UNADDRESSABLE ACCESS of freed memory: writing 0x048e1308-0x048e130c 4 byte(s)
# 0 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:966]
# 1 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.312 in thread 7760
Note: next higher malloc: 0x048e1338-0x048e135d
Note: prev lower malloc:  0x048e1248-0x048e127c
Note: 0x048e1308-0x048e130c overlaps memory 0x048e12e8-0x048e1318 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    %eax -> (%edx)

Error #9: UNADDRESSABLE ACCESS of freed memory: writing 0x048e3b4c-0x048e3b50 4 byte(s)
# 0 LIST::ROOT__get__@4                  [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:501]
# 1 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 2 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 3 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.359 in thread 7760
Note: next higher malloc: 0x048e3b80-0x048e3ba5
Note: prev lower malloc:  0x048e3950-0x048e3975
Note: 0x048e3b4c-0x048e3b50 overlaps memory 0x048e3b30-0x048e3b60 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:955]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    %eax -> (%edx)

Error #10: UNADDRESSABLE ACCESS of freed memory: writing 0x048e3b4c-0x048e3b50 4 byte(s)
# 0 LIST::ROOT__get__@4                  [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:501]
# 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 2 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 3 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 4 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.375 in thread 7760
Note: next higher malloc: 0x048e3b80-0x048e3ba5
Note: prev lower malloc:  0x048e3950-0x048e3975
Note: 0x048e3b4c-0x048e3b50 overlaps memory 0x048e3b30-0x048e3b60 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:955]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    %eax -> (%edx)

Error #11: UNADDRESSABLE ACCESS of freed memory: reading 0x048e12ec-0x048e12f0 4 byte(s)
# 0 fb_StrCompare@16                     [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 1 LIST::FLAT__get__@4                  [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:174]
# 2 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 3 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 4 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 5 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.390 in thread 7760
Note: next higher malloc: 0x048e1338-0x048e135d
Note: prev lower malloc:  0x048e1248-0x048e127c
Note: 0x048e12ec-0x048e12f0 overlaps memory 0x048e12e8-0x048e1318 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    0x04(%ebp) -> %edx

Error #12: UNADDRESSABLE ACCESS of freed memory: reading 0x048e12e8-0x048e12ec 4 byte(s)
# 0 fb_StrCompare@16                     [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 1 LIST::FLAT__get__@4                  [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:174]
# 2 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 3 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 4 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 5 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.406 in thread 7760
Note: next higher malloc: 0x048e1338-0x048e135d
Note: prev lower malloc:  0x048e1248-0x048e127c
Note: 0x048e12e8-0x048e12ec overlaps memory 0x048e12e8-0x048e1318 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    0x00(%ebp) -> %esi

Error #13: UNADDRESSABLE ACCESS of freed memory: reading 0x048e12ec-0x048e12f0 4 byte(s)
# 0 fb_hStrDelTemp_NoLock@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 1 fb_StrCompare@16                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 LIST::FLAT__get__@4                   [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:174]
# 3 LIST::DROPALL__get__@4                [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 4 LIST::DESTROY__get__@4                [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 5 LIST::~LIST                           [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 6 main                                  [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.422 in thread 7760
Note: next higher malloc: 0x048e1338-0x048e135d
Note: prev lower malloc:  0x048e1248-0x048e127c
Note: 0x048e12ec-0x048e12f0 overlaps memory 0x048e12e8-0x048e1318 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    0x04(%ebx) -> %eax

Error #14: UNADDRESSABLE ACCESS of freed memory: reading 0x048e130c-0x048e1310 4 byte(s)
# 0 LIST::FLAT__get__@4                  [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:174]
# 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 2 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 3 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 4 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.437 in thread 7760
Note: next higher malloc: 0x048e1338-0x048e135d
Note: prev lower malloc:  0x048e1248-0x048e127c
Note: 0x048e130c-0x048e1310 overlaps memory 0x048e12e8-0x048e1318 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    (%eax) -> %eax

Error #15: UNADDRESSABLE ACCESS of freed memory: reading 0x048e1304-0x048e1308 4 byte(s)
# 0 LIST::FLAT__get__@4                  [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:178]
# 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 2 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 3 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 4 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.453 in thread 7760
Note: next higher malloc: 0x048e1338-0x048e135d
Note: prev lower malloc:  0x048e1248-0x048e127c
Note: 0x048e1304-0x048e1308 overlaps memory 0x048e12e8-0x048e1318 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    (%eax) -> %eax

Error #16: UNADDRESSABLE ACCESS of freed memory: reading 0x048e1304-0x048e1308 4 byte(s)
# 0 LIST::FLAT__get__@4                  [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:178]
# 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 2 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 3 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 4 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.469 in thread 7760
Note: next higher malloc: 0x048e1338-0x048e135d
Note: prev lower malloc:  0x048e1248-0x048e127c
Note: 0x048e1304-0x048e1308 overlaps memory 0x048e12e8-0x048e1318 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    0x1c(%eax) -> %eax

Error #17: UNADDRESSABLE ACCESS of freed memory: reading 0x048e1304-0x048e1308 4 byte(s)
# 0 LIST::GARBAGECOLLECTOR__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:189]
# 1 LIST::DROPALL__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 2 LIST::DESTROY__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 3 LIST::~LIST                                   [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 4 main                                          [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.484 in thread 7760
Note: next higher malloc: 0x048e1338-0x048e135d
Note: prev lower malloc:  0x048e1248-0x048e127c
Note: 0x048e1304-0x048e1308 overlaps memory 0x048e12e8-0x048e1318 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    (%eax) -> %eax

Error #18: UNADDRESSABLE ACCESS of freed memory: reading 0x048e12ec-0x048e12f0 4 byte(s)
# 0 fb_StrAssignEx@24                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 1 fb_StrAssign@20                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 3 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 4 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 5 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.500 in thread 7760
Note: next higher malloc: 0x048e1338-0x048e135d
Note: prev lower malloc:  0x048e1248-0x048e127c
Note: 0x048e12ec-0x048e12f0 overlaps memory 0x048e12e8-0x048e1318 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    0x04(%ebx) -> %eax

Error #19: UNADDRESSABLE ACCESS of freed memory: reading 0x048e12e8-0x048e12ec 4 byte(s)
# 0 fb_StrAssignEx@24                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 1 fb_StrAssign@20                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 3 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 4 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 5 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.515 in thread 7760
Note: next higher malloc: 0x048e1338-0x048e135d
Note: prev lower malloc:  0x048e1248-0x048e127c
Note: 0x048e12e8-0x048e12ec overlaps memory 0x048e12e8-0x048e1318 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    (%ebx) -> %eax

Error #20: UNADDRESSABLE ACCESS of freed memory: reading 0x048e12f4-0x048e12f8 4 byte(s)
# 0 fb_StrDelete@4                       [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 1 fb_StrAssignEx@24                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssign@20                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 4 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 5 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 6 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.531 in thread 7760
Note: next higher malloc: 0x048e1338-0x048e135d
Note: prev lower malloc:  0x048e1248-0x048e127c
Note: 0x048e12f4-0x048e12f8 overlaps memory 0x048e12e8-0x048e1318 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    (%ebx) -> %eax

Error #21: UNADDRESSABLE ACCESS of freed memory: reading 0x048e1300-0x048e1304 4 byte(s)
# 0 LIST::GARBAGECOLLECTOR__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:191]
# 1 LIST::DROPALL__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 2 LIST::DESTROY__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 3 LIST::~LIST                                   [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 4 main                                          [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.547 in thread 7760
Note: next higher malloc: 0x048e1338-0x048e135d
Note: prev lower malloc:  0x048e1248-0x048e127c
Note: 0x048e1300-0x048e1304 overlaps memory 0x048e12e8-0x048e1318 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    (%eax) -> %eax

Error #22: UNADDRESSABLE ACCESS of freed memory: reading 0x048e1304-0x048e1308 4 byte(s)
# 0 LIST::GARBAGECOLLECTOR__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:192]
# 1 LIST::DROPALL__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 2 LIST::DESTROY__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 3 LIST::~LIST                                   [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 4 main                                          [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.547 in thread 7760
Note: next higher malloc: 0x048e1338-0x048e135d
Note: prev lower malloc:  0x048e1248-0x048e127c
Note: 0x048e1304-0x048e1308 overlaps memory 0x048e12e8-0x048e1318 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    0x1c(%eax) -> %eax

Error #23: UNADDRESSABLE ACCESS of freed memory: reading 0x048e3b48-0x048e3b4c 4 byte(s)
# 0 LIST::GARBAGECOLLECTOR__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:191]
# 1 LIST::DROPALL__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 2 LIST::DESTROY__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 3 LIST::~LIST                                   [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 4 main                                          [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.578 in thread 7760
Note: next higher malloc: 0x048e3b80-0x048e3ba5
Note: prev lower malloc:  0x048e3950-0x048e3975
Note: 0x048e3b48-0x048e3b4c overlaps memory 0x048e3b30-0x048e3b60 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:955]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    (%eax) -> %eax

Error #24: UNADDRESSABLE ACCESS of freed memory: reading 0x048e3b48-0x048e3b4c 4 byte(s)
# 0 LIST::GARBAGECOLLECTOR__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:191]
# 1 LIST::DROPALL__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 2 LIST::DESTROY__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 3 LIST::~LIST                                   [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 4 main                                          [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.578 in thread 7760
Note: next higher malloc: 0x048e3b80-0x048e3ba5
Note: prev lower malloc:  0x048e3950-0x048e3975
Note: 0x048e3b48-0x048e3b4c overlaps memory 0x048e3b30-0x048e3b60 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:955]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    0x18(%eax) -> %eax

Error #25: UNADDRESSABLE ACCESS of freed memory: writing 0x048e3b48-0x048e3b4c 4 byte(s)
# 0 LIST::GARBAGECOLLECTOR__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:191]
# 1 LIST::DROPALL__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 2 LIST::DESTROY__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 3 LIST::~LIST                                   [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 4 main                                          [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.594 in thread 7760
Note: next higher malloc: 0x048e3b80-0x048e3ba5
Note: prev lower malloc:  0x048e3950-0x048e3975
Note: 0x048e3b48-0x048e3b4c overlaps memory 0x048e3b30-0x048e3b60 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:955]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    $0x00000000 -> (%eax)

Error #26: UNADDRESSABLE ACCESS of freed memory: reading 0x048e3b48-0x048e3b4c 4 byte(s)
# 0 LIST::VALPRIVATE__get__@8                     [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:288]
# 1 LIST::VAL__get__@8                            [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:439]
# 2 LIST::GARBAGECOLLECTOR__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:195]
# 3 LIST::DROPALL__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 4 LIST::DESTROY__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 5 LIST::~LIST                                   [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 6 main                                          [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.625 in thread 7760
Note: next higher malloc: 0x048e3b80-0x048e3ba5
Note: prev lower malloc:  0x048e3950-0x048e3975
Note: 0x048e3b48-0x048e3b4c overlaps memory 0x048e3b30-0x048e3b60 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:955]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    (%eax) -> %eax

Error #27: UNADDRESSABLE ACCESS of freed memory: writing 0x048e3b48-0x048e3b4c 4 byte(s)
# 0 LIST::VALPRIVATE__get__@8                     [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:288]
# 1 LIST::VAL__get__@8                            [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:439]
# 2 LIST::GARBAGECOLLECTOR__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:195]
# 3 LIST::DROPALL__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 4 LIST::DESTROY__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 5 LIST::~LIST                                   [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 6 main                                          [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.640 in thread 7760
Note: next higher malloc: 0x048e3b80-0x048e3ba5
Note: prev lower malloc:  0x048e3950-0x048e3975
Note: 0x048e3b48-0x048e3b4c overlaps memory 0x048e3b30-0x048e3b60 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:955]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    %eax -> (%edx)

Error #28: UNADDRESSABLE ACCESS of freed memory: reading 0x048e3b48-0x048e3b4c 4 byte(s)
# 0 LIST::VALPRIVATE__get__@8                     [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:288]
# 1 LIST::VAL__get__@8                            [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:439]
# 2 LIST::GARBAGECOLLECTOR__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:195]
# 3 LIST::DROPALL__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 4 LIST::DESTROY__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 5 LIST::~LIST                                   [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 6 main                                          [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.656 in thread 7760
Note: next higher malloc: 0x048e3b80-0x048e3ba5
Note: prev lower malloc:  0x048e3950-0x048e3975
Note: 0x048e3b48-0x048e3b4c overlaps memory 0x048e3b30-0x048e3b60 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:955]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    (%eax) -> %eax
Last edited by paul doe on Apr 29, 2018 1:13, edited 4 times in total.
paul doe
Moderator
Posts: 1733
Joined: Jul 25, 2017 17:22
Location: Argentina

Re: LZLE List Engine with user friendly powerfull syntax - Alpha1 Frozen (Latest FIX 27/04)

Post by paul doe »

Code: Select all

Error #29: UNADDRESSABLE ACCESS of freed memory: reading 0x048e1304-0x048e1308 4 byte(s)
# 0 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:939]
# 1 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 2 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 3 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.672 in thread 7760
Note: next higher malloc: 0x048e1338-0x048e135d
Note: prev lower malloc:  0x048e1248-0x048e127c
Note: 0x048e1304-0x048e1308 overlaps memory 0x048e12e8-0x048e1318 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    (%eax) -> %edx

Error #30: UNADDRESSABLE ACCESS of freed memory: reading 0x048e1304-0x048e1308 4 byte(s)
# 0 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:939]
# 1 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 2 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 3 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.687 in thread 7760
Note: next higher malloc: 0x048e1338-0x048e135d
Note: prev lower malloc:  0x048e1248-0x048e127c
Note: 0x048e1304-0x048e1308 overlaps memory 0x048e12e8-0x048e1318 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    (%eax) -> %eax

Error #31: INVALID HEAP ARGUMENT to free 0x048e12e8
# 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
# 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:950]
# 2 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 3 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 4 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.703 in thread 7760
Note: next higher malloc: 0x048e1338-0x048e135d
Note: prev lower malloc:  0x048e1248-0x048e127c
Note: memory was previously freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]

Error #32: INVALID HEAP ARGUMENT to free 0x048e3b30
# 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
# 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:955]
# 2 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 3 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 4 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.703 in thread 7760
Note: next higher malloc: 0x048e3b80-0x048e3ba5
Note: prev lower malloc:  0x048e3950-0x048e3975
Note: memory was previously freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:955]
Note: # 2 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]

Error #33: UNADDRESSABLE ACCESS of freed memory: writing 0x048e6e70-0x048e6e74 4 byte(s)
# 0 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:966]
# 1 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 2 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 3 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.719 in thread 7760
Note: next higher malloc: 0x048e6ea0-0x048e6ec5
Note: prev lower malloc:  0x048e6ce8-0x048e6d0d
Note: 0x048e6e70-0x048e6e74 overlaps memory 0x048e6e50-0x048e6e80 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
Note: # 3 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
Note: # 4 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    %eax -> (%edx)

Error #34: UNADDRESSABLE ACCESS of freed memory: writing 0x048e71a0-0x048e71a4 4 byte(s)
# 0 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:966]
# 1 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 2 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 3 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: @0:00:09.765 in thread 7760
Note: next higher malloc: 0x048e71d0-0x048e71f5
Note: prev lower malloc:  0x048e70f0-0x048e7115
Note: 0x048e71a0-0x048e71a4 overlaps memory 0x048e7180-0x048e71b0 that was freed here:
Note: # 0 replace_free                         [d:\drmemory_package\common\alloc_replace.c:2706]
Note: # 1 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:943]
Note: # 2 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
Note: # 3 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
Note: # 4 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]
Note: instruction: mov    %eax -> (%edx)

Error #35: LEAK 37 direct bytes 0x048e0bb8-0x048e0bdd + 0 indirect bytes
# 0 replace_malloc                  [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 main                            [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:3]

Error #36: LEAK 37 direct bytes 0x048e0ce0-0x048e0d05 + 0 indirect bytes
# 0 replace_malloc                    [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                   [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 LIST::ROOT__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:485]
# 5 LIST::LIST                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:148]
# 6 main                              [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:3]

Error #37: LEAK 52 direct bytes 0x048e0d70-0x048e0da4 + 37 indirect bytes
# 0 replace_calloc                            [d:\drmemory_package\common\alloc_replace.c:2616]
# 1 LIST::ALLOWPANCAKE__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:164]
# 2 LIST::VALPRIVATE__get__@8                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:288]
# 3 LIST::VAL__get__@8                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:439]
# 4 LIST::ROOT__get__@4                       [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:485]
# 5 LIST::LIST                                [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:148]
# 6 main                                      [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:3]

Error #38: LEAK 37 direct bytes 0x048e0e60-0x048e0e85 + 0 indirect bytes
# 0 replace_malloc                         [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 LIST::FLATSTACK__get__@8               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:267]
# 5 LIST::ROOT__get__@4                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:490]
# 6 LIST::LIST                             [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:148]
# 7 main                                   [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:3]

Error #39: LEAK 37 direct bytes 0x048e1090-0x048e10b5 + 0 indirect bytes
# 0 replace_malloc                  [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 main                            [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:4]

Error #40: LEAK 37 direct bytes 0x048e11b8-0x048e11dd + 0 indirect bytes
# 0 replace_malloc                    [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                   [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 LIST::ROOT__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:485]
# 5 LIST::LIST                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:148]
# 6 main                              [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:4]

Error #41: LEAK 52 direct bytes 0x048e1248-0x048e127c + 37 indirect bytes
# 0 replace_calloc                            [d:\drmemory_package\common\alloc_replace.c:2616]
# 1 LIST::ALLOWPANCAKE__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:164]
# 2 LIST::VALPRIVATE__get__@8                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:288]
# 3 LIST::VAL__get__@8                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:439]
# 4 LIST::ROOT__get__@4                       [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:485]
# 5 LIST::LIST                                [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:148]
# 6 main                                      [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:4]

Error #42: LEAK 37 direct bytes 0x048e1338-0x048e135d + 0 indirect bytes
# 0 replace_malloc                         [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 LIST::FLATSTACK__get__@8               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:267]
# 5 LIST::ROOT__get__@4                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:490]
# 6 LIST::LIST                             [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:148]
# 7 main                                   [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:4]

Error #43: LEAK 37 direct bytes 0x048e15c8-0x048e15ed + 0 indirect bytes
# 0 replace_malloc                  [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 main                            [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:8]

Error #44: LEAK 48 direct bytes 0x048e2be0-0x048e2c10 + 547 indirect bytes
# 0 replace_calloc                         [d:\drmemory_package\common\alloc_replace.c:2616]
# 1 LIST::ALLOWCAKE__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:156]
# 2 LIST::HASHTAG__get__@8                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:601]
# 3 main                                   [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:8]

Error #45: LEAK 37 direct bytes 0x048e4ec8-0x048e4eed + 0 indirect bytes
# 0 replace_malloc                     [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12                  [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24                  [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 LIST::ALLOF__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:426]
# 5 main                               [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:22]

Error #46: LEAK 37 direct bytes 0x048e6668-0x048e668d + 0 indirect bytes
# 0 replace_malloc                       [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 LIST::FLAT__get__@4                  [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:170]
# 5 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 6 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:46]

Error #47: LEAK 52 direct bytes 0x048e6740-0x048e6774 + 0 indirect bytes
# 0 replace_calloc                            [d:\drmemory_package\common\alloc_replace.c:2616]
# 1 LIST::ALLOWPANCAKE__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:164]
# 2 LIST::VALPRIVATE__get__@8                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:288]
# 3 LIST::VAL__get__@8                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:439]
# 4 LIST::DROPALL__get__@4                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:957]
# 5 main                                      [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:46]

Error #48: LEAK 52 direct bytes 0x048e67e0-0x048e6814 + 37 indirect bytes
# 0 replace_calloc                            [d:\drmemory_package\common\alloc_replace.c:2616]
# 1 LIST::ALLOWPANCAKE__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:164]
# 2 LIST::VALPRIVATE__get__@8                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:288]
# 3 LIST::VAL__get__@8                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:439]
# 4 LIST::DROPALL__get__@4                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:959]
# 5 main                                      [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:46]

Error #49: LEAK 37 direct bytes 0x048e68d0-0x048e68f5 + 0 indirect bytes
# 0 replace_malloc                  [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 main                            [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:46]

Error #50: LEAK 37 direct bytes 0x048e6a80-0x048e6aa5 + 0 indirect bytes
# 0 replace_malloc                       [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 LIST::FLAT__get__@4                  [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:170]
# 5 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 6 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]

Error #51: LEAK 52 direct bytes 0x048e6b58-0x048e6b8c + 0 indirect bytes
# 0 replace_calloc                            [d:\drmemory_package\common\alloc_replace.c:2616]
# 1 LIST::ALLOWPANCAKE__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:164]
# 2 LIST::VALPRIVATE__get__@8                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:288]
# 3 LIST::VAL__get__@8                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:439]
# 4 LIST::DROPALL__get__@4                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:957]
# 5 main                                      [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]

Error #52: LEAK 52 direct bytes 0x048e6bf8-0x048e6c2c + 37 indirect bytes
# 0 replace_calloc                            [d:\drmemory_package\common\alloc_replace.c:2616]
# 1 LIST::ALLOWPANCAKE__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:164]
# 2 LIST::VALPRIVATE__get__@8                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:288]
# 3 LIST::VAL__get__@8                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:439]
# 4 LIST::DROPALL__get__@4                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:959]
# 5 main                                      [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]

Error #53: LEAK 37 direct bytes 0x048e6ce8-0x048e6d0d + 0 indirect bytes
# 0 replace_malloc                  [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 main                            [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]

Error #54: LEAK 37 direct bytes 0x048e6ea0-0x048e6ec5 + 0 indirect bytes
# 0 replace_malloc                         [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 LIST::FLATSTACK__get__@8               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:267]
# 5 LIST::ROOT__get__@4                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:490]
# 6 LIST::DESTROY__get__@4                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 7 LIST::~LIST                            [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 8 main                                   [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]

Error #55: LEAK 37 direct bytes 0x048e6f80-0x048e6fa5 + 0 indirect bytes
# 0 replace_malloc                       [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 LIST::FLAT__get__@4                  [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:170]
# 5 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 6 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 7 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 8 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]

Error #56: LEAK 37 direct bytes 0x048e70f0-0x048e7115 + 0 indirect bytes
# 0 replace_malloc                       [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 5 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 6 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]

Error #57: LEAK 37 direct bytes 0x048e71d0-0x048e71f5 + 0 indirect bytes
# 0 replace_malloc                         [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 LIST::FLATSTACK__get__@8               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:267]
# 5 LIST::ROOT__get__@4                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:490]
# 6 LIST::DESTROY__get__@4                 [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 7 LIST::~LIST                            [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 8 main                                   [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]

Error #58: LEAK 37 direct bytes 0x048e7300-0x048e7325 + 0 indirect bytes
# 0 replace_malloc                       [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 LIST::FLAT__get__@4                  [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:170]
# 5 LIST::DROPALL__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 6 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 7 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 8 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]

Error #59: LEAK 52 direct bytes 0x048e7390-0x048e73c4 + 37 indirect bytes
# 0 replace_calloc                                [d:\drmemory_package\common\alloc_replace.c:2616]
# 1 LIST::ALLOWPANCAKE__get__@4                   [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:164]
# 2 LIST::VALPRIVATE__get__@8                     [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:288]
# 3 LIST::VAL__get__@8                            [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:439]
# 4 LIST::GARBAGECOLLECTOR__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:195]
# 5 LIST::DROPALL__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:922]
# 6 LIST::DESTROY__get__@4                        [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 7 LIST::~LIST                                   [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 8 main                                          [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]

Error #60: LEAK 37 direct bytes 0x048e74c8-0x048e74ed + 0 indirect bytes
# 0 replace_malloc                       [d:\drmemory_package\common\alloc_replace.c:2576]
# 1 fb_hStrRealloc@12                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 2 fb_StrAssignEx@24                    [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 3 fb_StrAssign@20                      [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:135]
# 4 LIST::DESTROY__get__@4               [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:973]
# 5 LIST::~LIST                          [C:/PROGRAMMING/FREEBASIC/FB FORUM CODE/LOST ZERGLING LZLE/LZLE.BI:150]
# 6 main                                 [C:\Programming\FreeBasic\FB Forum Code\Lost Zergling LZLE/example-5.bas:47]

ERRORS FOUND:
     32 unique,   215 total unaddressable access(es)
      0 unique,     0 total uninitialized access(es)
      2 unique,     2 total invalid heap argument(s)
      0 unique,     0 total GDI usage error(s)
      0 unique,     0 total handle leak(s)
      0 unique,     0 total warning(s)
     26 unique,    41 total,   2365 byte(s) of leak(s)
      0 unique,     0 total,      0 byte(s) of possible leak(s)

ERRORS IGNORED:
      3 potential error(s) (suspected false positives)
         (details: C:\Programming\DrMemory-Windows-1.11.0-2\drmemory\logs\DrMemory-example-5.exe.6220.000\potential_errors.txt)
      3 potential leak(s) (suspected false positives)
         (details: C:\Programming\DrMemory-Windows-1.11.0-2\drmemory\logs\DrMemory-example-5.exe.6220.000\potential_errors.txt)
     10 unique,    10 total,    493 byte(s) of still-reachable allocation(s)
         (re-run with "-show_reachable" for details)
Details: C:\Programming\DrMemory-Windows-1.11.0-2\drmemory\logs\DrMemory-example-5.exe.6220.000\results.txt
This pretty much shows you what I (and others here) have been trying to tell you. In this particular example, there's a more modest (comparatively speaking) total leak of 2,3 kb.

As you can see, there are some very serious issues with the code. And this is a fact, not an opinion, sorry. Please, don't take it as a personal attack; you asked for input several times before (here, and on several other threads). So if you submit code for peer reviewing, you must be willing to accept the results, whether you like them or not...
Lost Zergling
Posts: 538
Joined: Dec 02, 2011 22:51
Location: France

Re: LZLE List Engine with user friendly powerfull syntax - Alpha1 Frozen (Latest FIX 27/04)

Post by Lost Zergling »

In real life : On W7 32 bits : no significant leaks (prehaps managed by system, don't known)
Issues :
1 - For numLists=0 to numLists => Ok For numLists=0 to numLists-1 => Infinite loop or freeze
2 - Public Destroy calls lead to end crashes (probably double deallocations attemps)
This need a serious re-tests before publishing fixes, that's why it needs a few time.

Code: Select all

Dim as uInteger numLists = 100000
#Include once "lzle.bi"

Print Fre
Print "a"
dim as List compositeList( 0 to numLists) '-1
Print "b"
For numLists=0 to numLists '-1
  '  compositeList(numLists).Destroy    
Next numLists
Print "c"
Print Fre
sleep
fxm
Moderator
Posts: 12107
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: LZLE List Engine with user friendly powerfull syntax - Alpha1 Frozen (Latest FIX 27/04)

Post by fxm »

I do not remember exactly the meaning of the value returned by FRE with Win 7, but I have great doubts about its reliability for identifying memory leaks.
In any case, that is absolutely unusable with Win 10.
paul doe
Moderator
Posts: 1733
Joined: Jul 25, 2017 17:22
Location: Argentina

Re: LZLE List Engine with user friendly powerfull syntax - Alpha1 Frozen (Latest FIX 27/04)

Post by paul doe »

Lost Zergling wrote:In real life : On W7 32 bits : no significant leaks (prehaps managed by system, don't known)
In real life, you don't understand what a 'leak' is:

Code: Select all

dim as integer ptr a
dim as integer ptr b

do
	? fre(); " ";
	 
	a = new integer
	b = new integer
	
	*a = 3
	*b = 5
		
	delete( a )
	'delete( b )
	
	? fre()	
loop until( inkey() <> "" )

sleep()
The leak goes totally unnoticed. That's because you're explicitly allocating memory, so fre() can't actually track it.

Well, good luck with the project.
Lost Zergling
Posts: 538
Joined: Dec 02, 2011 22:51
Location: France

Re: LZLE List Engine with user friendly powerfull syntax - Alpha1 Frozen (Latest FIX 27/04)

Post by Lost Zergling »

Yes true, Lzle leaks. I tested your exemple : commenting prints to speed up leaks and watching memory slow crash down in ressource monitor.
Then, memory came back to original state as I closed execution window. Understand me, I don't say it's not leaking or it's not a problem. I just see leaks and leaks : leaks wich are due/proportional to instanciation/de-instanciation cycles and leaks due/proportional to list's internal cycles when working with properties. The first ones are "uggly" because program is becoming a bit dependant on system safety features while the second ones means it is not usable. I replaced Mid and Left by zstrings ptr in hashtag property : if any leaks here, I should seek for another solution or coming back to previous version (HashTag looks like one of reported). If there is a 3kb leaks on each instanciation, this is bad and shall be fixed but it is not blocking because I rarely need thousands lists instance same time in a one application before closing. It is also possible there is a proportional leak anyway because of the interface, I need to check for it (you said : the longer the program runs the more the memory it leaks : as nodes are re-used the errors seems to me 2 possible sources : interface use (but out of loops)(like root flatstack and so on) or new allocate/deallocate cycle in HashTag Property) because leaks can only be due to improper use of allocations/deallocations. So I need to track theses issues & trying to quantify the proportional ones.
fxm
Moderator
Posts: 12107
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: LZLE List Engine with user friendly powerfull syntax - Alpha1 Frozen (Latest FIX 27/04)

Post by fxm »

About memory leaks due to only allocation for zstrings, only one procedure is to be corrected:

Code: Select all

Property List.HasHashTag(str_Tag As String) As Byte
''''Dim As zString Ptr Listptemp=Allocate(Len(str_Tag)), zp1, zp2, zp3=Allocate(1)
    Dim As zString Ptr Listptemp=Allocate(Len(str_Tag)+1), zp1, zp2, zp3=Allocate(1)
    Dim Str_tmp As String : Dim pContextRetour As ListContext
    Dim HadHashTag As Byte=0 : Dim IsEtoile As Byte=0 : Dim i as uByte=1 : Dim t as uByte=Len(str_Tag) : Dim istep As uByte=this.bHashLen
    pContextRetour.pNode=pNode : pContextRetour.pFirstNode=This.pFirstNode : pContextRetour.pLastNode=This.pLastNode : pContextRetour.uCount=This.uCount
    this.RootPrivate
    *Listptemp=str_Tag : zp1=Listptemp' * Alternative to Mid
    Do
        zp2=zp1 : zp1+=istep : (*zp3)[0]=(*zp1)[0] : (*zp1)[0]=0 : Str_tmp=*zp2 : (*zp1)[0]=(*zp3)[0] ' * Alternative to Mid : Str_tmp=Mid(str_Tag,i, istep)
        If this.HasTag(Str_tmp)=1 Then           
            this.pNode = this.pSearchNode
            If this.pNode->Tag(1)="*" Then : HadHashTag=1 : IsEtoile=1
            ElseIf this.pNode->Tag(1)="!*" Then : HadHashTag=0 : i=t
            ElseIf this.pNode->Tag(1)="!" And i=t Then : HadHashTag=0
            ElseIf i>=t Then : HadHashTag=1
            Else :  HadHashTag=0 : End If   
        ElseIf IsEtoile=0 Then : HadHashTag=0 : i=t
        End If
        If i<t Then
''''''''''''If this.pNode->pBranch=0 Then : If bAutoCursor<3 Then : pNode=pContextRetour.pNode : This.pFirstNode=pContextRetour.pFirstNode : This.pLastNode=pContextRetour.pLastNode : This.uCount=pContextRetour.uCount : End If : Return -1
            If this.pNode->pBranch=0 Then
                If bAutoCursor<3 Then
                    pNode=pContextRetour.pNode
                    This.pFirstNode=pContextRetour.pFirstNode
                    This.pLastNode=pContextRetour.pLastNode
                    This.uCount=pContextRetour.uCount
                End If
                Deallocate(Listptemp)
                Deallocate(zp3)
                Return -1
            Else
                this.pFirstNode = this.pNode->pBranch
                this.uCount = this.pFirstNode->BranchCount
                this.pLastNode = this.pFirstNode->pBranchLastNode
                this.pNode = this.pFirstNode
            End If
            this.bSearchRes = 0
        End If
        i+=istep
    Loop Until i>t
''''If HadHashTag=1 Then : bSearchRes=1 : pSearchNode=pNode : If bAutoCursor=1 Then : Return 1 : ElseIf bAutoCursor=2 Then : If pNode->Tag(1)="" Then : HadHashTag=0 : Else : Return 1 : End If : End If : End If
    If HadHashTag=1 Then
        bSearchRes=1
        pSearchNode=pNode
        If bAutoCursor=1 Then
            Deallocate(Listptemp)
            Deallocate(zp3)
            Return 1
        ElseIf bAutoCursor=2 Then
            If pNode->Tag(1)="" Then
                HadHashTag=0
            Else
                Deallocate(Listptemp)
                Deallocate(zp3)
                Return 1
            End If
        End If
    End If
    pNode=pContextRetour.pNode : This.pFirstNode=pContextRetour.pFirstNode : This.pLastNode=pContextRetour.pLastNode : This.uCount=pContextRetour.uCount
    Deallocate(Listptemp) : Deallocate(zp3) : Return HadHashTag
End Property
StringEpsilon
Posts: 42
Joined: Apr 09, 2015 20:49

Re: LZLE List Engine with user friendly powerfull syntax - Alpha1 Frozen (Latest FIX 27/04)

Post by StringEpsilon »

Lost Zergling wrote: leaks wich are due/proportional to instanciation/de-instanciation cycles and leaks due/proportional to list's internal cycles when working with properties.
The first ones are "uggly" because program is becoming a bit dependant on system safety features while the second ones means it is not usable.
You make the wrong distinction. The real question is: Does the leak happen in code that is expected to run more than once? If I have a program that runs for a long time, even just a leak of one byte can kill that application and cripple the system it runs on.

Pretty much any generic data structure should be expected to be instantiated and destroyed over and over again by any program using that structure (When I benchmark stuff I write, that quickly goes into the millions). If you just your this List Engine yourself, then it's nothing to worry about. But anyone using your code might have a hard time debugging their crashes.

The Out-of-Memory measures of the operating system are not meant to compensate leaks. They exist to keep the operating system itself and other applications running and stable. And in many instances, the operating system will just kill the program clogging the RAM - not really something you can gracefully recover from.

(Edit: Small clarification and grammer.)
Lost Zergling
Posts: 538
Joined: Dec 02, 2011 22:51
Location: France

Re: LZLE List Engine with user friendly powerfull syntax - Alpha1 Frozen (Latest FIX 27/04)

Post by Lost Zergling »

@fxm : Well seen : forgot to deallocate before return. This the exemple of what happend when I try to code something too fast !!
@String Epsilon : indeed, leaks run more than once shall be fixed even those that occurs rarely.
Considered fix (not fully tested) for HashTag (bug 2 found by fxm) here :

Code: Select all

Property List.HashTag(str_Tag As String) As Byte
    Dim As ListNode Ptr pTemp,  pTemp02, pTemp03, pTemp04 : Dim Str_tmp As String
    Dim As uByte HadHashTag=1, istep=this.bHashLen, i=0, iLen=Len(str_tag), iLenStrTmp, iLenpNode, iLenCumul, IsLast=0       
    Dim As zString Ptr Listptemp=cAllocate(iLen+1), Listptemp2=Allocate(iLen+1), zp1, zp2, zp3=Allocate(1) ' * Alternative to Mid, left & right ==>+20-25% speed tested
 '   zp1=Listptemp+iLen+1 : (*zp1)[0]=0 ': zp1=Listptemp2+iLen+1 : (*zp1)[0]=0
    If bTracking=1 And bTrackingMethod=0 Then '  This.TrackCompute()       
        pTemp=pNode : While pTemp->Tag(0)<>LIST_RES And pTemp<>pGarbage : pTemp=pTemp->pPrev : Wend : If pTemp=pGarbage Then : pTemp=pFirstFIRSTNode : End If
        pFirstNode=pTemp : pLastNode=pTemp->pBranchLastNode : uCount=pTemp->BranchCount
    End If
    If pFirstNode<>pFirstFIRSTNode Then ' If 1=0 Then ' Deactivate optimization code
        If pLatestHTag=pNode Then : Str_tmp=sLatestHTag
        Else 
            pNode=pFirstNode->pNext : Str_tmp=this.HashTag : 
            Deallocate(Listptemp) : Listptemp=cAllocate(Len(Str_tmp)+1)
        End If
        *Listptemp=Str_tmp : zp1=Listptemp : zp1+=istep : (*zp1)[0]=0 ' *Alternative to *Listptemp=Left(Str_tmp,istep)
        *Listptemp2=str_tag : zp2=Listptemp2 : zp2+=istep : (*zp2)[0]=0 ' *Alternative to *Listptemp2=Left(str_tag,istep)
        If *Listptemp=*Listptemp2 Then' Very few fistfull of seconds / ' If Left(Str_tmp,istep)=Left(str_tag,istep) Then
       '    iLenpNode=iLen : While Len(str_tag)<Len(Str_tmp) : this.UpLevel : Str_tmp=Left(Str_tmp, Len(Str_tmp)-iLenpNode) : iLenpNode=Len(pNode->Tag(uTag)) : Wend       
            While Len(str_tag)<Len(Str_tmp) : this.UpLevel : Str_tmp=this.HashTag : Wend
            pNode=pFirstNode->pNext : iLenpNode=Len(pNode->Tag(uTag)) : iLenStrTmp=Len(Str_tmp) : i=1
            zp2=Listptemp2 : zp2+=iLenStrTmp : (*zp2)[0]=0 ' *Alternative to *Listptemp2=Left(str_tag,iLenStrTmp)
            While *Listptemp2<>Str_tmp ' Very few fistfull of seconds / ' While Left(str_tag, iLenStrTmp)<>Str_tmp
                zp1=Listptemp : zp1+=iLenStrTmp-iLenpNode : (*zp1)[0]=0 ' *Alternative to *Listptemp=Left(Str_tmp,iLenStrTmp-iLenpNode)
                Str_tmp=*Listptemp ' Str_tmp=Left(Str_tmp, iLenStrTmp-iLenpNode)
                iLenStrTmp-=iLenpNode : iLenCumul +=iLenpNode : pNode=pFirstNode->pBranch : pFirstNode->BranchCount=uCount
                pFirstNode->pBranchLastNode=pLastNode : pFirstNode=pFirstNode->pPrev : pLastNode=pFirstNode->pBranchLastNode : uCount=pFirstNode->BranchCount : iLenpNode=istep
                zp2=Listptemp2 : zp2+=iLenStrTmp : (*zp2)[0]=0 ' *Alternative to *Listptemp2=Left(str_tag,istep)
            Wend : iLen=iLenCumul+istep : str_Tag=Right(str_Tag, iLen) : pTemp02=pFirstNode         
       End If
    End If
    If i=0 Then  '---------------- this.RootPrivate / this.AllOfPrivate
        While this.pFirstNode->pPrev<>0
            this.pNode = this.pFirstNode->pBranch : this.pFirstNode->BranchCount = this.uCount
            this.pFirstNode->pBranchLastNode = this.pLastNode : this.pFirstNode = this.pFirstNode->pPrev       
            this.uCount = this.pFirstNode->BranchCount : this.pLastNode = this.pFirstNode->pBranchLastNode                 
        Wend : this.pNode = this.pGarbage :
        pTemp02=pGarbage
    End If : iLenCumul=0
    *Listptemp=str_Tag : zp1=Listptemp ' * Alternative to Mid   
    For i=1 to Len(str_Tag) step istep
        zp2=zp1 : zp1+=istep : (*zp3)[0]=(*zp1)[0] : (*zp1)[0]=0 : Str_tmp=*zp2 : (*zp1)[0]=(*zp3)[0] ' * Alternative to Mid :  Str_tmp=Mid(str_Tag,i, istep)
        iLenCumul+=iStep
        If bHTmethod=0 Then
            If bSeekMethod=2 Then : pTemp = this.pLastNode : While ( pTemp->Tag(uTag)<>Str_tmp  AndAlso pTemp<>pTemp02 ) : pTemp = pTemp->pPrev : Wend
            Else : pTemp = pTemp02 : While ( pTemp->Tag(uTag)<>Str_tmp  AndAlso pTemp<>pLastNode ) : pTemp = pTemp->pNext : Wend
            End If       
        Else
            If bSeekMethod=2 Then
                pTemp = this.pLastNode : While ( pTemp->Tag(uTag)>Str_tmp  AndAlso pTemp<>pTemp02 ) : pTemp = pTemp->pPrev : Wend
                If pTemp=pLastNode Then : IsLast=1 : End If
            Else           
                pTemp=pTemp02 : While (pTemp->Tag(uTag)<Str_tmp  AndAlso pTemp<>pLastNode) : pTemp=pTemp->pNext : Wend
                If pTemp->Tag(uTag)<Str_tmp  AndAlso pTemp=pLastNode Then : IsLast=1 : End If
            End If
        End If       
        If pTemp->Tag(uTag)=Str_tmp Then : this.pNode = pTemp
        ElseIf bHTmethod=1 AndAlso IsLast=0 Then
            pTemp04=pLastNode : pTemp03=AllowCake : this.uCount+=1 : pLastNode=pTemp04
            If pTemp<>pTemp02 Then : pTemp03->pNext=pTemp : pTemp03->pPrev=pTemp->pPrev : pTemp->pPrev->pNext=pTemp03 : pTemp->pPrev=pTemp03 :
            Else : pTemp03->pNext=0 : pTemp03->pPrev=pTemp : pTemp->pNext=pTemp03 : pLastNode=pTemp03
            End If  : If bBranchCountDown=1 Then : this.BCountDown(1) : End If
            pTemp03->Tag(uTag) = Str_tmp : HadHashTag=0 : pFirstNode->BranchCount+=1 : pNode = pTemp03
        Else ' If pTemp=pTemp02 Then : this.BlindTag(Str_tmp)
            pTemp03 = this.pLastNode : this.uCount+=1 :
            pTemp03->pNext = this.AllowCake 'And eat it
            pTemp03->pNext->pPrev = this.pLastNode : pTemp03->pNext->Tag(uTag) = Str_tmp '  : pTemp03->pNext->ListData = item
            pTemp03 = pTemp03->pNext : this.pLastNode = pTemp03 : this.pNode = pTemp03 : If bBranchCountDown=1 Then : this.BCountDown(1) : End If
            HadHashTag=0 : pFirstNode->BranchCount+=1           
     '  Else : Print "LZLE error - attempt to clean process and aborting."  : Print this.DropAll & " / " & this.NodeCount : sleep : system
        End If                   
        If iLenCumul<iLen Then  '  If u*istep<iLen Then   ' this.Branch
            pFirstNode->BranchCount=this.uCount : pFirstNode->pBranchLastNode=pLastNode : pTemp=pNode
            If this.pNode->pBranch=0 Then ' New 'Hash' : this.BlindTag(LIST_RES) :
                pTemp03 = this.pLastNode : this.uCount+=1 : pTemp03->pNext = this.AllowCake 'And eat it
                pTemp03->pNext->pPrev = pTemp03 : pTemp03->pNext->Tag(uTag) = LIST_RES
                pTemp03 = pTemp03->pNext : this.pLastNode = pTemp03 : pNode=pTemp03
                this.pNode->pPrev=this.pFirstNode : pNode->pBranch = pTemp : pTemp->pBranch=this.pNode
                pTemp->BranchCount=0 : this.uCount=0 : pTemp->pBranchLastNode=this.pNode     
                this.pFirstNode=pTemp->pBranch : this.pNode = this.pFirstNode
            Else 'Branche déjà créée
                this.pFirstNode = this.pNode->pBranch : this.uCount = this.pFirstNode->BranchCount
                this.pLastNode = this.pNode->pBranch->pBranchLastNode : this.pNode = this.pNode->pBranch
            End If
        End If : pTemp02=pFirstNode
    Next i
    pLatestHTag=pNode : sLatestHTag=str_Tag
    If this.pNode->Tag(1)="" And bRHByPass=0 Then : this.pNode->Tag(1)=" " : End If
    Deallocate(Listptemp) : Deallocate(Listptemp2) : Deallocate(zp3)
    Return HadHashTag
End Property
fxm
Moderator
Posts: 12107
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: LZLE List Engine with user friendly powerfull syntax - Alpha1 Frozen (Latest FIX 27/04)

Post by fxm »

For the other manual memory allocations, your code is so awful and twisted that it is impossible for a beta reader to correlate allocation and deallocation.
Lost Zergling
Posts: 538
Joined: Dec 02, 2011 22:51
Location: France

Re: LZLE List Engine with user friendly powerfull syntax - Alpha1 Frozen (Latest FIX 27/04)

Post by Lost Zergling »

@fxm : En tous cas merci (et aussi aux autres) pour le coup de main sur des parties critiques du code (HashTag et HasHashTag). Je suis plutôt confiant pour le reste car j'arrive néanmoins à travailler avec (sans quoi je ne l'aurai déjà pas mis en ligne) et je pense avoir compris d'où vient une autre partie des 'leaks'. Ce code aura été pour moi particulièrement difficile à la fois à concevoir et à mettre au point et il y a encore du travail, mais au bout du compte je le trouve plutôt (très) efficace et je le considère d'ores et déjà presque comme un succès de ce point de vue. Je vais mettre en ligne rapidement certaines des modifications par vous proposées.
In any case thank you(thx to others as well) for the help on critical parts of the code (HashTag and HasHashTag). I am rather confident for the rest because I can nevertheless work with it (otherwise I will not have already put it online) and I think I have understood where another part of the 'leaks' comes from. This code has been particularly difficult for me both to design and to develop and there is still work, but in the end I find it rather (very) effective and I consider it already almost like a success from this point of view. I'm going to put quickly some of the modifications proposed by you.
paul doe
Moderator
Posts: 1733
Joined: Jul 25, 2017 17:22
Location: Argentina

Re: LZLE List Engine with user friendly powerfull syntax - Alpha1 Frozen (Latest FIX 27/04)

Post by paul doe »

Lost Zergling wrote:... but in the end I find it rather (very) effective and I consider it already almost like a success from this point of view. I'm going to put quickly some of the modifications proposed by you.
As much as you can consider a car that blows up killing its occupants when out of gas (instead of simply stopping) a success...
Lost Zergling
Posts: 538
Joined: Dec 02, 2011 22:51
Location: France

Re: LZLE List Engine with user friendly powerfull syntax - Alpha1 Frozen (Latest FIX 30/04)

Post by Lost Zergling »

Updated 30/04, some leaks and some cases of "end crashes" fixed (other latent issues may still be present).
Post Reply