Address several remaining 1.8.9.8373 crashes reported on
This commit is contained in:
@@ -1197,6 +1197,10 @@ void LLVertexBuffer::genBuffer(U32 size)
|
|||||||
{
|
{
|
||||||
mMappedData = sDynamicVBOPool.allocate(mGLBuffer, mSize);
|
mMappedData = sDynamicVBOPool.allocate(mGLBuffer, mSize);
|
||||||
}
|
}
|
||||||
|
if ((sDisableVBOMapping || mUsage != GL_DYNAMIC_DRAW_ARB) && !mMappedData)
|
||||||
|
{
|
||||||
|
LL_ERRS() << "mMappedData allocation failedd" << LL_ENDL;
|
||||||
|
}
|
||||||
|
|
||||||
sGLCount++;
|
sGLCount++;
|
||||||
}
|
}
|
||||||
@@ -1213,6 +1217,10 @@ void LLVertexBuffer::genIndices(U32 size)
|
|||||||
{
|
{
|
||||||
mMappedIndexData = sDynamicIBOPool.allocate(mGLIndices, mIndicesSize);
|
mMappedIndexData = sDynamicIBOPool.allocate(mGLIndices, mIndicesSize);
|
||||||
}
|
}
|
||||||
|
if ((sDisableVBOMapping || mUsage != GL_DYNAMIC_DRAW_ARB) && !mMappedIndexData)
|
||||||
|
{
|
||||||
|
LL_ERRS() << "mMappedIndexData allocation failedd" << LL_ENDL;
|
||||||
|
}
|
||||||
|
|
||||||
sGLCount++;
|
sGLCount++;
|
||||||
}
|
}
|
||||||
@@ -1848,6 +1856,7 @@ volatile U8* LLVertexBuffer::mapIndexBuffer(S32 index, S32 count, bool map_range
|
|||||||
LL_ERRS() << "Attempted to map a specific range of a buffer that was already mapped." << LL_ENDL;
|
LL_ERRS() << "Attempted to map a specific range of a buffer that was already mapped." << LL_ENDL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool was_locked = mIndexLocked;
|
||||||
if (!mIndexLocked)
|
if (!mIndexLocked)
|
||||||
{
|
{
|
||||||
mIndexLocked = true;
|
mIndexLocked = true;
|
||||||
@@ -1942,6 +1951,10 @@ volatile U8* LLVertexBuffer::mapIndexBuffer(S32 index, S32 count, bool map_range
|
|||||||
|
|
||||||
LL_ERRS() << "glMapBuffer returned NULL (no index data)" << LL_ENDL;
|
LL_ERRS() << "glMapBuffer returned NULL (no index data)" << LL_ENDL;
|
||||||
}
|
}
|
||||||
|
else if (was_locked)
|
||||||
|
{
|
||||||
|
LL_ERRS() << "mIndexLocked was true but no Index data allocated" << LL_ENDL;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LL_ERRS() << "memory allocation for Index data failed. " << LL_ENDL;
|
LL_ERRS() << "memory allocation for Index data failed. " << LL_ENDL;
|
||||||
|
|||||||
@@ -531,17 +531,24 @@ void LLChatBar::sendChat( EChatType type )
|
|||||||
// static
|
// static
|
||||||
void LLChatBar::startChat(const char* line)
|
void LLChatBar::startChat(const char* line)
|
||||||
{
|
{
|
||||||
|
if (!gChatBar || !gChatBar->getParent())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
gChatBar->getParent()->setVisible(TRUE);
|
gChatBar->getParent()->setVisible(TRUE);
|
||||||
gChatBar->setKeyboardFocus(TRUE);
|
gChatBar->setKeyboardFocus(TRUE);
|
||||||
gSavedSettings.setBOOL("ChatVisible", TRUE);
|
gSavedSettings.setBOOL("ChatVisible", TRUE);
|
||||||
|
|
||||||
if (line && gChatBar->mInputEditor)
|
if (gChatBar->mInputEditor)
|
||||||
{
|
{
|
||||||
std::string line_string(line);
|
if (line)
|
||||||
gChatBar->mInputEditor->setText(line_string);
|
{
|
||||||
|
std::string line_string(line);
|
||||||
|
gChatBar->mInputEditor->setText(line_string);
|
||||||
|
}
|
||||||
|
// always move cursor to end so users don't obliterate chat when accidentally hitting WASD
|
||||||
|
gChatBar->mInputEditor->setCursorToEnd();
|
||||||
}
|
}
|
||||||
// always move cursor to end so users don't obliterate chat when accidentally hitting WASD
|
|
||||||
gChatBar->mInputEditor->setCursorToEnd();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -550,7 +557,8 @@ void LLChatBar::startChat(const char* line)
|
|||||||
void LLChatBar::stopChat()
|
void LLChatBar::stopChat()
|
||||||
{
|
{
|
||||||
// In simple UI mode, we never release focus from the chat bar
|
// In simple UI mode, we never release focus from the chat bar
|
||||||
gChatBar->setKeyboardFocus(FALSE);
|
if (gChatBar)
|
||||||
|
gChatBar->setKeyboardFocus(FALSE);
|
||||||
|
|
||||||
// If we typed a movement key and pressed return during the
|
// If we typed a movement key and pressed return during the
|
||||||
// same frame, the keyboard handlers will see the key as having
|
// same frame, the keyboard handlers will see the key as having
|
||||||
@@ -562,7 +570,8 @@ void LLChatBar::stopChat()
|
|||||||
gAgent.stopTyping();
|
gAgent.stopTyping();
|
||||||
|
|
||||||
// hide chat bar so it doesn't grab focus back
|
// hide chat bar so it doesn't grab focus back
|
||||||
gChatBar->getParent()->setVisible(FALSE);
|
if (gChatBar && gChatBar->getParent())
|
||||||
|
gChatBar->getParent()->setVisible(FALSE);
|
||||||
gSavedSettings.setBOOL("ChatVisible", FALSE);
|
gSavedSettings.setBOOL("ChatVisible", FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -515,6 +515,10 @@ void LLCloudLayer::connectNeighbor(LLCloudLayer *cloudp, U32 direction)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mNeighbors[direction])
|
||||||
|
{
|
||||||
|
mNeighbors[direction]->mNeighbors[gDirOpposite[direction]] = NULL;
|
||||||
|
}
|
||||||
mNeighbors[direction] = cloudp;
|
mNeighbors[direction] = cloudp;
|
||||||
if (cloudp)
|
if (cloudp)
|
||||||
mNeighbors[direction]->mNeighbors[gDirOpposite[direction]] = this;
|
mNeighbors[direction]->mNeighbors[gDirOpposite[direction]] = this;
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ void LLHUDIcon::renderIcon(BOOL for_select)
|
|||||||
if (mHidden)
|
if (mHidden)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (mSourceObject.isNull() || mImagep.isNull())
|
if (mSourceObject.isNull() || mImagep.isNull() || mSourceObject->mDrawable.isNull())
|
||||||
{
|
{
|
||||||
markDead();
|
markDead();
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -1895,6 +1895,11 @@ void LLIMProcessing::requestOfflineMessages()
|
|||||||
|
|
||||||
void LLIMProcessing::requestOfflineMessagesCoro(const LLCoroResponder& responder)
|
void LLIMProcessing::requestOfflineMessagesCoro(const LLCoroResponder& responder)
|
||||||
{
|
{
|
||||||
|
if (LLApp::isQuitting() || !gAgent.getRegion())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
auto status = responder.getStatus();
|
auto status = responder.getStatus();
|
||||||
|
|
||||||
if (!responder.isGoodStatus(status)) // success = httpResults["success"].asBoolean();
|
if (!responder.isGoodStatus(status)) // success = httpResults["success"].asBoolean();
|
||||||
|
|||||||
@@ -548,24 +548,29 @@ void start_chat( EKeystate s )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// start chat
|
// start chat
|
||||||
gChatBar->startChat(NULL);
|
LLChatBar::startChat(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void start_gesture( EKeystate s )
|
void start_gesture( EKeystate s )
|
||||||
{
|
{
|
||||||
|
if (LLAppViewer::instance()->quitRequested())
|
||||||
|
{
|
||||||
|
return; // can't talk, gotta go, kthxbye!
|
||||||
|
}
|
||||||
|
|
||||||
LLUICtrl* focus_ctrlp = dynamic_cast<LLUICtrl*>(gFocusMgr.getKeyboardFocus());
|
LLUICtrl* focus_ctrlp = dynamic_cast<LLUICtrl*>(gFocusMgr.getKeyboardFocus());
|
||||||
if (KEYSTATE_UP == s &&
|
if (KEYSTATE_UP == s &&
|
||||||
! (focus_ctrlp && focus_ctrlp->acceptsTextInput()))
|
! (focus_ctrlp && focus_ctrlp->acceptsTextInput()))
|
||||||
{
|
{
|
||||||
if (gChatBar->getCurrentChat().empty())
|
if (gChatBar && gChatBar->getCurrentChat().empty())
|
||||||
{
|
{
|
||||||
// No existing chat in chat editor, insert '/'
|
// No existing chat in chat editor, insert '/'
|
||||||
gChatBar->startChat("/");
|
LLChatBar::startChat("/");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Don't overwrite existing text in chat editor
|
// Don't overwrite existing text in chat editor
|
||||||
gChatBar->startChat(NULL);
|
LLChatBar::startChat(NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2946,7 +2946,7 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)
|
|||||||
{
|
{
|
||||||
{
|
{
|
||||||
// passing NULL here, character will be added later when it is handled by character handler.
|
// passing NULL here, character will be added later when it is handled by character handler.
|
||||||
gChatBar->startChat(NULL);
|
LLChatBar::startChat(NULL);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3548,7 +3548,7 @@ void LLViewerWindow::updateLayout()
|
|||||||
&& gFocusMgr.getKeyboardFocus() == NULL
|
&& gFocusMgr.getKeyboardFocus() == NULL
|
||||||
&& gChatBar->isInVisibleChain())
|
&& gChatBar->isInVisibleChain())
|
||||||
{
|
{
|
||||||
gChatBar->startChat(NULL);
|
LLChatBar::startChat(NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user