I've mentioned this before but I'm no expert C programmer. Can someone
explain why we do the following in storage32.c?
if (cbRead > 0)
{
cbTotalRead += cbRead;
resWrite = BlockChainStream_WriteAt(bbTempChain,
offset,
cbRead,
buffer,
&cbWritten);
if (FAILED(resWrite))
break;
cbTotalWritten += cbWritten;
offset.u.LowPart += This->smallBlockSize;
}
} while (cbRead > 0);
HeapFree(GetProcessHeap(),0,buffer);
if (FAILED(resRead) || FAILED(resWrite))
{
ERR("conversion failed: resRead = 0x%08lx, resWrite = 0x%08lx\n",
resRead, resWrite);
BlockChainStream_Destroy(bbTempChain);
return NULL;
}
in the while loop above
while (cbRead > 0);
it appears it terminates without doing anything due to the semicolon, is
this intentional or is this semicolon not supposed to be there and its
supposed to execute the line below it? If it is intentional why is the empty
while loop here?