RESOLVED FIXED 34282
Simplify anonymous slot implementation
https://bugs.webkit.org/show_bug.cgi?id=34282
Summary Simplify anonymous slot implementation
Oliver Hunt
Reported 2010-01-28 14:02:15 PST
Simplify anonymous slot implementation
Attachments
Patch (44.43 KB, patch)
2010-01-28 14:10 PST, Oliver Hunt
barraclough: review+
Oliver Hunt
Comment 1 2010-01-28 14:10:05 PST
Gavin Barraclough
Comment 2 2010-01-28 14:21:17 PST
Comment on attachment 47646 [details] Patch The hard coded ", 0" in JSCel / API wrappers is a little weird to me, I'd move AnonymousSlotCount up from JSValue personally. Your call. r+.
Darin Adler
Comment 3 2010-01-28 14:29:55 PST
Comment on attachment 47646 [details] Patch > PassRefPtr<Structure> JSByteArray::createStructure(JSValue prototype) > { > - PassRefPtr<Structure> result = Structure::create(prototype, TypeInfo(ObjectType, StructureFlags)); > + PassRefPtr<Structure> result = Structure::create(prototype, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount); > return result; > } Why the local variable? Normally we don't use PassRefPtr for local variables, and normally we wouldn't use a local variable at all for this case. > + static const unsigned AnonymousSlotCount = 0; > protected: It's dangerous to have something like this as a public data member. It gives the wrong value if you use it on a base class of an object of a derived class. Can we make it protected instead? Maybe we can name it InitialAnonymousSlotCount too. > Structure::~Structure() > { > if (m_previous) { > - if (m_nameInPrevious) > - m_previous->table.remove(make_pair(m_nameInPrevious.get(), m_attributesInPrevious), m_specificValueInPrevious); > - else > - m_previous->table.removeAnonymousSlotTransition(m_anonymousSlotsInPrevious); > + ASSERT(m_nameInPrevious); > + m_previous->table.remove(make_pair(m_nameInPrevious.get(), m_attributesInPrevious), m_specificValueInPrevious); > > } You should remove that extra blank line. r=me
Oliver Hunt
Comment 4 2010-01-28 14:51:18 PST
Adam Barth
Comment 5 2010-01-28 16:52:23 PST
This patch caused the qt-ews to continually fail to upload results to QueueStatusServer. Not sure why.
Note You need to log in before you can comment on or make changes to this bug.