src/corelib/animation/qvariantanimation.cpp
changeset 30 5dc02b23752f
parent 18 2f34d5167611
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
   429  */
   429  */
   430 void QVariantAnimation::registerInterpolator(QVariantAnimation::Interpolator func, int interpolationType)
   430 void QVariantAnimation::registerInterpolator(QVariantAnimation::Interpolator func, int interpolationType)
   431 {
   431 {
   432     // will override any existing interpolators
   432     // will override any existing interpolators
   433     QInterpolatorVector *interpolators = registeredInterpolators();
   433     QInterpolatorVector *interpolators = registeredInterpolators();
       
   434 #ifndef QT_NO_THREAD
   434     QMutexLocker locker(QMutexPool::globalInstanceGet(interpolators));
   435     QMutexLocker locker(QMutexPool::globalInstanceGet(interpolators));
       
   436 #endif
   435     if (int(interpolationType) >= interpolators->count())
   437     if (int(interpolationType) >= interpolators->count())
   436         interpolators->resize(int(interpolationType) + 1);
   438         interpolators->resize(int(interpolationType) + 1);
   437     interpolators->replace(interpolationType, func);
   439     interpolators->replace(interpolationType, func);
   438 }
   440 }
   439 
   441 
   444 }
   446 }
   445 
   447 
   446 QVariantAnimation::Interpolator QVariantAnimationPrivate::getInterpolator(int interpolationType)
   448 QVariantAnimation::Interpolator QVariantAnimationPrivate::getInterpolator(int interpolationType)
   447 {
   449 {
   448     QInterpolatorVector *interpolators = registeredInterpolators();
   450     QInterpolatorVector *interpolators = registeredInterpolators();
       
   451 #ifndef QT_NO_THREAD
   449     QMutexLocker locker(QMutexPool::globalInstanceGet(interpolators));
   452     QMutexLocker locker(QMutexPool::globalInstanceGet(interpolators));
       
   453 #endif
   450     QVariantAnimation::Interpolator ret = 0;
   454     QVariantAnimation::Interpolator ret = 0;
   451     if (interpolationType < interpolators->count()) {
   455     if (interpolationType < interpolators->count()) {
   452         ret = interpolators->at(interpolationType);
   456         ret = interpolators->at(interpolationType);
   453         if (ret) return ret;
   457         if (ret) return ret;
   454     }
   458     }