
"Steven Watanabe" <watanabesj@gmail.com> wrote in message news:481236C2.2040309@providere-consulting.com... [...]
The problem is that you are manipulating the reference count of a block after it is freed. The first node is deleted. The second node is then deleted which decrements the reference count of the first block which is already deleted.
[...] Thanks for pointing this out. I dismissed this issue because it this situation the "back" pointer doesn't refer to the first element in the set list after several insertions and this creates a series of problems which may have a solution but better left aside for this type of problem. I added some code in shifted_ptr::release() which will make it disregard any reference count when the destructor is called upon a set deletion. Now everything works fine. Regards, -Phil