in plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/chunks/ChunksListForWrite.kt [108:124]
fun writeChunks(os: OutputPngStream, currentGroup: Int): Int {
var cont = 0
val it: MutableIterator<PngChunk> = queuedChunks.iterator()
while (it.hasNext()) {
val c: PngChunk = it.next()
if (!shouldWrite(c, currentGroup)) continue
if (ChunkHelper.isCritical(c.id) && c.id != ChunkHelper.PLTE) throw PngjOutputException("bad chunk queued: $c")
if (alreadyWrittenKeys.containsKey(c.id) && !c.allowsMultiple()) throw PngjOutputException("duplicated chunk does not allow multiple: $c")
c.write(os)
chunks.add(c)
alreadyWrittenKeys[c.id] = if (alreadyWrittenKeys.containsKey(c.id)) alreadyWrittenKeys[c.id]!! + 1 else 1
c.chunkGroup = currentGroup
it.remove()
cont++
}
return cont
}