Merge pull request #112 from missinglink/ignore_nil_chans2

don't parse elements when chan is nil
master
Oliver Tonnhofer 2016-08-17 17:28:07 +02:00 committed by GitHub
commit c3f041aa85
1 changed files with 35 additions and 27 deletions

View File

@ -87,39 +87,47 @@ func (p *parser) parseBlock(pos block) {
stringtable := newStringTable(block.GetStringtable())
for _, group := range block.Primitivegroup {
dense := group.GetDense()
if dense != nil {
parsedCoords, parsedNodes := readDenseNodes(dense, block, stringtable)
if len(parsedCoords) > 0 && p.coords != nil {
p.coords <- parsedCoords
if p.coords != nil || p.nodes != nil {
dense := group.GetDense()
if dense != nil {
parsedCoords, parsedNodes := readDenseNodes(dense, block, stringtable)
if len(parsedCoords) > 0 && p.coords != nil {
p.coords <- parsedCoords
}
if len(parsedNodes) > 0 && p.nodes != nil {
p.nodes <- parsedNodes
}
}
if len(parsedNodes) > 0 && p.nodes != nil {
p.nodes <- parsedNodes
if len(group.Nodes) > 0 {
parsedCoords, parsedNodes := readNodes(group.Nodes, block, stringtable)
if len(parsedCoords) > 0 && p.coords != nil {
p.coords <- parsedCoords
}
if len(parsedNodes) > 0 && p.nodes != nil {
p.nodes <- parsedNodes
}
}
}
parsedCoords, parsedNodes := readNodes(group.Nodes, block, stringtable)
if len(parsedCoords) > 0 && p.coords != nil {
p.coords <- parsedCoords
}
if len(parsedNodes) > 0 && p.nodes != nil {
p.nodes <- parsedNodes
}
parsedWays := readWays(group.Ways, block, stringtable)
if len(parsedWays) > 0 && p.ways != nil {
if p.waySync != nil {
p.waySync.doneWait()
if len(group.Ways) > 0 && p.ways != nil {
parsedWays := readWays(group.Ways, block, stringtable)
if len(parsedWays) > 0 {
if p.waySync != nil {
p.waySync.doneWait()
}
p.ways <- parsedWays
}
p.ways <- parsedWays
}
parsedRelations := readRelations(group.Relations, block, stringtable)
if len(parsedRelations) > 0 && p.relations != nil {
if p.waySync != nil {
p.waySync.doneWait()
if len(group.Relations) > 0 && p.relations != nil {
parsedRelations := readRelations(group.Relations, block, stringtable)
if len(parsedRelations) > 0 {
if p.waySync != nil {
p.waySync.doneWait()
}
if p.relSync != nil {
p.relSync.doneWait()
}
p.relations <- parsedRelations
}
if p.relSync != nil {
p.relSync.doneWait()
}
p.relations <- parsedRelations
}
}
}