return -1;
}
- if( Index > Buffer->nSubBuffers )
+ if( Index >= Buffer->nSubBuffers )
{
// Appended buffers
Index -= Buffer->nSubBuffers;
}
else
{
- Index = Buffer->nSubBuffers - Index;
+ int rv = Index + 1;
+ Index = Buffer->nSubBuffers - Index - 1;
// Prepended buffers
*DataPtr = Buffer->SubBuffers[Index].Data;
*Length = Buffer->SubBuffers[Index].PreLength;
- return Buffer->nSubBuffers - (Index - 1);
+ return rv;
}
}