mirror of
https://github.com/OpenMW/openmw.git
synced 2025-06-21 19:11:33 +00:00
Merge pull request #3062 from akortunov/master
Fix some issues found by CoverityScan
This commit is contained in:
commit
562375426d
21 changed files with 102 additions and 34 deletions
|
@ -20,6 +20,9 @@
|
||||||
QString getAspect(int x, int y)
|
QString getAspect(int x, int y)
|
||||||
{
|
{
|
||||||
int gcd = std::gcd (x, y);
|
int gcd = std::gcd (x, y);
|
||||||
|
if (gcd == 0)
|
||||||
|
return QString();
|
||||||
|
|
||||||
int xaspect = x / gcd;
|
int xaspect = x / gcd;
|
||||||
int yaspect = y / gcd;
|
int yaspect = y / gcd;
|
||||||
// special case: 8 : 5 is usually referred to as 16:10
|
// special case: 8 : 5 is usually referred to as 16:10
|
||||||
|
@ -298,9 +301,9 @@ QStringList Launcher::GraphicsPage::getAvailableResolutions(int screen)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString aspect = getAspect(mode.w, mode.h);
|
|
||||||
QString resolution = QString::number(mode.w) + QString(" x ") + QString::number(mode.h);
|
QString resolution = QString::number(mode.w) + QString(" x ") + QString::number(mode.h);
|
||||||
|
|
||||||
|
QString aspect = getAspect(mode.w, mode.h);
|
||||||
if (aspect == QLatin1String("16:9") || aspect == QLatin1String("16:10")) {
|
if (aspect == QLatin1String("16:9") || aspect == QLatin1String("16:10")) {
|
||||||
resolution.append(tr("\t(Wide ") + aspect + ")");
|
resolution.append(tr("\t(Wide ") + aspect + ")");
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,9 @@ void CSMWorld::PotionRefIdAdapter::setData (const RefIdColumn *column, RefIdData
|
||||||
|
|
||||||
|
|
||||||
CSMWorld::IngredientColumns::IngredientColumns (const InventoryColumns& columns)
|
CSMWorld::IngredientColumns::IngredientColumns (const InventoryColumns& columns)
|
||||||
: InventoryColumns (columns) {}
|
: InventoryColumns (columns)
|
||||||
|
, mEffects(nullptr)
|
||||||
|
{}
|
||||||
|
|
||||||
CSMWorld::IngredientRefIdAdapter::IngredientRefIdAdapter (const IngredientColumns& columns)
|
CSMWorld::IngredientRefIdAdapter::IngredientRefIdAdapter (const IngredientColumns& columns)
|
||||||
: InventoryRefIdAdapter<ESM::Ingredient> (UniversalId::Type_Ingredient, columns),
|
: InventoryRefIdAdapter<ESM::Ingredient> (UniversalId::Type_Ingredient, columns),
|
||||||
|
@ -585,7 +587,13 @@ void CSMWorld::DoorRefIdAdapter::setData (const RefIdColumn *column, RefIdData&
|
||||||
}
|
}
|
||||||
|
|
||||||
CSMWorld::LightColumns::LightColumns (const InventoryColumns& columns)
|
CSMWorld::LightColumns::LightColumns (const InventoryColumns& columns)
|
||||||
: InventoryColumns (columns) {}
|
: InventoryColumns (columns)
|
||||||
|
, mTime(nullptr)
|
||||||
|
, mRadius(nullptr)
|
||||||
|
, mColor(nullptr)
|
||||||
|
, mSound(nullptr)
|
||||||
|
, mEmitterType(nullptr)
|
||||||
|
{}
|
||||||
|
|
||||||
CSMWorld::LightRefIdAdapter::LightRefIdAdapter (const LightColumns& columns)
|
CSMWorld::LightRefIdAdapter::LightRefIdAdapter (const LightColumns& columns)
|
||||||
: InventoryRefIdAdapter<ESM::Light> (UniversalId::Type_Light, columns), mColumns (columns)
|
: InventoryRefIdAdapter<ESM::Light> (UniversalId::Type_Light, columns), mColumns (columns)
|
||||||
|
@ -1454,7 +1462,15 @@ int CSMWorld::CreatureMiscRefIdAdapter::getNestedRowsCount(const RefIdColumn *co
|
||||||
}
|
}
|
||||||
|
|
||||||
CSMWorld::WeaponColumns::WeaponColumns (const EnchantableColumns& columns)
|
CSMWorld::WeaponColumns::WeaponColumns (const EnchantableColumns& columns)
|
||||||
: EnchantableColumns (columns) {}
|
: EnchantableColumns (columns)
|
||||||
|
, mType(nullptr)
|
||||||
|
, mHealth(nullptr)
|
||||||
|
, mSpeed(nullptr)
|
||||||
|
, mReach(nullptr)
|
||||||
|
, mChop{nullptr}
|
||||||
|
, mSlash{nullptr}
|
||||||
|
, mThrust{nullptr}
|
||||||
|
{}
|
||||||
|
|
||||||
CSMWorld::WeaponRefIdAdapter::WeaponRefIdAdapter (const WeaponColumns& columns)
|
CSMWorld::WeaponRefIdAdapter::WeaponRefIdAdapter (const WeaponColumns& columns)
|
||||||
: EnchantableRefIdAdapter<ESM::Weapon> (UniversalId::Type_Weapon, columns), mColumns (columns)
|
: EnchantableRefIdAdapter<ESM::Weapon> (UniversalId::Type_Weapon, columns), mColumns (columns)
|
||||||
|
|
|
@ -178,7 +178,11 @@ namespace CSMWorld
|
||||||
const RefIdColumn *mName;
|
const RefIdColumn *mName;
|
||||||
const RefIdColumn *mScript;
|
const RefIdColumn *mScript;
|
||||||
|
|
||||||
NameColumns (const ModelColumns& base) : ModelColumns (base) {}
|
NameColumns (const ModelColumns& base)
|
||||||
|
: ModelColumns (base)
|
||||||
|
, mName(nullptr)
|
||||||
|
, mScript(nullptr)
|
||||||
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief Adapter for IDs with names (all but levelled lists and statics)
|
/// \brief Adapter for IDs with names (all but levelled lists and statics)
|
||||||
|
@ -247,7 +251,12 @@ namespace CSMWorld
|
||||||
const RefIdColumn *mWeight;
|
const RefIdColumn *mWeight;
|
||||||
const RefIdColumn *mValue;
|
const RefIdColumn *mValue;
|
||||||
|
|
||||||
InventoryColumns (const NameColumns& base) : NameColumns (base) {}
|
InventoryColumns (const NameColumns& base)
|
||||||
|
: NameColumns (base)
|
||||||
|
, mIcon(nullptr)
|
||||||
|
, mWeight(nullptr)
|
||||||
|
, mValue(nullptr)
|
||||||
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief Adapter for IDs that can go into an inventory
|
/// \brief Adapter for IDs that can go into an inventory
|
||||||
|
@ -405,7 +414,11 @@ namespace CSMWorld
|
||||||
const RefIdColumn *mEnchantment;
|
const RefIdColumn *mEnchantment;
|
||||||
const RefIdColumn *mEnchantmentPoints;
|
const RefIdColumn *mEnchantmentPoints;
|
||||||
|
|
||||||
EnchantableColumns (const InventoryColumns& base) : InventoryColumns (base) {}
|
EnchantableColumns (const InventoryColumns& base)
|
||||||
|
: InventoryColumns (base)
|
||||||
|
, mEnchantment(nullptr)
|
||||||
|
, mEnchantmentPoints(nullptr)
|
||||||
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief Adapter for enchantable IDs
|
/// \brief Adapter for enchantable IDs
|
||||||
|
@ -474,7 +487,11 @@ namespace CSMWorld
|
||||||
const RefIdColumn *mQuality;
|
const RefIdColumn *mQuality;
|
||||||
const RefIdColumn *mUses;
|
const RefIdColumn *mUses;
|
||||||
|
|
||||||
ToolColumns (const InventoryColumns& base) : InventoryColumns (base) {}
|
ToolColumns (const InventoryColumns& base)
|
||||||
|
: InventoryColumns (base)
|
||||||
|
, mQuality(nullptr)
|
||||||
|
, mUses(nullptr)
|
||||||
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief Adapter for tools with limited uses IDs (lockpick, repair, probes)
|
/// \brief Adapter for tools with limited uses IDs (lockpick, repair, probes)
|
||||||
|
@ -549,7 +566,17 @@ namespace CSMWorld
|
||||||
const RefIdColumn *mAiPackages;
|
const RefIdColumn *mAiPackages;
|
||||||
std::map<const RefIdColumn *, unsigned int> mServices;
|
std::map<const RefIdColumn *, unsigned int> mServices;
|
||||||
|
|
||||||
ActorColumns (const NameColumns& base) : NameColumns (base) {}
|
ActorColumns (const NameColumns& base)
|
||||||
|
: NameColumns (base)
|
||||||
|
, mHello(nullptr)
|
||||||
|
, mFlee(nullptr)
|
||||||
|
, mFight(nullptr)
|
||||||
|
, mAlarm(nullptr)
|
||||||
|
, mInventory(nullptr)
|
||||||
|
, mSpells(nullptr)
|
||||||
|
, mDestinations(nullptr)
|
||||||
|
, mAiPackages(nullptr)
|
||||||
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief Adapter for actor IDs (handles common AI functionality)
|
/// \brief Adapter for actor IDs (handles common AI functionality)
|
||||||
|
@ -2054,7 +2081,11 @@ namespace CSMWorld
|
||||||
const RefIdColumn *mLevList;
|
const RefIdColumn *mLevList;
|
||||||
const RefIdColumn *mNestedListLevList;
|
const RefIdColumn *mNestedListLevList;
|
||||||
|
|
||||||
LevListColumns (const BaseColumns& base) : BaseColumns (base) {}
|
LevListColumns (const BaseColumns& base)
|
||||||
|
: BaseColumns (base)
|
||||||
|
, mLevList(nullptr)
|
||||||
|
, mNestedListLevList(nullptr)
|
||||||
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename RecordT>
|
template<typename RecordT>
|
||||||
|
|
|
@ -71,7 +71,7 @@ namespace MWGui
|
||||||
, mUpdateTimer(0.f)
|
, mUpdateTimer(0.f)
|
||||||
{
|
{
|
||||||
float uiScale = Settings::Manager::getFloat("scaling factor", "GUI");
|
float uiScale = Settings::Manager::getFloat("scaling factor", "GUI");
|
||||||
if (uiScale > 1.0)
|
if (uiScale > 0.f)
|
||||||
mScaleFactor = uiScale;
|
mScaleFactor = uiScale;
|
||||||
|
|
||||||
mPreviewTexture.reset(new osgMyGUI::OSGTexture(mPreview->getTexture()));
|
mPreviewTexture.reset(new osgMyGUI::OSGTexture(mPreview->getTexture()));
|
||||||
|
|
|
@ -61,6 +61,9 @@ namespace
|
||||||
std::string getAspect (int x, int y)
|
std::string getAspect (int x, int y)
|
||||||
{
|
{
|
||||||
int gcd = std::gcd (x, y);
|
int gcd = std::gcd (x, y);
|
||||||
|
if (gcd == 0)
|
||||||
|
return std::string();
|
||||||
|
|
||||||
int xaspect = x / gcd;
|
int xaspect = x / gcd;
|
||||||
int yaspect = y / gcd;
|
int yaspect = y / gcd;
|
||||||
// special case: 8 : 5 is usually referred to as 16:10
|
// special case: 8 : 5 is usually referred to as 16:10
|
||||||
|
@ -249,8 +252,10 @@ namespace MWGui
|
||||||
std::sort(resolutions.begin(), resolutions.end(), sortResolutions);
|
std::sort(resolutions.begin(), resolutions.end(), sortResolutions);
|
||||||
for (std::pair<int, int>& resolution : resolutions)
|
for (std::pair<int, int>& resolution : resolutions)
|
||||||
{
|
{
|
||||||
std::string str = MyGUI::utility::toString(resolution.first) + " x " + MyGUI::utility::toString(resolution.second)
|
std::string str = MyGUI::utility::toString(resolution.first) + " x " + MyGUI::utility::toString(resolution.second);
|
||||||
+ " (" + getAspect(resolution.first, resolution.second) + ")";
|
std::string aspect = getAspect(resolution.first, resolution.second);
|
||||||
|
if (!aspect.empty())
|
||||||
|
str = str + " (" + aspect + ")";
|
||||||
|
|
||||||
if (mResolutionList->findItemIndexWith(str) == MyGUI::ITEM_NONE)
|
if (mResolutionList->findItemIndexWith(str) == MyGUI::ITEM_NONE)
|
||||||
mResolutionList->addItem(str);
|
mResolutionList->addItem(str);
|
||||||
|
|
|
@ -393,7 +393,8 @@ namespace MWGui
|
||||||
MWWorld::Ptr player = MWMechanics::getPlayer();
|
MWWorld::Ptr player = MWMechanics::getPlayer();
|
||||||
int playerGold = player.getClass().getContainerStore(player).count(MWWorld::ContainerStore::sGoldId);
|
int playerGold = player.getClass().getContainerStore(player).count(MWWorld::ContainerStore::sGoldId);
|
||||||
|
|
||||||
if (MyGUI::utility::parseInt(mPriceLabel->getCaption()) > playerGold)
|
int price = MyGUI::utility::parseInt(mPriceLabel->getCaption());
|
||||||
|
if (price > playerGold)
|
||||||
{
|
{
|
||||||
MWBase::Environment::get().getWindowManager()->messageBox ("#{sNotifyMessage18}");
|
MWBase::Environment::get().getWindowManager()->messageBox ("#{sNotifyMessage18}");
|
||||||
return;
|
return;
|
||||||
|
@ -401,8 +402,6 @@ namespace MWGui
|
||||||
|
|
||||||
mSpell.mName = mNameEdit->getCaption();
|
mSpell.mName = mNameEdit->getCaption();
|
||||||
|
|
||||||
int price = MyGUI::utility::parseInt(mPriceLabel->getCaption());
|
|
||||||
|
|
||||||
player.getClass().getContainerStore(player).remove(MWWorld::ContainerStore::sGoldId, price, player);
|
player.getClass().getContainerStore(player).remove(MWWorld::ContainerStore::sGoldId, price, player);
|
||||||
|
|
||||||
// add gold to NPC trading gold pool
|
// add gold to NPC trading gold pool
|
||||||
|
|
|
@ -70,7 +70,7 @@ namespace MWInput
|
||||||
}
|
}
|
||||||
|
|
||||||
float uiScale = Settings::Manager::getFloat("scaling factor", "GUI");
|
float uiScale = Settings::Manager::getFloat("scaling factor", "GUI");
|
||||||
if (uiScale != 0.f)
|
if (uiScale > 0.f)
|
||||||
mInvUiScalingFactor = 1.f / uiScale;
|
mInvUiScalingFactor = 1.f / uiScale;
|
||||||
|
|
||||||
float deadZoneRadius = Settings::Manager::getFloat("joystick dead zone", "Input");
|
float deadZoneRadius = Settings::Manager::getFloat("joystick dead zone", "Input");
|
||||||
|
|
|
@ -37,7 +37,7 @@ namespace MWInput
|
||||||
, mGuiCursorEnabled(true)
|
, mGuiCursorEnabled(true)
|
||||||
{
|
{
|
||||||
float uiScale = Settings::Manager::getFloat("scaling factor", "GUI");
|
float uiScale = Settings::Manager::getFloat("scaling factor", "GUI");
|
||||||
if (uiScale != 0.f)
|
if (uiScale > 0.f)
|
||||||
mInvUiScalingFactor = 1.f / uiScale;
|
mInvUiScalingFactor = 1.f / uiScale;
|
||||||
|
|
||||||
int w,h;
|
int w,h;
|
||||||
|
|
|
@ -45,13 +45,13 @@ bool MWMechanics::AiAvoidDoor::execute (const MWWorld::Ptr& actor, CharacterCont
|
||||||
return true; //Door is no longer opening
|
return true; //Door is no longer opening
|
||||||
|
|
||||||
ESM::Position tPos = mDoorPtr.getRefData().getPosition(); //Position of the door
|
ESM::Position tPos = mDoorPtr.getRefData().getPosition(); //Position of the door
|
||||||
float x = pos.pos[0] - tPos.pos[0];
|
float x = pos.pos[1] - tPos.pos[1];
|
||||||
float y = pos.pos[1] - tPos.pos[1];
|
float y = pos.pos[0] - tPos.pos[0];
|
||||||
|
|
||||||
actor.getClass().getCreatureStats(actor).setMovementFlag(CreatureStats::Flag_Run, true);
|
actor.getClass().getCreatureStats(actor).setMovementFlag(CreatureStats::Flag_Run, true);
|
||||||
|
|
||||||
// Turn away from the door and move when turn completed
|
// Turn away from the door and move when turn completed
|
||||||
if (zTurn(actor, std::atan2(x,y) + getAdjustedAngle(), osg::DegreesToRadians(5.f)))
|
if (zTurn(actor, std::atan2(y,x) + getAdjustedAngle(), osg::DegreesToRadians(5.f)))
|
||||||
actor.getClass().getMovementSettings(actor).mPosition[1] = 1;
|
actor.getClass().getMovementSettings(actor).mPosition[1] = 1;
|
||||||
else
|
else
|
||||||
actor.getClass().getMovementSettings(actor).mPosition[1] = 0;
|
actor.getClass().getMovementSettings(actor).mPosition[1] = 0;
|
||||||
|
|
|
@ -90,7 +90,7 @@ LocalMap::LocalMap(osg::Group* root)
|
||||||
{
|
{
|
||||||
// Increase map resolution, if use UI scaling
|
// Increase map resolution, if use UI scaling
|
||||||
float uiScale = Settings::Manager::getFloat("scaling factor", "GUI");
|
float uiScale = Settings::Manager::getFloat("scaling factor", "GUI");
|
||||||
if (uiScale > 1.0)
|
if (uiScale > 0.f)
|
||||||
mMapResolution *= uiScale;
|
mMapResolution *= uiScale;
|
||||||
|
|
||||||
SceneUtil::FindByNameVisitor find("Scene Root");
|
SceneUtil::FindByNameVisitor find("Scene Root");
|
||||||
|
|
|
@ -815,6 +815,7 @@ namespace MWRender
|
||||||
RenderingManager::RayResult result;
|
RenderingManager::RayResult result;
|
||||||
result.mHit = false;
|
result.mHit = false;
|
||||||
result.mHitRefnum.mContentFile = -1;
|
result.mHitRefnum.mContentFile = -1;
|
||||||
|
result.mHitRefnum.mIndex = -1;
|
||||||
result.mRatio = 0;
|
result.mRatio = 0;
|
||||||
if (intersector->containsIntersections())
|
if (intersector->containsIntersections())
|
||||||
{
|
{
|
||||||
|
|
|
@ -132,9 +132,11 @@ void MWWorld::Cells::writeCell (ESM::ESMWriter& writer, CellStore& cell) const
|
||||||
|
|
||||||
MWWorld::Cells::Cells (const MWWorld::ESMStore& store, std::vector<ESM::ESMReader>& reader)
|
MWWorld::Cells::Cells (const MWWorld::ESMStore& store, std::vector<ESM::ESMReader>& reader)
|
||||||
: mStore (store), mReader (reader),
|
: mStore (store), mReader (reader),
|
||||||
mIdCache (Settings::Manager::getInt("pointers cache size", "Cells"), std::pair<std::string, CellStore *> ("", (CellStore*)nullptr)),
|
|
||||||
mIdCacheIndex (0)
|
mIdCacheIndex (0)
|
||||||
{}
|
{
|
||||||
|
int cacheSize = std::max(Settings::Manager::getInt("pointers cache size", "Cells"), 0);
|
||||||
|
mIdCache = IdCache(cacheSize, std::pair<std::string, CellStore *> ("", (CellStore*)nullptr));
|
||||||
|
}
|
||||||
|
|
||||||
MWWorld::CellStore *MWWorld::Cells::getExterior (int x, int y)
|
MWWorld::CellStore *MWWorld::Cells::getExterior (int x, int y)
|
||||||
{
|
{
|
||||||
|
@ -259,8 +261,7 @@ MWWorld::Ptr MWWorld::Cells::getPtr (const std::string& name, CellStore& cell,
|
||||||
MWWorld::Ptr MWWorld::Cells::getPtr (const std::string& name)
|
MWWorld::Ptr MWWorld::Cells::getPtr (const std::string& name)
|
||||||
{
|
{
|
||||||
// First check the cache
|
// First check the cache
|
||||||
for (std::vector<std::pair<std::string, CellStore *> >::iterator iter (mIdCache.begin());
|
for (IdCache::iterator iter (mIdCache.begin()); iter!=mIdCache.end(); ++iter)
|
||||||
iter!=mIdCache.end(); ++iter)
|
|
||||||
if (iter->first==name && iter->second)
|
if (iter->first==name && iter->second)
|
||||||
{
|
{
|
||||||
Ptr ptr = getPtr (name, *iter->second);
|
Ptr ptr = getPtr (name, *iter->second);
|
||||||
|
|
|
@ -28,11 +28,12 @@ namespace MWWorld
|
||||||
/// \brief Cell container
|
/// \brief Cell container
|
||||||
class Cells
|
class Cells
|
||||||
{
|
{
|
||||||
|
typedef std::vector<std::pair<std::string, CellStore *> > IdCache;
|
||||||
const MWWorld::ESMStore& mStore;
|
const MWWorld::ESMStore& mStore;
|
||||||
std::vector<ESM::ESMReader>& mReader;
|
std::vector<ESM::ESMReader>& mReader;
|
||||||
mutable std::map<std::string, CellStore> mInteriors;
|
mutable std::map<std::string, CellStore> mInteriors;
|
||||||
mutable std::map<std::pair<int, int>, CellStore> mExteriors;
|
mutable std::map<std::pair<int, int>, CellStore> mExteriors;
|
||||||
std::vector<std::pair<std::string, CellStore *> > mIdCache;
|
IdCache mIdCache;
|
||||||
std::size_t mIdCacheIndex;
|
std::size_t mIdCacheIndex;
|
||||||
|
|
||||||
Cells (const Cells&);
|
Cells (const Cells&);
|
||||||
|
|
|
@ -381,8 +381,10 @@ Files::IStreamPtr CompressedBSAFile::getFile(const FileRecord& fileRecord)
|
||||||
LZ4F_decompressionContext_t context = nullptr;
|
LZ4F_decompressionContext_t context = nullptr;
|
||||||
LZ4F_createDecompressionContext(&context, LZ4F_VERSION);
|
LZ4F_createDecompressionContext(&context, LZ4F_VERSION);
|
||||||
LZ4F_decompressOptions_t options = {};
|
LZ4F_decompressOptions_t options = {};
|
||||||
LZ4F_decompress(context, memoryStreamPtr->getRawData(), &uncompressedSize, buffer.get(), &size, &options);
|
LZ4F_errorCode_t errorCode = LZ4F_decompress(context, memoryStreamPtr->getRawData(), &uncompressedSize, buffer.get(), &size, &options);
|
||||||
LZ4F_errorCode_t errorCode = LZ4F_freeDecompressionContext(context);
|
if (LZ4F_isError(errorCode))
|
||||||
|
fail("LZ4 decompression error (file " + mFilename + "): " + LZ4F_getErrorName(errorCode));
|
||||||
|
errorCode = LZ4F_freeDecompressionContext(context);
|
||||||
if (LZ4F_isError(errorCode))
|
if (LZ4F_isError(errorCode))
|
||||||
fail("LZ4 decompression error (file " + mFilename + "): " + LZ4F_getErrorName(errorCode));
|
fail("LZ4 decompression error (file " + mFilename + "): " + LZ4F_getErrorName(errorCode));
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,11 +146,10 @@ static void gdb_info(pid_t pid)
|
||||||
/*
|
/*
|
||||||
* Create a temp file to put gdb commands into.
|
* Create a temp file to put gdb commands into.
|
||||||
* Note: POSIX.1-2008 declares that the file should be already created with mode 0600 by default.
|
* Note: POSIX.1-2008 declares that the file should be already created with mode 0600 by default.
|
||||||
* Modern systems implement it and and suggest to do not touch masks in multithreaded applications.
|
* Modern systems implement it and suggest to do not touch masks in multithreaded applications.
|
||||||
* So CoverityScan warning is valid only for ancient versions of stdlib.
|
* So CoverityScan warning is valid only for ancient versions of stdlib.
|
||||||
*/
|
*/
|
||||||
strcpy(respfile, "/tmp/gdb-respfile-XXXXXX");
|
strcpy(respfile, "/tmp/gdb-respfile-XXXXXX");
|
||||||
// coverity[secure_temp]
|
|
||||||
if((fd=mkstemp(respfile)) >= 0 && (f=fdopen(fd, "w")) != nullptr)
|
if((fd=mkstemp(respfile)) >= 0 && (f=fdopen(fd, "w")) != nullptr)
|
||||||
{
|
{
|
||||||
fprintf(f, "attach %d\n"
|
fprintf(f, "attach %d\n"
|
||||||
|
|
|
@ -42,6 +42,7 @@ void ESM::Header::load (ESMReader &esm)
|
||||||
MasterData m;
|
MasterData m;
|
||||||
m.name = esm.getHString();
|
m.name = esm.getHString();
|
||||||
m.size = esm.getHNLong ("DATA");
|
m.size = esm.getHNLong ("DATA");
|
||||||
|
m.index = -1;
|
||||||
mMaster.push_back (m);
|
mMaster.push_back (m);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -569,7 +569,8 @@ namespace Gui
|
||||||
resolution = std::min(960, std::max(48, resolution));
|
resolution = std::min(960, std::max(48, resolution));
|
||||||
|
|
||||||
float uiScale = Settings::Manager::getFloat("scaling factor", "GUI");
|
float uiScale = Settings::Manager::getFloat("scaling factor", "GUI");
|
||||||
resolution *= uiScale;
|
if (uiScale > 0.f)
|
||||||
|
resolution *= uiScale;
|
||||||
|
|
||||||
MyGUI::xml::ElementPtr resolutionNode = resourceNode->createChild("Property");
|
MyGUI::xml::ElementPtr resolutionNode = resourceNode->createChild("Property");
|
||||||
resolutionNode->addAttribute("key", "Resolution");
|
resolutionNode->addAttribute("key", "Resolution");
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Misc
|
||||||
explicit FrameRateLimiter(std::chrono::duration<Rep, Ratio> maxFrameDuration,
|
explicit FrameRateLimiter(std::chrono::duration<Rep, Ratio> maxFrameDuration,
|
||||||
std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now())
|
std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now())
|
||||||
: mMaxFrameDuration(std::chrono::duration_cast<std::chrono::steady_clock::duration>(maxFrameDuration))
|
: mMaxFrameDuration(std::chrono::duration_cast<std::chrono::steady_clock::duration>(maxFrameDuration))
|
||||||
|
, mLastFrameDuration(0)
|
||||||
, mLastMeasurement(now)
|
, mLastMeasurement(now)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
|
@ -226,6 +226,7 @@ namespace Resource
|
||||||
, mAutoUseNormalMaps(false)
|
, mAutoUseNormalMaps(false)
|
||||||
, mAutoUseSpecularMaps(false)
|
, mAutoUseSpecularMaps(false)
|
||||||
, mApplyLightingToEnvMaps(false)
|
, mApplyLightingToEnvMaps(false)
|
||||||
|
, mConvertAlphaTestToAlphaToCoverage(false)
|
||||||
, mInstanceCache(new MultiObjectCache)
|
, mInstanceCache(new MultiObjectCache)
|
||||||
, mSharedStateManager(new SharedStateManager)
|
, mSharedStateManager(new SharedStateManager)
|
||||||
, mImageManager(imageManager)
|
, mImageManager(imageManager)
|
||||||
|
|
|
@ -375,6 +375,7 @@ InputWrapper::InputWrapper(SDL_Window* window, osg::ref_ptr<osgViewer::Viewer> v
|
||||||
pack_evt.y = mMouseY = evt.motion.y;
|
pack_evt.y = mMouseY = evt.motion.y;
|
||||||
pack_evt.xrel = evt.motion.xrel;
|
pack_evt.xrel = evt.motion.xrel;
|
||||||
pack_evt.yrel = evt.motion.yrel;
|
pack_evt.yrel = evt.motion.yrel;
|
||||||
|
pack_evt.type = SDL_MOUSEMOTION;
|
||||||
if (mFirstMouseMove)
|
if (mFirstMouseMove)
|
||||||
{
|
{
|
||||||
// first event should be treated as non-relative, since there's no point of reference
|
// first event should be treated as non-relative, since there's no point of reference
|
||||||
|
@ -387,6 +388,7 @@ InputWrapper::InputWrapper(SDL_Window* window, osg::ref_ptr<osgViewer::Viewer> v
|
||||||
{
|
{
|
||||||
mMouseZ += pack_evt.zrel = (evt.wheel.y * 120);
|
mMouseZ += pack_evt.zrel = (evt.wheel.y * 120);
|
||||||
pack_evt.z = mMouseZ;
|
pack_evt.z = mMouseZ;
|
||||||
|
pack_evt.type = SDL_MOUSEWHEEL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
8
extern/osg-ffmpeg-videoplayer/videostate.cpp
vendored
8
extern/osg-ffmpeg-videoplayer/videostate.cpp
vendored
|
@ -50,8 +50,9 @@ VideoState::VideoState()
|
||||||
, av_sync_type(AV_SYNC_DEFAULT)
|
, av_sync_type(AV_SYNC_DEFAULT)
|
||||||
, audio_st(nullptr)
|
, audio_st(nullptr)
|
||||||
, video_st(nullptr), frame_last_pts(0.0)
|
, video_st(nullptr), frame_last_pts(0.0)
|
||||||
, video_clock(0.0), sws_context(nullptr), pictq_size(0)
|
, video_clock(0.0), sws_context(nullptr)
|
||||||
, pictq_rindex(0), pictq_windex(0)
|
, sws_context_w(0), sws_context_h(0)
|
||||||
|
, pictq_size(0), pictq_rindex(0), pictq_windex(0)
|
||||||
, mSeekRequested(false)
|
, mSeekRequested(false)
|
||||||
, mSeekPos(0)
|
, mSeekPos(0)
|
||||||
, mVideoEnded(false)
|
, mVideoEnded(false)
|
||||||
|
@ -349,7 +350,10 @@ int VideoState::queue_picture(AVFrame *pFrame, double pts)
|
||||||
|
|
||||||
vp->pts = pts;
|
vp->pts = pts;
|
||||||
if (vp->set_dimensions(w, h) < 0)
|
if (vp->set_dimensions(w, h) < 0)
|
||||||
|
{
|
||||||
|
this->pictq_mutex.unlock();
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
sws_scale(this->sws_context, pFrame->data, pFrame->linesize,
|
sws_scale(this->sws_context, pFrame->data, pFrame->linesize,
|
||||||
0, this->video_ctx->height, vp->rgbaFrame->data, vp->rgbaFrame->linesize);
|
0, this->video_ctx->height, vp->rgbaFrame->data, vp->rgbaFrame->linesize);
|
||||||
|
|
Loading…
Reference in a new issue