Canonicalize detach crash fix to RLVa

This commit is contained in:
Siana Gearz
2013-05-26 15:56:22 +02:00
parent 89e7decc12
commit c61415d785
2 changed files with 12 additions and 9 deletions

View File

@@ -3921,14 +3921,13 @@ void LLAppearanceMgr::removeItemsFromAvatar(const uuid_vec_t& ids_to_remove)
bool fUpdateAppearance = false;
for (uuid_vec_t::const_iterator it = ids_to_remove.begin(); it != ids_to_remove.end(); ++it)
{
const LLInventoryItem* linked_item = gInventory.getLinkedItem(*it);
if ( linked_item && (rlv_handler_t::isEnabled()) && (!rlvPredCanRemoveItem(linked_item)) )
const LLUUID& linked_item_id = gInventory.getLinkedItemID(*it);
if ( (rlv_handler_t::isEnabled()) && (!rlvPredCanRemoveItem(gInventory.getItem(linked_item_id))) )
{
continue;
}
fUpdateAppearance = true;
const LLUUID& linked_item_id = gInventory.getLinkedItemID(*it);
removeCOFItemLinks(linked_item_id);
}
@@ -3949,13 +3948,12 @@ void LLAppearanceMgr::removeItemsFromAvatar(const uuid_vec_t& ids_to_remove)
void LLAppearanceMgr::removeItemFromAvatar(const LLUUID& id_to_remove)
{
// [RLVa:KB] - Checked: 2013-02-12 (RLVa-1.4.8)
const LLInventoryItem* linked_item = gInventory.getLinkedItem(id_to_remove);
if ( linked_item && (rlv_handler_t::isEnabled()) && (!rlvPredCanRemoveItem(linked_item)) )
LLUUID linked_item_id = gInventory.getLinkedItemID(id_to_remove);
if ( (rlv_handler_t::isEnabled()) && (!rlvPredCanRemoveItem(gInventory.getItem(linked_item_id))) )
{
return;
}
// [/RLVA:KB]
LLUUID linked_item_id = gInventory.getLinkedItemID(id_to_remove);
removeCOFItemLinks(linked_item_id);
updateAppearanceFromCOF();
}

View File

@@ -153,10 +153,13 @@ void RlvSettings::initClass()
}
#endif // RLV_EXTENSION_STARTLOCATION
// Checked: 2010-10-11 (RLVa-1.2.0e) | Added: RLVa-1.2.0e
// Checked: 2013-04-17 (RLVa-1.4.8)
bool RlvSettings::onChangedAvatarOffset(const LLSD& sdValue)
{
gAgent.sendAgentSetAppearance();
if ( (isAgentAvatarValid()) && (!gAgentAvatarp->isUsingServerBakes()) )
{
gAgentAvatarp->computeBodySize();
}
return true;
}
// Checked: 2011-08-16 (RLVa-1.4.0b) | Added: RLVa-1.4.0b
@@ -704,7 +707,9 @@ bool rlvPredCanRemoveItem(const LLInventoryItem* pItem)
RLV_ASSERT(false);
}
}
return false;
// HACK-RLVa: Until LL supports temporary attachment detection assume that no inventory item means a temporary
// attachment which are always removeable
return true;
}
// Checked: 2010-03-22 (RLVa-1.2.0c) | Added: RLVa-1.2.0a