Changeset 85253 in webkit


Ignore:
Timestamp:
Apr 28, 2011 4:04:45 PM (13 years ago)
Author:
levin@chromium.org
Message:

2011-04-28 Sheriff Bot <webkit.review.bot@gmail.com>

Unreviewed, rolling out r85233 and r85235.
http://trac.webkit.org/changeset/85233
http://trac.webkit.org/changeset/85235
https://bugs.webkit.org/show_bug.cgi?id=59754

Causes issues with jsc. (Requested by dave_levin on #webkit).

  • GNUmakefile.list.am:
  • JavaScriptCore.gypi:
  • JavaScriptCore.vcproj/WTF/WTF.vcproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • jit/ExecutableAllocator.h: (JSC::ExecutablePool::ExecutablePool):
  • parser/SourceProvider.h: (JSC::SourceProvider::SourceProvider):
  • runtime/RegExp.cpp: (JSC::RegExp::RegExp):
  • wtf/CMakeLists.txt:
  • wtf/RefCounted.h: (WTF::RefCountedBase::ref): (WTF::RefCountedBase::hasOneRef): (WTF::RefCountedBase::refCount): (WTF::RefCountedBase::derefBase):
  • wtf/SizeLimits.cpp:
  • wtf/ThreadRestrictionVerifier.h: Removed.
  • wtf/text/CString.h: (WTF::CStringBuffer::CStringBuffer):

2011-04-28 Sheriff Bot <webkit.review.bot@gmail.com>

Unreviewed, rolling out r85233 and r85235.
http://trac.webkit.org/changeset/85233
http://trac.webkit.org/changeset/85235
https://bugs.webkit.org/show_bug.cgi?id=59754

Causes issues with jsc. (Requested by dave_levin on #webkit).

  • ForwardingHeaders/wtf/ThreadRestrictionVerifier.h: Removed.

2011-04-28 Sheriff Bot <webkit.review.bot@gmail.com>

Unreviewed, rolling out r85233 and r85235.
http://trac.webkit.org/changeset/85233
http://trac.webkit.org/changeset/85235
https://bugs.webkit.org/show_bug.cgi?id=59754

Causes issues with jsc. (Requested by dave_levin on #webkit).

  • ForwardingHeaders/wtf/ThreadRestrictionVerifier.h: Removed.
  • loader/icon/IconDatabase.cpp: (WebCore::IconDatabase::defaultIcon): (WebCore::IconDatabase::setIconDataForIconURL): (WebCore::IconDatabase::getOrCreateIconRecord): (WebCore::IconDatabase::readFromDatabase):
Location:
trunk/Source
Files:
3 deleted
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r85249 r85253  
     12011-04-28  Sheriff Bot  <webkit.review.bot@gmail.com>
     2
     3        Unreviewed, rolling out r85233 and r85235.
     4        http://trac.webkit.org/changeset/85233
     5        http://trac.webkit.org/changeset/85235
     6        https://bugs.webkit.org/show_bug.cgi?id=59754
     7
     8        Causes issues with jsc. (Requested by dave_levin on #webkit).
     9
     10        * GNUmakefile.list.am:
     11        * JavaScriptCore.gypi:
     12        * JavaScriptCore.vcproj/WTF/WTF.vcproj:
     13        * JavaScriptCore.xcodeproj/project.pbxproj:
     14        * jit/ExecutableAllocator.h:
     15        (JSC::ExecutablePool::ExecutablePool):
     16        * parser/SourceProvider.h:
     17        (JSC::SourceProvider::SourceProvider):
     18        * runtime/RegExp.cpp:
     19        (JSC::RegExp::RegExp):
     20        * wtf/CMakeLists.txt:
     21        * wtf/RefCounted.h:
     22        (WTF::RefCountedBase::ref):
     23        (WTF::RefCountedBase::hasOneRef):
     24        (WTF::RefCountedBase::refCount):
     25        (WTF::RefCountedBase::derefBase):
     26        * wtf/SizeLimits.cpp:
     27        * wtf/ThreadRestrictionVerifier.h: Removed.
     28        * wtf/text/CString.h:
     29        (WTF::CStringBuffer::CStringBuffer):
     30
    1312011-04-28  Gavin Barraclough  <barraclough@apple.com>
    232
  • trunk/Source/JavaScriptCore/GNUmakefile.list.am

    r85233 r85253  
    531531        Source/JavaScriptCore/wtf/ThreadIdentifierDataPthreads.cpp \
    532532        Source/JavaScriptCore/wtf/ThreadIdentifierDataPthreads.h \
    533         Source/JavaScriptCore/wtf/ThreadRestrictionVerifier.h \
    534533        Source/JavaScriptCore/wtf/Threading.cpp \
    535534        Source/JavaScriptCore/wtf/Threading.h \
  • trunk/Source/JavaScriptCore/JavaScriptCore.gypi

    r85233 r85253  
    204204            'wtf/ThreadSafeRefCounted.h',
    205205            'wtf/ThreadSpecific.h',
    206             'wtf/ThreadRestrictionVerifier.h',
    207206            'wtf/Threading.h',
    208207            'wtf/ThreadingPrimitives.h',
  • trunk/Source/JavaScriptCore/JavaScriptCore.vcproj/WTF/WTF.vcproj

    r85233 r85253  
    10021002                </File>
    10031003                <File
    1004                         RelativePath="..\..\wtf\ThreadRestrictionVerifier.h"
    1005                         >
    1006                 </File>
    1007                 <File
    10081004                        RelativePath="..\..\wtf\ThreadSafeRefCounted.h"
    10091005                        >
  • trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj

    r85249 r85253  
    4545                0B330C270F38C62300692DE3 /* TypeTraits.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0B330C260F38C62300692DE3 /* TypeTraits.cpp */; };
    4646                0B4D7E630F319AC800AD7E58 /* TypeTraits.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B4D7E620F319AC800AD7E58 /* TypeTraits.h */; settings = {ATTRIBUTES = (Private, ); }; };
    47                 0BAC94A01338728400CF135B /* ThreadRestrictionVerifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BAC949E1338728400CF135B /* ThreadRestrictionVerifier.h */; settings = {ATTRIBUTES = (Private, ); }; };
    4847                0BDFFAE00FC6192900D69EF4 /* CrossThreadRefCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BDFFAD40FC6171000D69EF4 /* CrossThreadRefCounted.h */; settings = {ATTRIBUTES = (Private, ); }; };
    4948                0BDFFAE10FC6193100D69EF4 /* OwnFastMallocPtr.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BDFFAD10FC616EC00D69EF4 /* OwnFastMallocPtr.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    709708                0B330C260F38C62300692DE3 /* TypeTraits.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TypeTraits.cpp; sourceTree = "<group>"; };
    710709                0B4D7E620F319AC800AD7E58 /* TypeTraits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TypeTraits.h; sourceTree = "<group>"; };
    711                 0BAC949E1338728400CF135B /* ThreadRestrictionVerifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThreadRestrictionVerifier.h; sourceTree = "<group>"; };
    712710                0BDFFAD10FC616EC00D69EF4 /* OwnFastMallocPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OwnFastMallocPtr.h; sourceTree = "<group>"; };
    713711                0BDFFAD40FC6171000D69EF4 /* CrossThreadRefCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CrossThreadRefCounted.h; sourceTree = "<group>"; };
     
    16311629                                A1D764511354448B00C5C7C0 /* Alignment.h */,
    16321630                                A7C40C07130B057D00D002A1 /* BlockStack.h */,
     1631                                A7C40C08130B057D00D002A1 /* SentinelLinkedList.h */,
     1632                                A7C40C09130B057D00D002A1 /* SinglyLinkedList.h */,
    16331633                                5135FAD512D26856003C083B /* Decoder.h */,
    16341634                                5135FAD612D26856003C083B /* Encoder.h */,
     
    17281728                                76FB9F1012E851960051A2EB /* SHA1.cpp */,
    17291729                                76FB9F0E12E851860051A2EB /* SHA1.h */,
    1730                                 A7C40C08130B057D00D002A1 /* SentinelLinkedList.h */,
    1731                                 A7C40C09130B057D00D002A1 /* SinglyLinkedList.h */,
    17321730                                0BF28A2811A33DC300638F84 /* SizeLimits.cpp */,
    17331731                                86D87DA512BC4B14008E73A1 /* StackBounds.cpp */,
     
    17511749                                BC5F7BBD11823B590052C02C /* ThreadSafeRefCounted.h */,
    17521750                                E1B7C8BD0DA3A3360074B0DC /* ThreadSpecific.h */,
    1753                                 0BAC949E1338728400CF135B /* ThreadRestrictionVerifier.h */,
    17541751                                0B330C260F38C62300692DE3 /* TypeTraits.cpp */,
    17551752                                0B4D7E620F319AC800AD7E58 /* TypeTraits.h */,
     
    25372534                                BC18C4700E16F5CD00B34460 /* Threading.h in Headers */,
    25382535                                BC5F7BBF11823B590052C02C /* ThreadingPrimitives.h in Headers */,
    2539                                 0BAC94A01338728400CF135B /* ThreadRestrictionVerifier.h in Headers */,
    25402536                                BC5F7BC011823B590052C02C /* ThreadSafeRefCounted.h in Headers */,
    25412537                                BC18C4710E16F5CD00B34460 /* ThreadSpecific.h in Headers */,
  • trunk/Source/JavaScriptCore/jit/ExecutableAllocator.h

    r85233 r85253  
    351351        CRASH(); // Failed to allocate
    352352    m_end = m_freePtr + allocSize;
    353     deprecatedTurnOffVerifier();
    354353}
    355354
  • trunk/Source/JavaScriptCore/parser/SourceProvider.h

    r85233 r85253  
    4747            , m_cacheOwned(!cache)
    4848        {
    49             deprecatedTurnOffVerifier();
    5049        }
    5150        virtual ~SourceProvider()
  • trunk/Source/JavaScriptCore/runtime/RegExp.cpp

    r85233 r85253  
    8686{
    8787    m_state = compile(globalData);
    88     deprecatedTurnOffVerifier();
    8988}
    9089
  • trunk/Source/JavaScriptCore/wtf/CMakeLists.txt

    r85233 r85253  
    4343    MessageQueue.h
    4444    NonCopyingSort.h
    45     ThreadRestrictionVerifier.h
    4645    Noncopyable.h
    4746    NotFound.h
  • trunk/Source/JavaScriptCore/wtf/RefCounted.h

    r85235 r85253  
    2424#include "Assertions.h"
    2525#include "FastAllocBase.h"
    26 #include "ThreadRestrictionVerifier.h"
    2726#include "Noncopyable.h"
    28 #include "OwnPtr.h"
    29 #include "UnusedParam.h"
    3027
    3128namespace WTF {
     
    3835    void ref()
    3936    {
    40 #ifndef NDEBUG
    41         // Start thread verification as soon as the ref count gets to 2. This
    42         // heuristic reflects the fact that items are often created on one thread
    43         // and then given to another thread to be used.
    44         // FIXME: Make this restriction tigher. Especially as we move to more
    45         // common methods for sharing items across threads like CrossThreadCopier.h
    46         // We should be able to add a "detachFromThread" method to make this explicit.
    47         if (m_refCount == 1)
    48             m_verifier.setShared(true);
    49 #endif
    50         // If this assert fires, it either indicates a thread safety issue or
    51         // that the verification needs to change. See ThreadRestrictionVerifier for
    52         // the different modes.
    53         ASSERT(m_verifier.isSafeToUse());
    5437        ASSERT(!m_deletionHasBegun);
    5538        ASSERT(!m_adoptionIsRequired);
     
    5942    bool hasOneRef() const
    6043    {
    61         ASSERT(m_verifier.isSafeToUse());
    6244        ASSERT(!m_deletionHasBegun);
    6345        return m_refCount == 1;
     
    6648    int refCount() const
    6749    {
    68         ASSERT(m_verifier.isSafeToUse());
    6950        return m_refCount;
    70     }
    71 
    72     void setMutexForVerifier(Mutex&);
    73 
    74     // Turns off verification. Use of this method is discouraged (instead extend
    75     // ThreadRestrictionVerifier to verify your case).
    76     // FIXME: remove this method.
    77     void deprecatedTurnOffVerifier()
    78     {
    79 #ifndef NDEBUG
    80         m_verifier.turnOffVerification();
    81 #endif
    8251    }
    8352
     
    11685    bool derefBase()
    11786    {
    118         ASSERT(m_verifier.isSafeToUse());
    11987        ASSERT(!m_deletionHasBegun);
    12088        ASSERT(!m_adoptionIsRequired);
     
    12997
    13098        --m_refCount;
    131 #ifndef NDEBUG
    132         // Stop thread verification when the ref goes to 1 because it
    133         // is safe to be passed to another thread at this point.
    134         if (m_refCount == 1)
    135             m_verifier.setShared(false);
    136 #endif
    13799        return false;
    138100    }
     
    156118    bool m_deletionHasBegun;
    157119    bool m_adoptionIsRequired;
    158     ThreadRestrictionVerifier m_verifier;
    159120#endif
    160121};
     
    204165};
    205166
    206 #ifdef NDEBUG
    207 inline void RefCountedBase::setMutexForVerifier(Mutex&) { }
    208 #else
    209 inline void RefCountedBase::setMutexForVerifier(Mutex& mutex)
    210 {
    211     m_verifier.setMutexMode(mutex);
    212 }
    213 #endif
    214 
    215167} // namespace WTF
    216168
  • trunk/Source/JavaScriptCore/wtf/SizeLimits.cpp

    r85233 r85253  
    3737#include <wtf/RefCounted.h>
    3838#include <wtf/RefPtr.h>
    39 #include <wtf/ThreadRestrictionVerifier.h>
    4039#include <wtf/Vector.h>
    4140
     
    4342
    4443#ifndef NDEBUG
    45 struct SameSizeAsRefCounted {
    46     int a;
    47     bool b;
    48     bool c;
    49     ThreadRestrictionVerifier d;
    50     // The debug version may get bigger.
    51 };
     44struct StructWithIntAndTwoBools { int a; bool b; bool c; };
     45static const size_t refCountedExtraDebugSize = sizeof(StructWithIntAndTwoBools) - sizeof(int);
    5246#else
    53 struct SameSizeAsRefCounted {
    54     int a;
    55     // Don't add anything here because this should stay small.
    56 };
     47static const size_t refCountedExtraDebugSize = 0;
    5748#endif
    5849
    5950COMPILE_ASSERT(sizeof(OwnPtr<int>) == sizeof(int*), OwnPtr_should_stay_small);
    6051COMPILE_ASSERT(sizeof(PassRefPtr<RefCounted<int> >) == sizeof(int*), PassRefPtr_should_stay_small);
    61 COMPILE_ASSERT(sizeof(RefCounted<int>) == sizeof(SameSizeAsRefCounted), RefCounted_should_stay_small);
    62 COMPILE_ASSERT(sizeof(RefCountedCustomAllocated<int>) == sizeof(SameSizeAsRefCounted), RefCountedCustomAllocated_should_stay_small);
     52COMPILE_ASSERT(sizeof(RefCounted<int>) == sizeof(int) + refCountedExtraDebugSize, RefCounted_should_stay_small);
     53COMPILE_ASSERT(sizeof(RefCountedCustomAllocated<int>) == sizeof(int) + refCountedExtraDebugSize, RefCountedCustomAllocated_should_stay_small);
    6354COMPILE_ASSERT(sizeof(RefPtr<RefCounted<int> >) == sizeof(int*), RefPtr_should_stay_small);
    6455COMPILE_ASSERT(sizeof(Vector<int>) == 3 * sizeof(int*), Vector_should_stay_small);
  • trunk/Source/JavaScriptCore/wtf/text/CString.h

    r85233 r85253  
    4242
    4343    static PassRefPtr<CStringBuffer> create(size_t length) { return adoptRef(new CStringBuffer(length)); }
    44     CStringBuffer(size_t length) : m_vector(length) { deprecatedTurnOffVerifier(); }
     44    CStringBuffer(size_t length) : m_vector(length) { }
    4545    char* mutableData() { return m_vector.data(); }
    4646
  • trunk/Source/JavaScriptGlue/ChangeLog

    r85233 r85253  
     12011-04-28  Sheriff Bot  <webkit.review.bot@gmail.com>
     2
     3        Unreviewed, rolling out r85233 and r85235.
     4        http://trac.webkit.org/changeset/85233
     5        http://trac.webkit.org/changeset/85235
     6        https://bugs.webkit.org/show_bug.cgi?id=59754
     7
     8        Causes issues with jsc. (Requested by dave_levin on #webkit).
     9
     10        * ForwardingHeaders/wtf/ThreadRestrictionVerifier.h: Removed.
     11
    1122011-04-04  David Levin  <levin@chromium.org>
    213
  • trunk/Source/WebCore/ChangeLog

    r85244 r85253  
     12011-04-28  Sheriff Bot  <webkit.review.bot@gmail.com>
     2
     3        Unreviewed, rolling out r85233 and r85235.
     4        http://trac.webkit.org/changeset/85233
     5        http://trac.webkit.org/changeset/85235
     6        https://bugs.webkit.org/show_bug.cgi?id=59754
     7
     8        Causes issues with jsc. (Requested by dave_levin on #webkit).
     9
     10        * ForwardingHeaders/wtf/ThreadRestrictionVerifier.h: Removed.
     11        * loader/icon/IconDatabase.cpp:
     12        (WebCore::IconDatabase::defaultIcon):
     13        (WebCore::IconDatabase::setIconDataForIconURL):
     14        (WebCore::IconDatabase::getOrCreateIconRecord):
     15        (WebCore::IconDatabase::readFromDatabase):
     16
    1172011-04-28  Jay Civelli  <jcivelli@chromium.org>
    218
  • trunk/Source/WebCore/loader/icon/IconDatabase.cpp

    r85233 r85253  
    388388    if (!m_defaultIconRecord) {
    389389        m_defaultIconRecord = IconRecord::create("urlIcon");
    390         m_defaultIconRecord->setMutexForVerifier(m_urlAndIconLock);
    391390        loadDefaultIconRecord(m_defaultIconRecord.get());
    392391    }
     
    519518   
    520519    RefPtr<SharedBuffer> data = dataOriginal ? dataOriginal->copy() : PassRefPtr<SharedBuffer>(0);
    521     if (data)
    522         data->setMutexForVerifier(m_urlAndIconLock);
    523520    String iconURL = iconURLOriginal.crossThreadString();
    524521   
     
    882879
    883880    RefPtr<IconRecord> newIcon = IconRecord::create(iconURL);
    884     newIcon->setMutexForVerifier(m_urlAndIconLock);
    885881    m_iconURLToRecordMap.set(iconURL, newIcon.get());
    886882
     
    14841480        didAnyWork = true;
    14851481        RefPtr<SharedBuffer> imageData = getImageDataForIconURLFromSQLDatabase(icons[i]->iconURL());
    1486         imageData->setMutexForVerifier(m_urlAndIconLock);
    14871482
    14881483        // Verify this icon still wants to be read from disk
Note: See TracChangeset for help on using the changeset viewer.