diff options
Diffstat (limited to 'src/audio/player.c')
-rw-r--r-- | src/audio/player.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/audio/player.c b/src/audio/player.c index f1d6a2c8..177613bb 100644 --- a/src/audio/player.c +++ b/src/audio/player.c | |||
@@ -477,10 +477,16 @@ void updateSourceData_Player(iPlayer *d, const iBlock *data, enum iPlayerUpdate | |||
477 | set_Block(&input->data, data); | 477 | set_Block(&input->data, data); |
478 | input->isComplete = iFalse; | 478 | input->isComplete = iFalse; |
479 | break; | 479 | break; |
480 | case append_PlayerUpdate: | 480 | case append_PlayerUpdate: { |
481 | append_Block(&input->data, data); | 481 | const size_t oldSize = size_Block(&input->data); |
482 | const size_t newSize = size_Block(data); | ||
483 | iAssert(newSize >= oldSize); | ||
484 | /* The old parts cannot have changed. */ | ||
485 | iAssert(memcmp(constData_Block(&input->data), constData_Block(data), oldSize) == 0); | ||
486 | appendData_Block(&input->data, constBegin_Block(data) + oldSize, newSize - oldSize); | ||
482 | input->isComplete = iFalse; | 487 | input->isComplete = iFalse; |
483 | break; | 488 | break; |
489 | } | ||
484 | case complete_PlayerUpdate: | 490 | case complete_PlayerUpdate: |
485 | input->isComplete = iTrue; | 491 | input->isComplete = iTrue; |
486 | break; | 492 | break; |