Corrected dereferencing of cell dependencies, which was being applied

only at the time of running the command "load".  But cells are generally
loaded only on an as-needed basis, so the dereferencing option must be
saved as a flag in the cell and honored whenever its subcells are expanded
or otherwise read at a later time.
This commit is contained in:
Tim Edwards
2020-01-02 10:13:04 -05:00
parent 67866c7991
commit 82e33248f2
18 changed files with 118 additions and 35 deletions
+4 -1
View File
@@ -126,6 +126,8 @@ DBFixMismatch()
while (mismatch != NULL)
{
bool dereference;
/* Be careful to remove the front element from the mismatch
* list before processing it, because while processing it we
* may add new elements to the list.
@@ -137,7 +139,8 @@ DBFixMismatch()
mismatch = mismatch->mm_next;
if (cellDef->cd_flags & CDPROCESSED) continue;
(void) DBCellRead(cellDef, (char *) NULL, TRUE, FALSE, NULL);
dereference = (cellDef->cd_flags & CDDEREFERENCE) ? TRUE : FALSE;
(void) DBCellRead(cellDef, (char *) NULL, TRUE, dereference, NULL);
/* Jimmy up the cell's current bounding box, so the following
* procedure call will absolutely and positively know that