mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-11 14:44:36 +00:00
Issue found by PVS Studio:
Several instances where we utilize a pointer variable without properly testing that they aren't null first.
This commit is contained in:
parent
b24bdfbc8b
commit
3a18819e1e
9 changed files with 44 additions and 37 deletions
|
|
@ -1212,7 +1212,7 @@ void GuiWindowCtrl::onMouseUp(const GuiEvent &event)
|
|||
// We're either moving out of a collapse group or moving to another one
|
||||
// Not valid for windows not previously in a group
|
||||
if( mCollapseGroup >= 0 &&
|
||||
( snapType == -1 || ( snapType >= 0 && mCollapseGroup != hitWindow->mCollapseGroup) ) )
|
||||
(snapType == -1 || (hitWindow && snapType >= 0 && mCollapseGroup != hitWindow->mCollapseGroup)))
|
||||
moveFromCollapseGroup();
|
||||
|
||||
// No window to connect to
|
||||
|
|
|
|||
|
|
@ -1755,41 +1755,48 @@ void GuiControl::write(Stream &stream, U32 tabStop, U32 flags)
|
|||
{
|
||||
//note: this will return false if either we, or any of our parents, are non-save controls
|
||||
bool bCanSave = ( flags & IgnoreCanSave ) || ( flags & NoCheckParentCanSave && getCanSave() ) || getCanSaveParent();
|
||||
StringTableEntry steName = mAddGroup->getInternalName();
|
||||
if(bCanSave && mAddGroup && (steName != NULL) && (steName != StringTable->insert("null")) && getName() )
|
||||
|
||||
if (bCanSave && mAddGroup)
|
||||
{
|
||||
MutexHandle handle;
|
||||
handle.lock(mMutex);
|
||||
StringTableEntry steName = mAddGroup->getInternalName();
|
||||
|
||||
// export selected only?
|
||||
if((flags & SelectedOnly) && !isSelected())
|
||||
if ((steName != NULL) && (steName != StringTable->insert("null")) && getName())
|
||||
{
|
||||
for(U32 i = 0; i < size(); i++)
|
||||
(*this)[i]->write(stream, tabStop, flags);
|
||||
MutexHandle handle;
|
||||
handle.lock(mMutex);
|
||||
|
||||
// export selected only?
|
||||
if ((flags & SelectedOnly) && !isSelected())
|
||||
{
|
||||
for (U32 i = 0; i < size(); i++)
|
||||
(*this)[i]->write(stream, tabStop, flags);
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
stream.writeTabs(tabStop);
|
||||
char buffer[1024];
|
||||
dSprintf(buffer, sizeof(buffer), "new %s(%s,%s) {\r\n", getClassName(), getName() ? getName() : "", mAddGroup->getInternalName());
|
||||
stream.write(dStrlen(buffer), buffer);
|
||||
writeFields(stream, tabStop + 1);
|
||||
|
||||
if (size())
|
||||
{
|
||||
stream.write(2, "\r\n");
|
||||
for (U32 i = 0; i < size(); i++)
|
||||
(*this)[i]->write(stream, tabStop + 1, flags);
|
||||
}
|
||||
|
||||
stream.writeTabs(tabStop);
|
||||
stream.write(4, "};\r\n");
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
stream.writeTabs(tabStop);
|
||||
char buffer[1024];
|
||||
dSprintf(buffer, sizeof(buffer), "new %s(%s,%s) {\r\n", getClassName(), getName() ? getName() : "", mAddGroup->getInternalName());
|
||||
stream.write(dStrlen(buffer), buffer);
|
||||
writeFields(stream, tabStop + 1);
|
||||
|
||||
if(size())
|
||||
{
|
||||
stream.write(2, "\r\n");
|
||||
for(U32 i = 0; i < size(); i++)
|
||||
(*this)[i]->write(stream, tabStop + 1, flags);
|
||||
}
|
||||
|
||||
stream.writeTabs(tabStop);
|
||||
stream.write(4, "};\r\n");
|
||||
}
|
||||
else if (bCanSave)
|
||||
|
||||
if (bCanSave)
|
||||
Parent::write( stream, tabStop, flags );
|
||||
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
|
|
|
|||
|
|
@ -2655,7 +2655,7 @@ void WorldEditor::renderScene( const RectI &updateRect )
|
|||
|
||||
// Probably should test the entire icon screen-rect instead of just the centerpoint
|
||||
// but would need to move some code from renderScreenObj to here.
|
||||
if ( mDragSelect )
|
||||
if (mDragSelect && selection)
|
||||
if ( mDragRect.pointInRect(sPosI) && !selection->objInSet(obj) )
|
||||
mDragSelected->addObject(obj);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue