Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!crdgw1!uunet!mcsun!ukc!tcdcs!bofin!mmartin From: mmartin@cs.tcd.ie (Maurice Martin) Newsgroups: comp.lang.eiffel Subject: Eiffel Runtime - Object Header Question Summary: A question on how the `nobj' field of OBJECT, is used Keywords: Internal, Runtime, Memory Management Message-ID: <1991Apr15.170027.8088@cs.tcd.ie> Date: 15 Apr 91 17:00:27 GMT Organization: DSG, Dept. of Comp. Sci., Trinity College, Dublin. Lines: 33 Background: Using the normal memory management routines on the DEC5810 MIPS implementation of Eiffel (i.e. 32 bit word size), each object has a 64 bit object header, defined by the following struct: OBJECT = struct { INFO info ; -- INFO == int32 struct OBJECT* nobj; } Question: Apart from garbage collection, what is the pointer ``nobj'' used for ? Partial Answer: It appears as if all objects in an eiffel system are chained together via the nobj field. This is used during garbage collection. Also the environment and storable classes seem to reference the field. It also appears to be used in connection with EXPANDED classes. I do not follow exactly how nobj and expanded classes inter-relate. -- If I have got `nobj's uses wrong, or missed some, please correct me! Thanks in Advance, ======================================================================= Maurice Martin email: mmartin@cs.tcd.ie Distributed Systems Group fax : + 353-1-772204 O'Reilly Institute, T.C.D. phone: + 353-1-772941 x1524 (day) Dublin 2, IRELAND. + 353-1-462681 (evening) ========================================================================