--- panda/src/audiotraits/fmodAudioSound.cxx 2008/05/28 18:37:28 1.31 +++ panda/src/audiotraits/fmodAudioSound.cxx 2008/09/03 14:39:09 1.32 @@ -311,10 +311,13 @@ } if (_channel == 0) { - + // This is because setCallback expects an integer + // but 64-bits pointers wont fit in a 32-bits int. + nassertv_always((intptr_t)this < UINT_MAX); + result = _manager->_system->playSound(FMOD_CHANNEL_FREE, _sound, true, &_channel); fmod_audio_errcheck("_system->playSound()", result); - result = _channel->setCallback(FMOD_CHANNEL_CALLBACKTYPE_END, sound_end_callback, (int)this); + result = _channel->setCallback(FMOD_CHANNEL_CALLBACKTYPE_END, sound_end_callback, (intptr_t)this); fmod_audio_errcheck("_channel->setCallback()", result); result = _channel->setPosition( startTime , FMOD_TIMEUNIT_MS ); fmod_audio_errcheck("_channel->setPosition()", result);