consolidated most indra-specific constants in llcommon under indra_constants.h
fixed issues with operations on mixed unit types (implicit and explicit)
made LL_INFOS() style macros variadic in order to subsume other logging methods
such as ll_infos
added optional tag output to error recorders
Observations and broken stuff so far:
- LLSideTray is gone.
- LLBottomTray is gone.
- LLFloaterSnapshot was changed and gave lots of merge conflicts. Flickr upload will be broken.
- LLNearbyChat is derived from LLPanel now. That broke quite some stuff rearding autohiding and docking of chatbar.
- Profile floaters are gone and all web based now.
- Russian translation gave huge mere conflicts with the new russian xml files from LL. Unmergeable. I took the LL files.
- XUI files in general will need some love and testing.
- Added xml for a new floater and registred it in the floaterreg
- Removed side tray dependencies
- Added static helper method: LLFloaterSidePanelContainer::showPanel
There are two reasons of the crash reported in the bug:
* absence of the "CopyInventoryFromNotecard" capability in region (which leads to crash while logging of a LL_ERRS)
* referencing to an invalid pointer to LLInventoryItem in callback.
The first issue is fixed by preventing sending of the "CopyInventoryFromNotecard" message if it is not supported
(in the "copy_inventory_from_notecard()")
The second issue caused by such reason:
* Notecard stores LLPointer to each embedded inventory item
* When Landmark is clicked it should be opened in Places Panel and inventory item should copied into agent inventory
* If it is unknown to agent it is requested and pointer (but not LLPointer!) to inventory item was bound to an appropriate callback
* Then when landmark is loaded that inventory item is copied to inventory.
* If notecard was closed before callback was trigged all instances to embedded inventory items were destroyed.
This leads to crash when trigged callback tries to reference to bound pointer to inventory item (for landmarks)
Fix is to pass LLPointer instead of pointer to inventory item into callback to ensure item is valid when it is needed.
Details:
* updated LLEmbeddedItems::getEmbeddedItem() to return LLPointer to inventory item (and renamed to getEmbeddedItemPtr)
* updated LLViewerTextEditor::openEmbeddedItem() to get LLPointer to inventory item
* updated LLViewerTextEditor::openEmbeddedLandmark() to get LLPointer to inventory item
Patch also contains some more places where pointer is replaced with LLPointer to be consistent.
NOTE: there are several LLViewerTextEditor::openEmbeddedXXX() methods which still get pointer to inventory item.
It is safe for now because they use it synchronously. I have added a note at their declaration.
Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/784/
--HG--
branch : product-engine
Took out enums and flags from LLInventory into LLInventoryDefines
Did a bunch of header file reformatting for LLInventory.h
Change made to simulator files as well.
Added new icon for multi-objects.
New icon is used in inventory, object inventory and buy floater.
New icon can not be used in Group Notices because server does not send enough info in GroupNoticesListReply.
--HG--
branch : product-engine