setSelf takes a weak_ptr, not shared_ptr.
setSelf takes a weak_ptr, not shared_ptr.

I'm about to make the setSelf functionality public (so, any class exposing that method will get their own self pointer.)  If I leave the argument as shared_ptr I may end up confusing users who merely save the pointer and wonder why their object is never deleted.

phs/sauce,phs/sauce,phs/sauce,phs/sauce