Here are the results for a circular list compared to a single object...
Single Object
Code:
No Cleanup, No Error
SingleObject set...
objCls : 0x18DECA08 : 0x64C67D1C0000000024CADE18EC577803D45778030000000000000000ECECAE1B0100000000000000000000000F10000000000000AAAAAA00ABABAB00BCBCBC00000000002489C3180000000000000000FD3D013B6500008C0000000028000000
after exit...
objCls : 0x18DECA08 : 0x000000000000000024CADE1800000000000000000000000000000000ECECAE1B0100000000000000000000006E1C000000000000AAAAAA00ABABAB00BCBCBC00000000002489C3180000000000000000FD3D013B6500008C0000000028000000
With Cleanup, No Error
SingleObject set...
objCls : 0x18DECA08 : 0x64C67D1C0000000024CADE18EC577803D45778030000000000000000ECECAE1B0100000000000000000000000F10000000000000AAAAAA00ABABAB00BCBCBC00000000002489C3180000000000000000FD3D013B6500008C0000000028000000
Set to Nothing...
objCls : 0x18DECA08 : 0x000000000000000024CADE1800000000000000000000000000000000ECECAE1B0100000000000000000000006E1C000000000000AAAAAA00ABABAB00BCBCBC00000000002489C3180000000000000000FD3D013B6500008C0000000028000000
after exit...
objCls : 0x18DECA08 : 0x000000000000000024CADE1800000000000000000000000000000000ECECAE1B0100000000000000000000006E1C000000000000AAAAAA00ABABAB00BCBCBC00000000002489C3180000000000000000FD3D013B6500008C0000000028000000
With Cleanup, Error after setting the pointer
SingleObject set...
objCls : 0x18DECA08 : 0x64C67D1C0000000024CADE18EC577803D45778030000000000000000ECECAE1B0100000000000000000000000F10000000000000AAAAAA00ABABAB00BCBCBC00000000002489C3180000000000000000FD3D013B6500008C0000000028000000
Set to Nothing...
objCls : 0x18DECA08 : 0x000000000000000024CADE1800000000000000000000000000000000ECECAE1B0100000000000000000000006E1C000000000000AAAAAA00ABABAB00BCBCBC00000000002489C3180000000000000000FD3D013B6500008C0000000028000000
After Error, Before End Sub
after error...
objCls : 0x18DECA08 : 0x8841BF182AA30000712CBB1BDC25BB1BC6D3B71B10000400F88656080000000000000000000000000000000006000000100000005029881C000000005F005F005300520050005F000000000000000000FD3D013B6500008C0000000028000000
No Cleanup, Error after setting the pointer
SingleObject set...
objCls : 0x18DECA08 : 0x64C67D1C0000000024CADE18B45778039C5778030000000000000000ECECAE1B0100000000000000000000000F10000000000000AAAAAA00ABABAB00BCBCBC00000000002489C3180000000000000000FD3D013B6500008C0000000028000000
After Error, Before End Sub
after error...
objCls : 0x18DECA08 : 0x8841BF182AA30000712CBB1BDC25BB1BC6D3B71B1000040030865608000000000000000000000000000000000600000010000000D82B881C000000005F005F005300520050005F000000000000000000FD3D013B6500008C0000000028000000
Circular List
Code:
No Cleanup, No Error
circularList set...
objCls : 0x18DECA08 : 0x64C67D1C0000000024CADE18EC577803D45778030000000000000000ECECAE1B0200000000000000000000000F10000000000000AAAAAA00ABABAB00BCBCBC00C8CC82182489C3180000000000000000FD3D013B6500008C0000000028000000
after exit...
objCls : 0x18DECA08 : 0x64C67D1C0000000024CADE18EC577803D45778030000000000000000ECECAE1B0100000000000000000000000F10000000000000AAAAAA00ABABAB00BCBCBC00C8CC82182489C3180000000000000000FD3D013B6500008C0000000028000000
With Cleanup, No Error
circularList set...
objCls : 0x0DA0DC70 : 0x64C67D1CC8CC82188CDCA00D245878030C5878030000000000000000ECECAE1B0200000000000000000000000F10000000000000AAAAAA00ABABAB00BCBCBC0000A9B70D2489C31800000000000000005E55B53900000088E073AF1B08179D0D
Set to Nothing...
objCls : 0x0DA0DC70 : 0x64C67D1CC8CC82188CDCA00D245878030C5878030000000000000000ECECAE1B0100000000000000000000000F10000000000000AAAAAA00ABABAB00BCBCBC0000A9B70D2489C31800000000000000005E55B53900000088E073AF1B08179D0D
after exit...
objCls : 0x0DA0DC70 : 0x64C67D1CC8CC82188CDCA00D245878030C5878030000000000000000ECECAE1B0100000000000000000000000F10000000000000AAAAAA00ABABAB00BCBCBC0000A9B70D2489C31800000000000000005E55B53900000088E073AF1B08179D0D
With Cleanup, Error after setting the pointer
circularList set...
objCls : 0x1882CDD0 : 0x64C67D1C00A9B70DECCD8218945878037C5878030000000000000000ECECAE1B0200000000000000000000000F10000000000000AAAAAA00ABABAB00BCBCBC0078CD82182489C318000000000000000042AC103B000000804400FA171A000000
Set to Nothing...
objCls : 0x1882CDD0 : 0x64C67D1C00A9B70DECCD8218945878037C5878030000000000000000ECECAE1B0100000000000000000000000F10000000000000AAAAAA00ABABAB00BCBCBC0078CD82182489C318000000000000000042AC103B000000804400FA171A000000
After Error, Before End Sub
after error...
objCls : 0x1882CDD0 : 0x0D00E7719425E7717825E7715825E7714825E771000000006890851868908518000000000000000078908518000000000900000000000000000000000000000001000000DCCD821800000000FA050E0042AC103B000000802E00E7719425E771
I think we've found the higgs boson!
The detector works...
You have to scroll across a bit but you can see that the object is not released when there is a circular reference. Its not released by VBA or by the set to nothing.