-
Bug
-
Resolution: Done
-
P3: Somewhat important
-
4.6.3, 4.7.1
-
None
-
e1cde7c26b4923299b78e6165416788fbf8cd30e
When using internal VoipAudioService together with QSound the play can return an Error and therefor hang the framework.
I looked at the source for 4.7.1 and found following:
In QSound, if setLoops is set with -1 as argument d->looptotal will be set to -1 at QSound::play
Then in QAuBucketS60, if MapcPlayComplete is called with an error playCompleted will be called and following code will run
else {
// We don't have a way to inform about errors -> just decrement loops
// in order that QSound::isFinished will return true;
while (decLoop(sound)) {}
if (staticPlayingSounds.removeAll(sound))
delete sound;
}
decLoop will return s->d_func()->looprem which I believe is still -1 and the while-case will loop until the platform close the application.
I have tested it on 4.6.3 but the code analysis is from 4.7.1 source-release.