| OCR Text |
Show Algorithm 3. Saving New Objects Wr ite the fil e header . For each object graph 1n object list Search the object graph for headers. Write all header s. While not dumped objects 1n oid_table, pick one For each pointer in this object to other objects. If the target object does not have an DID then generate an DID for it and enter it in the oid_t able, marked as not dumped. Replace the pointer with the DID. Copy built-in data and character strings pointed to by this object, in the object 's byte-stream. Write flag bytes , class id , DID, and the object. 37 111< ' uitLtahl(' t·ntry correspond ing to the OlD. If the object desc riptor for tbis objcd is difTc re Jlt frolll the object descriptor compil ed- in in t he app li cat ioll, the object is <·vulve< l. l·' in a lly, the load rou t ine pat cl1 es all references to this object frorn other c,l ) j('ds . Si11ce this is clone after the object bas full y evolved, no backpatching is needed ( a.s was the case previou sly). 4.3 Support for POSs There were certain modifi ca.t iotJ s that hac! to be performed to replace Alpha_l 's stOI<tge management with POSs. l/ 0 in Alpha_! is stream based. There is a s<·parate st ream n1 anager for each stream (e.g. , input, output, ip c) . vVhile using a POS , an appli cat ion is dealing witb one interface and therefore, these two stream mana.gers mnst b<'C merged. Also, since l/ 0 redirection is uot used while interact ing witb a POS , tlw input and output Alpha_ l fi les are specified by setting environ- 11w nt variahl<>s. A I-'"' ! U::J N and /\ l _F'l LEJ) l TT respect.ivel y. Other muclifi c<tti ons |