Previous Next


                                          95
SECTION 3.4                                                               File Structure



The cross-reference entry for a free object has essentially the same format, except
that the keyword is f instead of n and the interpretation of the first item is
different:

   nnnnnnnnnn ggggg f eol

where
  nnnnnnnnnn is the 10-digit object number of the next free object
  ggggg is a 5-digit generation number
  f is a literal keyword identifying this as a free entry
  eol is a 2-character end-of-line sequence

The free entries in the cross-reference table form a linked list, with each free
entry containing the object number of the next. The first entry in the table (object
number 0) is always free and has a generation number of 65,535; it is the head of
the linked list of free objects. The last free entry (the tail of the linked list) links
back to object number 0. (In addition, the table may contain other free entries
that link back to object number 0 and have a generation number of 65,535, even
though these entries are not in the linked list itself.) See implementation note 16
in Appendix H.

Except for object number 0, all objects in the cross-reference table initially have
generation numbers of 0. When an indirect object is deleted, its cross-reference
entry is marked free and it is added to the linked list of free entries. The entry’s
generation number is incremented by 1 to indicate the generation number to be
used the next time an object with that object number is created. Thus, each time
the entry is reused, it is given a new generation number. The maximum
generation number is 65,535; when a cross-reference entry reaches this value, it is
never reused.

The cross-reference table (comprising the original cross-reference section and all
update sections) must contain one entry for each object number from 0 to the
maximum object number used in the file, even if one or more of the object
numbers in this range do not actually occur in the file. See implementation note
17 in Appendix H.

Example 3.5 shows a cross-reference section consisting of a single subsection
with six entries: four that are in use (objects number 1, 2, 4, and 5) and two that

Previous Next