⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 242391 in webkit


Ignore:
Timestamp:
Mar 4, 2019, 2:00:28 PM (7 years ago)
Author:
rniwa@webkit.org
Message:

gPictureOwnerMap is unnecessary
https://bugs.webkit.org/show_bug.cgi?id=195228

Reviewed by Zalan Bujtas.

Just store in HTMLImageElement. An extra pointer isn't going to affect the memory use here.
If anything, we should worry about m_editableImage and m_pendingClonedAttachmentID instead.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::pictureElement const):
(WebCore::HTMLImageElement::setPictureElement):

  • html/HTMLImageElement.h:
Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r242389 r242391  
     12019-03-01  Ryosuke Niwa  <rniwa@webkit.org>
     2
     3        gPictureOwnerMap is unnecessary
     4        https://bugs.webkit.org/show_bug.cgi?id=195228
     5
     6        Reviewed by Zalan Bujtas.
     7
     8        Just store in HTMLImageElement. An extra pointer isn't going to affect the memory use here.
     9        If anything, we should worry about m_editableImage and m_pendingClonedAttachmentID instead.
     10
     11        * html/HTMLImageElement.cpp:
     12        (WebCore::HTMLImageElement::pictureElement const):
     13        (WebCore::HTMLImageElement::setPictureElement):
     14        * html/HTMLImageElement.h:
     15
    1162019-03-04  Daniel Bates  <dabates@apple.com>
    217
  • trunk/Source/WebCore/html/HTMLImageElement.cpp

    r239952 r242391  
    6868using namespace HTMLNames;
    6969
    70 typedef HashMap<const HTMLImageElement*, WeakPtr<HTMLPictureElement>> PictureOwnerMap;
    71 static PictureOwnerMap* gPictureOwnerMap = nullptr;
    72 
    7370HTMLImageElement::HTMLImageElement(const QualifiedName& tagName, Document& document, HTMLFormElement* form)
    7471    : HTMLElement(tagName, document)
     
    455452HTMLPictureElement* HTMLImageElement::pictureElement() const
    456453{
    457     if (!gPictureOwnerMap || !gPictureOwnerMap->contains(this))
    458         return nullptr;
    459     auto result = gPictureOwnerMap->get(this);
    460     if (!result)
    461         gPictureOwnerMap->remove(this);
    462     return result.get();
     454    return m_pictureElement.get();
    463455}
    464456   
    465457void HTMLImageElement::setPictureElement(HTMLPictureElement* pictureElement)
    466458{
    467     if (!pictureElement) {
    468         if (gPictureOwnerMap)
    469             gPictureOwnerMap->remove(this);
    470         return;
    471     }
    472    
    473     if (!gPictureOwnerMap)
    474         gPictureOwnerMap = new PictureOwnerMap();
    475     gPictureOwnerMap->add(this, makeWeakPtr(*pictureElement));
     459    m_pictureElement = makeWeakPtr(pictureElement);
    476460}
    477461   
  • trunk/Source/WebCore/html/HTMLImageElement.h

    r239756 r242391  
    186186
    187187    RefPtr<EditableImageReference> m_editableImage;
     188    WeakPtr<HTMLPictureElement> m_pictureElement;
     189
    188190#if ENABLE(ATTACHMENT_ELEMENT)
    189191    String m_pendingClonedAttachmentID;
Note: See TracChangeset for help on using the changeset viewer.