Ignore:
Timestamp:
Jun 30, 2008, 8:58:27 AM (17 years ago)
Author:
Adam Roben
Message:

Fix <rdar://5954749> Assertion failure due to HashTable's use of operator&

JavaScriptCore:

Fix <rdar://5954749> Assertion failure due to HashTable's use of
operator&

HashTable was passing &value to constructDeletedValue, which in
classes like WebCore::COMPtr would cause an assertion. We now pass
value by reference instead of by address so that the HashTraits
implementations have more flexibility in constructing the deleted
value.

Reviewed by Ada Chan.

  • VM/CodeGenerator.h: Updated for changes to HashTraits.
  • wtf/HashTable.h: (WTF::::deleteBucket): Changed to pass bucket by reference instead of by address. (WTF::::checkKey): Ditto.
  • wtf/HashTraits.h: (WTF::): Updated HashTraits for HashTable change.

WebCore:

Fix <rdar://5954749> Assertion failure due to HashTable's use of
operator&

Reviewed by Ada Chan.

  • bindings/js/JSSVGPODTypeWrapper.h:
  • dom/Document.h:
  • dom/StyledElement.cpp:
  • platform/graphics/FontCache.cpp:
  • platform/graphics/IntSizeHash.h: (WTF::):
  • platform/text/StringHash.h:
  • platform/win/COMPtr.h:
  • svg/SVGAnimatedTemplate.h: Updated all custom HashTraits for HashTable changes.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/VM/CodeGenerator.h

    r34852 r34891  
    296296        PassRefPtr<LabelID> emitComplexJumpScopes(LabelID* target, ControlFlowContext* topScope, ControlFlowContext* bottomScope);
    297297        struct JSValueHashTraits : HashTraits<JSValue*> {
    298             static void constructDeletedValue(JSValue** slot) { *slot = JSImmediate::impossibleValue(); }
     298            static void constructDeletedValue(JSValue*& slot) { slot = JSImmediate::impossibleValue(); }
    299299            static bool isDeletedValue(JSValue* value) { return value == JSImmediate::impossibleValue(); }
    300300        };
Note: See TracChangeset for help on using the changeset viewer.