mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-05 15:28:39 +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
|
|
@ -331,7 +331,7 @@ nsFloatManager::GetRegionFor(WritingMode aWM, nsIFrame* aFloat,
|
|||
const nsSize& aContainerSize)
|
||||
{
|
||||
LogicalRect region = aFloat->GetLogicalRect(aWM, aContainerSize);
|
||||
void* storedRegion = aFloat->Properties().Get(FloatRegionProperty());
|
||||
void* storedRegion = aFloat->GetProperty(FloatRegionProperty());
|
||||
if (storedRegion) {
|
||||
nsMargin margin = *static_cast<nsMargin*>(storedRegion);
|
||||
region.Inflate(aWM, LogicalMargin(aWM, margin));
|
||||
|
|
@ -346,15 +346,14 @@ nsFloatManager::StoreRegionFor(WritingMode aWM, nsIFrame* aFloat,
|
|||
{
|
||||
nsRect region = aRegion.GetPhysicalRect(aWM, aContainerSize);
|
||||
nsRect rect = aFloat->GetRect();
|
||||
FrameProperties props = aFloat->Properties();
|
||||
if (region.IsEqualEdges(rect)) {
|
||||
props.Delete(FloatRegionProperty());
|
||||
aFloat->DeleteProperty(FloatRegionProperty());
|
||||
}
|
||||
else {
|
||||
nsMargin* storedMargin = props.Get(FloatRegionProperty());
|
||||
nsMargin* storedMargin = aFloat->GetProperty(FloatRegionProperty());
|
||||
if (!storedMargin) {
|
||||
storedMargin = new nsMargin();
|
||||
props.Set(FloatRegionProperty(), storedMargin);
|
||||
aFloat->SetProperty(FloatRegionProperty(), storedMargin);
|
||||
}
|
||||
*storedMargin = region - rect;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue