摘要 |
The present invention uses three-state references to manage access to referenced objects. In a preferred embodiment, a pointer swizzling facility receives a request to swizzle a persistent pointer. In response to the request, the facility copies the persistent pointer to an indirection slot, and replaces the original persistent pointer with a smart pointer containing a pointer to the indirection slot. When the facility subsequently detects an attempt to dereference the smart pointer, the facility loads the referenced object using the persistent pointer stored in the indirection slot pointed to by the smart pointer. The facility further replaces the persistent pointer in the indirection slot with a pointer to the loaded referenced object. The facility also replaces the pointer to the indirection slot in the smart pointer with a pointer to the loaded dereferenced object. Finally, the facility dereferences the pointer to the loaded referenced object in response to the attempt to dereference the smart pointer.
|