mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-06 07:48:38 +09:00
Attach FrameProperties to each frame instead of using a shared hashtable
Dispense the shared hashtable and instead attach the frame property list directly to nsIFrame.
This commit is contained in:
parent
c135831979
commit
922e819d1c
62 changed files with 738 additions and 945 deletions
|
|
@ -165,10 +165,10 @@ FrameLayerBuilder::DisplayItemData::AddFrame(nsIFrame* aFrame)
|
|||
mFrameList.AppendElement(aFrame);
|
||||
|
||||
nsTArray<DisplayItemData*>* array =
|
||||
aFrame->Properties().Get(FrameLayerBuilder::LayerManagerDataProperty());
|
||||
aFrame->GetProperty(FrameLayerBuilder::LayerManagerDataProperty());
|
||||
if (!array) {
|
||||
array = new nsTArray<DisplayItemData*>();
|
||||
aFrame->Properties().Set(FrameLayerBuilder::LayerManagerDataProperty(), array);
|
||||
aFrame->SetProperty(FrameLayerBuilder::LayerManagerDataProperty(), array);
|
||||
}
|
||||
array->AppendElement(this);
|
||||
}
|
||||
|
|
@ -181,7 +181,7 @@ FrameLayerBuilder::DisplayItemData::RemoveFrame(nsIFrame* aFrame)
|
|||
MOZ_RELEASE_ASSERT(result, "Can't remove a frame that wasn't added!");
|
||||
|
||||
nsTArray<DisplayItemData*>* array =
|
||||
aFrame->Properties().Get(FrameLayerBuilder::LayerManagerDataProperty());
|
||||
aFrame->GetProperty(FrameLayerBuilder::LayerManagerDataProperty());
|
||||
MOZ_RELEASE_ASSERT(array, "Must be already stored on the frame!");
|
||||
array->RemoveElement(this);
|
||||
}
|
||||
|
|
@ -268,7 +268,7 @@ FrameLayerBuilder::DisplayItemData::~DisplayItemData()
|
|||
continue;
|
||||
}
|
||||
nsTArray<DisplayItemData*> *array =
|
||||
reinterpret_cast<nsTArray<DisplayItemData*>*>(frame->Properties().Get(LayerManagerDataProperty()));
|
||||
reinterpret_cast<nsTArray<DisplayItemData*>*>(frame->GetProperty(LayerManagerDataProperty()));
|
||||
array->RemoveElement(this);
|
||||
}
|
||||
|
||||
|
|
@ -390,8 +390,7 @@ public:
|
|||
/* static */ void
|
||||
FrameLayerBuilder::DestroyDisplayItemDataFor(nsIFrame* aFrame)
|
||||
{
|
||||
FrameProperties props = aFrame->Properties();
|
||||
props.Delete(LayerManagerDataProperty());
|
||||
aFrame->DeleteProperty(LayerManagerDataProperty());
|
||||
}
|
||||
|
||||
struct AssignedDisplayItem
|
||||
|
|
@ -1823,7 +1822,7 @@ FrameLayerBuilder::DisplayItemData*
|
|||
FrameLayerBuilder::GetDisplayItemData(nsIFrame* aFrame, uint32_t aKey)
|
||||
{
|
||||
const nsTArray<DisplayItemData*>* array =
|
||||
aFrame->Properties().Get(LayerManagerDataProperty());
|
||||
aFrame->GetProperty(LayerManagerDataProperty());
|
||||
if (array) {
|
||||
for (uint32_t i = 0; i < array->Length(); i++) {
|
||||
DisplayItemData* item = AssertDisplayItemData(array->ElementAt(i));
|
||||
|
|
@ -2052,7 +2051,7 @@ FrameLayerBuilder::GetDisplayItemDataForManager(nsDisplayItem* aItem,
|
|||
LayerManager* aManager)
|
||||
{
|
||||
const nsTArray<DisplayItemData*>* array =
|
||||
aItem->Frame()->Properties().Get(LayerManagerDataProperty());
|
||||
aItem->Frame()->GetProperty(LayerManagerDataProperty());
|
||||
if (array) {
|
||||
for (uint32_t i = 0; i < array->Length(); i++) {
|
||||
DisplayItemData* item = AssertDisplayItemData(array->ElementAt(i));
|
||||
|
|
@ -2069,7 +2068,7 @@ bool
|
|||
FrameLayerBuilder::HasRetainedDataFor(nsIFrame* aFrame, uint32_t aDisplayItemKey)
|
||||
{
|
||||
const nsTArray<DisplayItemData*>* array =
|
||||
aFrame->Properties().Get(LayerManagerDataProperty());
|
||||
aFrame->GetProperty(LayerManagerDataProperty());
|
||||
if (array) {
|
||||
for (uint32_t i = 0; i < array->Length(); i++) {
|
||||
if (AssertDisplayItemData(array->ElementAt(i))->mDisplayItemKey == aDisplayItemKey) {
|
||||
|
|
@ -2084,7 +2083,7 @@ void
|
|||
FrameLayerBuilder::IterateRetainedDataFor(nsIFrame* aFrame, DisplayItemDataCallback aCallback)
|
||||
{
|
||||
const nsTArray<DisplayItemData*>* array =
|
||||
aFrame->Properties().Get(LayerManagerDataProperty());
|
||||
aFrame->GetProperty(LayerManagerDataProperty());
|
||||
if (!array) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -2151,7 +2150,7 @@ FrameLayerBuilder::ClearCachedGeometry(nsDisplayItem* aItem)
|
|||
FrameLayerBuilder::GetDebugOldLayerFor(nsIFrame* aFrame, uint32_t aDisplayItemKey)
|
||||
{
|
||||
const nsTArray<DisplayItemData*>* array =
|
||||
aFrame->Properties().Get(LayerManagerDataProperty());
|
||||
aFrame->GetProperty(LayerManagerDataProperty());
|
||||
|
||||
if (!array) {
|
||||
return nullptr;
|
||||
|
|
@ -2171,7 +2170,7 @@ FrameLayerBuilder::GetDebugOldLayerFor(nsIFrame* aFrame, uint32_t aDisplayItemKe
|
|||
FrameLayerBuilder::GetDebugSingleOldPaintedLayerForFrame(nsIFrame* aFrame)
|
||||
{
|
||||
const nsTArray<DisplayItemData*>* array =
|
||||
aFrame->Properties().Get(LayerManagerDataProperty());
|
||||
aFrame->GetProperty(LayerManagerDataProperty());
|
||||
|
||||
if (!array) {
|
||||
return nullptr;
|
||||
|
|
@ -5656,7 +5655,7 @@ FrameLayerBuilder::InvalidateAllLayers(LayerManager* aManager)
|
|||
FrameLayerBuilder::InvalidateAllLayersForFrame(nsIFrame *aFrame)
|
||||
{
|
||||
const nsTArray<DisplayItemData*>* array =
|
||||
aFrame->Properties().Get(LayerManagerDataProperty());
|
||||
aFrame->GetProperty(LayerManagerDataProperty());
|
||||
if (array) {
|
||||
for (uint32_t i = 0; i < array->Length(); i++) {
|
||||
AssertDisplayItemData(array->ElementAt(i))->mParent->mInvalidateAllLayers = true;
|
||||
|
|
@ -5673,7 +5672,7 @@ FrameLayerBuilder::GetDedicatedLayer(nsIFrame* aFrame, uint32_t aDisplayItemKey)
|
|||
// in the secondary manager
|
||||
|
||||
const nsTArray<DisplayItemData*>* array =
|
||||
aFrame->Properties().Get(LayerManagerDataProperty());
|
||||
aFrame->GetProperty(LayerManagerDataProperty());
|
||||
if (array) {
|
||||
for (uint32_t i = 0; i < array->Length(); i++) {
|
||||
DisplayItemData *element = AssertDisplayItemData(array->ElementAt(i));
|
||||
|
|
@ -5729,7 +5728,7 @@ FrameLayerBuilder::GetPaintedLayerScaleForFrame(nsIFrame* aFrame)
|
|||
}
|
||||
|
||||
const nsTArray<DisplayItemData*>* array =
|
||||
f->Properties().Get(LayerManagerDataProperty());
|
||||
f->GetProperty(LayerManagerDataProperty());
|
||||
if (!array) {
|
||||
continue;
|
||||
}
|
||||
|
|
@ -6165,9 +6164,8 @@ FrameLayerBuilder::GetMostRecentGeometry(nsDisplayItem* aItem)
|
|||
typedef nsTArray<DisplayItemData*> DataArray;
|
||||
|
||||
// Retrieve the array of DisplayItemData associated with our frame.
|
||||
FrameProperties properties = aItem->Frame()->Properties();
|
||||
const DataArray* dataArray =
|
||||
properties.Get(LayerManagerDataProperty());
|
||||
aItem->Frame()->GetProperty(LayerManagerDataProperty());
|
||||
if (!dataArray) {
|
||||
return nullptr;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue