From 2367a62a51ec833e08d6dd342b65b9b1829391d5 Mon Sep 17 00:00:00 2001 From: Hyunjin Song Date: Mon, 23 Mar 2020 15:11:13 +0900 Subject: [PATCH] Fix crashes and hangs on importing some Hydrogen drum kit songs (#5420) --- plugins/HydrogenImport/HydrogenImport.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/plugins/HydrogenImport/HydrogenImport.cpp b/plugins/HydrogenImport/HydrogenImport.cpp index f86cdffd7..3ca0f2da2 100644 --- a/plugins/HydrogenImport/HydrogenImport.cpp +++ b/plugins/HydrogenImport/HydrogenImport.cpp @@ -200,13 +200,19 @@ bool HydrogenImport::readSong() else { unsigned nLayer = 0; - QDomNode layerNode = instrumentNode.firstChildElement( "layer" ); + QDomNode instrumentComponentNode = instrumentNode.firstChildElement("instrumentComponent"); + if (instrumentComponentNode.isNull()) + { + instrumentComponentNode = instrumentNode; + } + + QDomNode layerNode = instrumentComponentNode.firstChildElement( "layer" ); while ( ! layerNode.isNull() ) { if ( nLayer >= MAX_LAYERS ) { - printf( "nLayer >= MAX_LAYERS" ); - continue; + printf("nLayer >= MAX_LAYERS\n"); + break; } QString sFilename = LocalFileMng::readXmlString( layerNode, "filename", "" ); QString sMode = LocalFileMng::readXmlString( layerNode, "smode", "forward" );