A computer-based method and system for generating a reference to an
enclosing object from a reference to an embedded object that is embedded
within the enclosing object. The enclosing object has an enclosing class,
and the embedded object has an embedded class. Each class inherits a base
class that has a reference counting data member. The system redefines the
base class such that the reference counting data member is divided into an
offset portion and a reference counting portion. The system then
instantiates the enclosing object. The enclosing object has an enclosing
object address, and the embedded object has an embedded object address.
The system stores in the offset portion of the reference counting data
member of the base class of the embedded object a difference between the
enclosing object address and the embedded object address. When the system
receives a reference to the embedded object, the system retrieves from the
offset portion of the reference counting data member of the embedded
object referenced by the received reference the difference between the
enclosing object address and the embedded object address. The system then
combines the retrieved difference with the embedded object address of the
received reference to generate the enclosing object address.
Un metodo e un sistema automatizzati per la generazione del riferimento ad un oggetto accludente da un riferimento ad un oggetto incorporato che è incluso all'interno dell'oggetto accludente. L'oggetto accludente ha un codice categoria accludente ed il oggetto incorporato ha un codice categoria incluso. Ogni codice categoria eredita un codice categoria basso che ha un riferimento contare il membro di dati. Il sistema ridefinisce il codice categoria basso tali che il riferimento che conta il membro di dati è diviso in una parte di derivazione ed in un riferimento che contano la parte. I instantiates del sistema allora l'oggetto accludente. L'oggetto accludente ha un indirizzo accludente dell'oggetto ed il oggetto incorporato ha un indirizzo del oggetto incorporato. I depositi del sistema nella parte di derivazione del riferimento che conta il membro di dati del codice categoria basso del oggetto incorporato una differenza fra l'indirizzo accludente dell'oggetto e l'indirizzo del oggetto incorporato. Quando il sistema riceve un riferimento al oggetto incorporato, il sistema richiama dalla parte di derivazione del riferimento che conta il membro di dati del oggetto incorporato riferito dal riferimento ricevuto la differenza fra l'indirizzo accludente dell'oggetto e l'indirizzo del oggetto incorporato. Il sistema allora unisce la differenza richiamata con l'indirizzo del oggetto incorporato del riferimento ricevuto per generare l'indirizzo accludente dell'oggetto.