
"Phil Bouchard" <philippe@fornux.com> wrote in message news:g2irdo$uv5$1@ger.gmane.org...
Now I added a PowerPoint presentation comparing the pointer with all other existing memory managers out there: sandbox/shifted_ptr/libs/example/doc/ShiftedPointer.ppt
Ok I just updated the doc again with a more complete version.
While writing it I came to realize the mark & sweep algorithm is deleting objects even if they are still parent of an object still being referenced from the stack. Suppose for example I got a widget having a std::string as a member. This means if the stack refers to the buffer of the string but nobody points to the widget anymore then the string buffer will be deleted and thus a segfault will occur.
[...] Sorry, this is a bad example. But imagine we have widgets piled up on each other and the last one is a popup dialog box. If the only referenced one is the popup one then all parent widget are going to be deleted if it is handled by the mark & sweep algorithm. Another example would be a this pointer being part of that parent object; no pointers from the stack are referencing it only the this pointer being cached in a register. Registers aren't handled by garbage collectors. -Phil