From 704f1dc69f4ebbe8ab5d3ec47fc05a75449e3837 Mon Sep 17 00:00:00 2001 From: Tim Edwards Date: Thu, 16 May 2019 17:41:42 -0400 Subject: [PATCH] Corrected an error that has been in the magic code forever, in which if a GDS (CIF) layer is dependent on, and only on, a templayer or layers that get hierarchically processed, it will not get added to the list of layers needing hierarchical processing, and therefore end up not being generated in the output. --- cif/CIFtech.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/cif/CIFtech.c b/cif/CIFtech.c index cdc5fcc7..ff9e2b03 100644 --- a/cif/CIFtech.c +++ b/cif/CIFtech.c @@ -1846,6 +1846,24 @@ CIFTechFinal() } } + /* Added by Tim, 5/16/19 */ + /* Layers that depend on hierarchically generated layers */ + /* (i.e., templayers) must themselves be hierarchically */ + /* processed. */ + + for (i = 0; i < style->cs_nLayers; i++) + { + TileTypeBitMask ourDepend, mmask; + + ourDepend = DBZeroTypeBits; + for (op = style->cs_layers[i]->cl_ops; op != NULL; op = op->co_next) + TTMaskSetMask(&ourDepend, &op->co_cifMask); + + TTMaskAndMask3(&mmask, &ourDepend, &style->cs_hierLayers); + if (!TTMaskIsZero(&mmask)) + TTMaskSetType(&style->cs_hierLayers, i); + } + /* Added by Tim, 10/18/04 */ /* Go through the layer operators looking for those that */