--- libgig/trunk/src/RIFF.cpp 2005/05/06 09:33:42 514 +++ libgig/trunk/src/RIFF.cpp 2005/05/07 20:19:10 515 @@ -642,7 +642,7 @@ } /** - * Returns number subchunks within the list. + * Returns number of subchunks within the list. */ unsigned int List::CountSubChunks() { if (!pSubChunks) LoadSubChunks(); @@ -721,6 +721,8 @@ if (!pSubChunks) { pSubChunks = new ChunkList(); pSubChunksMap = new ChunkMap(); + unsigned long uiOriginalPos = GetPos(); + SetPos(0); // jump to beginning of list chunk body while (RemainingBytes() >= CHUNK_HEADER_SIZE) { Chunk* ck; uint32_t ckid; @@ -740,6 +742,7 @@ (*pSubChunksMap)[ckid] = ck; if (GetPos() % 2 != 0) SetPos(1, RIFF::stream_curpos); // jump over pad byte } + SetPos(uiOriginalPos); // restore position before this call } }