| 358 | | num = readObject(stream, self) |
|---|
| 359 | | readNonWhitespace(stream) |
|---|
| 360 | | stream.seek(-1, 1) |
|---|
| 361 | | size = readObject(stream, self) |
|---|
| 362 | | readNonWhitespace(stream) |
|---|
| 363 | | stream.seek(-1, 1) |
|---|
| 364 | | cnt = 0 |
|---|
| 365 | | while cnt < size: |
|---|
| 366 | | line = stream.read(20) |
|---|
| 367 | | offset, generation = line[:16].split(" ") |
|---|
| 368 | | offset, generation = int(offset), int(generation) |
|---|
| 369 | | if not self.xref.has_key(generation): |
|---|
| 370 | | self.xref[generation] = {} |
|---|
| 371 | | self.xref[generation][num] = offset |
|---|
| 372 | | cnt += 1 |
|---|
| 373 | | num += 1 |
|---|
| 374 | | readNonWhitespace(stream) |
|---|
| 375 | | stream.seek(-1, 1) |
|---|
| 376 | | assert stream.read(7) == "trailer" |
|---|
| | 358 | while 1: |
|---|
| | 359 | num = readObject(stream, self) |
|---|
| | 360 | readNonWhitespace(stream) |
|---|
| | 361 | stream.seek(-1, 1) |
|---|
| | 362 | size = readObject(stream, self) |
|---|
| | 363 | readNonWhitespace(stream) |
|---|
| | 364 | stream.seek(-1, 1) |
|---|
| | 365 | cnt = 0 |
|---|
| | 366 | while cnt < size: |
|---|
| | 367 | line = stream.read(20) |
|---|
| | 368 | offset, generation = line[:16].split(" ") |
|---|
| | 369 | offset, generation = int(offset), int(generation) |
|---|
| | 370 | if not self.xref.has_key(generation): |
|---|
| | 371 | self.xref[generation] = {} |
|---|
| | 372 | if self.xref[generation].has_key(num): |
|---|
| | 373 | "It really seems like we should allow the last" |
|---|
| | 374 | "xref table in the file to override previous" |
|---|
| | 375 | "ones. Since we read the file backwards, assume" |
|---|
| | 376 | "any existing key is already set correctly." |
|---|
| | 377 | pass |
|---|
| | 378 | else: |
|---|
| | 379 | self.xref[generation][num] = offset |
|---|
| | 380 | cnt += 1 |
|---|
| | 381 | num += 1 |
|---|
| | 382 | readNonWhitespace(stream) |
|---|
| | 383 | stream.seek(-1, 1) |
|---|
| | 384 | trailertag = stream.read(7) |
|---|
| | 385 | if trailertag != "trailer": |
|---|
| | 386 | "more xrefs!" |
|---|
| | 387 | stream.seek(-7, 1) |
|---|
| | 388 | else: |
|---|
| | 389 | break |
|---|