1. 18 Mar, 2007 2 commits
  2. 17 Mar, 2007 1 commit
    • thatcher's avatar
      JavaScriptCore: · e8882bef
      thatcher authored
              Reviewed by Mark Rowe.
      
              Made Version.xcconfig smarter when building for different configurations.
              Now uses the 522+ OpenSource version for Debug and Release, while using the
              full 522.4 version for Production builds. The system prefix is also computed
              based on the current system, so 4522.4 on Tiger and 5522.4 on Leopard.
      
              * Configurations/JavaScriptCore.xcconfig:
              * Configurations/Version.xcconfig:
      
      JavaScriptGlue:
      
              Reviewed by Mark Rowe.
      
              Made Version.xcconfig smarter when building for different configurations.
              Now uses the 522+ OpenSource version for Debug and Release, while using the    
              full 522.4 version for Production builds. The system prefix is also computed
              based on the current system, so 4522.4 on Tiger and 5522.4 on Leopard.
      
              * Configurations/JavaScriptGlue.xcconfig:
              * Configurations/Version.xcconfig:
      
      WebCore:
      
              Reviewed by Mark Rowe.
      
              Made Version.xcconfig smarter when building for different configurations.
              Now uses the 522+ OpenSource version for Debug and Release, while using the
              full 522.4 version for Production builds. The system prefix is also computed
              based on the current system, so 4522.4 on Tiger and 5522.4 on Leopard.
      
              * Configurations/Version.xcconfig:
              * Configurations/WebCore.xcconfig:
      
      WebKit:
      
              Reviewed by Mark Rowe.
      
              Made Version.xcconfig smarter when building for different configurations.
              Now uses the 522+ OpenSource version for Debug and Release, while using the
              full 522.4 version for Production builds. The system prefix is also computed
              based on the current system, so 4522.4 on Tiger and 5522.4 on Leopard.
      
              * Configurations/Version.xcconfig:
              * Configurations/WebKit.xcconfig:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20261 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e8882bef
  3. 16 Mar, 2007 1 commit
  4. 15 Mar, 2007 4 commits
    • mjs's avatar
      Not reviewed. · 01cbe0c4
      mjs authored
              
              - build fix
      
              * wtf/TCSystemAlloc.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20230 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      01cbe0c4
    • mjs's avatar
      JavaScriptCore: · dc3fe3ae
      mjs authored
              Reviewed by Geoff and Steve.
              
              - fix some portability issues with TCMalloc.
      
              * JavaScriptCore.vcproj/WTF/WTF.vcproj:
              * kjs/config.h:
              * wtf/FastMalloc.cpp:
              (WTF::SizeClass):
              (WTF::InitSizeClasses):
              (WTF::TCMalloc_PageHeap::Split):
              (WTF::TCMalloc_PageHeap::RegisterSizeClass):
              (WTF::TCMalloc_Central_FreeList::length):
              (WTF::TCMalloc_ThreadCache::InitTSD):
              (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
              * wtf/TCSpinLock.h:
              * wtf/TCSystemAlloc.cpp:
              (TryVirtualAlloc):
              (TCMalloc_SystemAlloc):
      
      WebCore:
      
              Reviewed by Geoff and Steve.
      
              * config.h: Remove unneeded hack.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20229 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dc3fe3ae
    • thatcher's avatar
      JavaScriptCore: · 04880a02
      thatcher authored
              Reviewed by John.
      
              * Factored out most of our common build settings into .xcconfig files. Anything that was common in
                each build configuration was factored out into the shared .xcconfig file.
              * Adds a Version.xcconfig file to define the current framework version, to be used in other places.
              * Use the new $(BUNDLE_VERSION) (defined in Version.xcconfig) in the preprocessed Info.plist.
              * Use the versions defined in Version.xcconfig to set $(DYLIB_CURRENT_VERSION).
      
              * Configurations/Base.xcconfig: Added.
              * Configurations/DebugRelease.xcconfig: Added.
              * Configurations/JavaScriptCore.xcconfig: Added.
              * Configurations/Version.xcconfig: Added.
              * Info.plist:
              * JavaScriptCore.xcodeproj/project.pbxproj:
      
      JavaScriptGlue:
      
              Reviewed by John.
      
              * Factored out most of our common build settings into .xcconfig files. Anything that was common in
                each build configuration was factored out into the shared .xcconfig file.
              * Adds a Version.xcconfig file to define the current framework version, to be used in other places.
              * Use the new $(BUNDLE_VERSION) (defined in Version.xcconfig) in the preprocessed Info.plist.
              * Use the versions defined in Version.xcconfig to set $(DYLIB_CURRENT_VERSION).
      
              * Configurations/Base.xcconfig: Added.
              * Configurations/DebugRelease.xcconfig: Added.
              * Configurations/JavaScriptGlue.xcconfig: Added.
              * Configurations/Version.xcconfig: Added.
              * Info.plist:
              * JavaScriptGlue.xcodeproj/project.pbxproj:
      
      WebCore:
      
              Reviewed by John.
      
              * Factored out most of our common build settings into .xcconfig files. Anything that was common in
                each build configuration was factored out into the shared .xcconfig file.
              * Adds a Version.xcconfig file to define the current framework version, to be used in other places.
              * Use the new $(BUNDLE_VERSION) (defined in Version.xcconfig) in the preprocessed Info.plist.
              * Use the versions defined in Version.xcconfig to set $(DYLIB_CURRENT_VERSION).
      
              * Configurations/Base.xcconfig: Added.
              * Configurations/DebugRelease.xcconfig: Added.
              * Configurations/Version.xcconfig: Added.
              * Configurations/WebCore.xcconfig: Added.
              * Info.plist:
              * WebCore.xcodeproj/project.pbxproj:
      
      WebKit:
      
              Reviewed by John.
      
              * Fixes: <rdar://problem/4927747> WebKit's Current Library Version number should match the Info.plist Version
              * Factored out most of our common build settings into .xcconfig files. Anything that was common in
                each build configuration was factored out into the shared .xcconfig file.
              * Adds a Version.xcconfig file to define the current framework version, to be used in other places.
              * Use the new $(BUNDLE_VERSION) (defined in Version.xcconfig) in the preprocessed Info.plist.
              * Use the versions defined in Version.xcconfig to set $(DYLIB_CURRENT_VERSION).
              * Make WebKit use the same warning flags as the other projects. This required two casts to be added to fix new warnings.
      
              * Configurations/Base.xcconfig: Added.
              * Configurations/DebugRelease.xcconfig: Added.
              * Configurations/Version.xcconfig: Added.
              * Configurations/WebKit.xcconfig: Added.
              * Info.plist:
              * Misc/WebKitVersionChecks.h:
              * Plugins/WebBaseNetscapePluginStream.m:
              (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]):
              * WebKit.xcodeproj/project.pbxproj:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20219 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      04880a02
    • bdash's avatar
      2007-03-16 Shrikant Gangoda <shrikant.gangoda@celunite.com> · 16e4c706
      bdash authored
              Gdk build fix.
      
              * kjs/DateMath.cpp:  gettimeofday comes from <sys/time.h> on Linux.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20213 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      16e4c706
  5. 14 Mar, 2007 3 commits
    • kmccullo's avatar
      Reviewed by . · eddb0571
      kmccullo authored
              - Fixed one more build breakage
      
              * kjs/date_object.cpp:
              (KJS::formatLocaleDate):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20205 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      eddb0571
    • kmccullo's avatar
      Reviewed by . · e4255dd9
      kmccullo authored
              - Fixed a build breakage.
      
              * kjs/DateMath.cpp:
              * kjs/date_object.cpp:
              (KJS::formatLocaleDate):
              (KJS::DateObjectImp::construct):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20204 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e4255dd9
    • kmccullo's avatar
      JavaScriptCore: · 014b4536
      kmccullo authored
              Reviewed by Geoff.
      
              - rdar://problem/5045720
              - DST changes in US affect JavaScript date calculations (12975)
              This fix was to ensure we properly test for the new changes to DST in the US.
              Also this fixes when we apply DST, now we correctly map most past years to current
              DST rules.  We still have a small issue with years before 1900 or after 2100.
              rdar://problem/5055038
      
              * kjs/DateMath.cpp: Fix DST to match spec better.
              (KJS::getCurrentUTCTime):
              (KJS::mimimumYearForDST):
              (KJS::maximumYearForDST):
              (KJS::equivalentYearForDST):
              (KJS::getDSTOffset):
              * kjs/DateMath.h: Consolodated common funtionality.
              * kjs/date_object.cpp: Consolodated common functionality.
              (KJS::formatLocaleDate):
              (KJS::DateObjectImp::construct):
              * tests/mozilla/ecma/jsref.js: Added functions for finding the correct days when DST starts and ends.
              * tests/mozilla/ecma/shell.js: Added back in the old DST functions for ease of merging with mozilla if needed.
              * tests/mozilla/ecma_2/jsref.js: Added functions for finding the correct days when DST starts and ends.
              * tests/mozilla/ecma_3/Date/shell.js: Added functions for finding the correct days when DST starts and ends.
              * tests/mozilla/expected.html: Updated to show all date tests passing.
      
      LayoutTests:
      
              Reviewed by Geoff.
      
              - rdar://problem/5045720
              - DST changes in US affect JavaScript date calculations (12975)
              Changed layout tests to properly check for the new changes to DST in the
              US. Also these now test that equivalent years return the same results for DST.
      
              * fast/js/date-DST-time-cusps-expected.txt:
              * fast/js/date-big-setdate-expected.txt:
              * fast/js/resources/date-DST-time-cusps.js:
              * fast/js/resources/date-big-setdate.js:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20203 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      014b4536
  6. 13 Mar, 2007 1 commit
  7. 12 Mar, 2007 3 commits
    • kmccullo's avatar
      Reviewed by . · 152ba453
      kmccullo authored
              - Actually update tests for new DST rules.
      
              * tests/mozilla/ecma/Date/15.9.3.1-1.js:
              * tests/mozilla/ecma/Date/15.9.3.1-2.js:
              * tests/mozilla/ecma/Date/15.9.3.1-3.js:
              * tests/mozilla/ecma/Date/15.9.3.1-4.js:
              * tests/mozilla/ecma/Date/15.9.3.1-5.js:
              * tests/mozilla/ecma/Date/15.9.3.2-1.js:
              * tests/mozilla/ecma/Date/15.9.3.2-2.js:
              * tests/mozilla/ecma/Date/15.9.3.2-3.js:
              * tests/mozilla/ecma/Date/15.9.3.2-4.js:
              * tests/mozilla/ecma/Date/15.9.3.2-5.js:
              * tests/mozilla/ecma/Date/15.9.3.8-1.js:
              * tests/mozilla/ecma/Date/15.9.3.8-2.js:
              * tests/mozilla/ecma/Date/15.9.3.8-3.js:
              * tests/mozilla/ecma/Date/15.9.3.8-4.js:
              * tests/mozilla/ecma/Date/15.9.3.8-5.js:
              * tests/mozilla/ecma/Date/15.9.5.10-1.js:
              * tests/mozilla/ecma/Date/15.9.5.10-10.js:
              * tests/mozilla/ecma/Date/15.9.5.10-11.js:
              * tests/mozilla/ecma/Date/15.9.5.10-12.js:
              * tests/mozilla/ecma/Date/15.9.5.10-13.js:
              * tests/mozilla/ecma/Date/15.9.5.10-2.js:
              * tests/mozilla/ecma/Date/15.9.5.10-3.js:
              * tests/mozilla/ecma/Date/15.9.5.10-4.js:
              * tests/mozilla/ecma/Date/15.9.5.10-5.js:
              * tests/mozilla/ecma/Date/15.9.5.10-6.js:
              * tests/mozilla/ecma/Date/15.9.5.10-7.js:
              * tests/mozilla/ecma/Date/15.9.5.10-8.js:
              * tests/mozilla/ecma/Date/15.9.5.10-9.js:
              * tests/mozilla/ecma/jsref.js:
              * tests/mozilla/ecma_2/jsref.js:
              * tests/mozilla/ecma_3/Date/shell.js:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20121 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      152ba453
    • kmccullo's avatar
      Reviewed by . · d138c7eb
      kmccullo authored
              - Update tests for new DST rules.
      
              * tests/mozilla/ecma/shell.js:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20118 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d138c7eb
    • ggaren's avatar
      JavaScriptCore: · 470b1c7b
      ggaren authored
              Reviewed by Oliver Hunt.
              
              Fixed <rdar://problem/4681051> Installer crashes in KJS::Collector::
              markOtherThreadConservatively(KJS::Collector::Thread*) trying to install 
              iLife 06 using Rosetta on an Intel Machine
              
              The problem was that our thread-specific data destructor would modify the
              list of active JavaScript threads without holding the JSLock, corrupting
              the list. Corruption was especially likely if one JavaScript thread exited 
              while another was starting up.
      
              * JavaScriptCore.exp:
              * kjs/JSLock.cpp: Don't conflate locking the JSLock with registering a
              thread, since the thread-specific data destructor needs to lock
              without registering a thread. Instead, treat thread registration as a
              part of the convenience of the JSLock object, and whittle down JSLock::lock()
              to just the bits that actually do the locking.
              (KJS::JSLock::lock):
              (KJS::JSLock::registerThread):
              * kjs/JSLock.h: Updated comments to mention the new behavior above, and
              other recent changes.
              (KJS::JSLock::JSLock):
              * kjs/collector.cpp:
              (KJS::destroyRegisteredThread): Lock here.
              (KJS::Collector::registerThread): To match, assert that we're locked here.
      
      JavaScriptGlue:
      
              Reviewed by Oliver Hunt.
              
              Updated in light of fix for <rdar://problem/4681051> Installer crashes 
              in KJS::Collector::markOtherThreadConservatively(KJS::Collector::Thread*) 
              trying to install iLife 06 using Rosetta on an Intel Machine
              
              * JavaScriptGlue.cpp:
              (JSLockInterpreter): Ensure backwards compatibility by calling 
              registerThread() when explicitly taking the JSLock. (This doesn't happen 
              automatically anymore.) I doubt this actally matters, but in JavaScriptGlue
              territory, that kind of thinking will get you killed.
      
      WebKitTools:
      
              Reviewed by Oliver Hunt.
              
              Beefed up --threaded mode in light of <rdar://problem/4681051> Installer 
              crashes in KJS::Collector::markOtherThreadConservatively(KJS::Collector::Thread*) 
              trying to install iLife 06 using Rosetta on an Intel Machine
              
              --threaded mode now runs a bunch of different JavaScript threads, randomly
              killing and respawning them. This was sufficient for reproducing the
              bug on my MacBook Pro.
      
              * DumpRenderTree/DumpRenderTree.m:
              (javaScriptThreads):
              (runJavaScriptThread):
              (startJavaScriptThreads):
              (stopJavaScriptThreads):
              (dumpRenderTree):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20115 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      470b1c7b
  8. 11 Mar, 2007 1 commit
    • ggaren's avatar
      JavaScriptCore: · d789afc0
      ggaren authored
              Reviewed by Darin Adler.
      
              Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and 
              JSCore causes a hang @ www.panoramas.dk
              
              With a PAC file, run-webkit-tests --threaded passes, the reported site
              works, and all the Quicktime/JavaScript and Flash/JavaScript examples
              I found through Google work, too.
              
              Any time JavaScript causes arbitrary non-JavaScript code to execute, it 
              risks deadlock, because that code may block, trying to acquire a lock 
              owned by a thread that is waiting to execute JavaScript. In this case,
              the thread was a networking thread that was waiting to interpret a PAC file.
              
              Because non-JavaScript code may execute in response to, well, anything,
              a perfect solution to this problem is impossible. I've implemented an
              optimistic solution, instead: JavaScript will drop its lock whenever it
              makes a direct call to non-JavaScript code through a bridging/plug-in API,
              but will blissfully ignore the indirect ways it may cause non-JavaScript 
              code to run (resizing a window, for example). 
              
              Unfortunately, this solution introduces significant locking overhead in 
              the bridging APIs. I don't see a way around that.
      
              This patch includes some distinct bug fixes I saw along the way:
              
              * bindings/objc/objc_instance.mm: Fixed a bug where a nested begin() call
              would leak its autorelease pool, because it would NULL out _pool without
              draining it.
      
              * bindings/runtime_object.cpp:
              (RuntimeObjectImp::methodGetter): Don't copy an Identifier to ASCII only
              to turn around and make an Identifier from the ASCII. In an earlier 
              version of this patch, the copy caused an assertion failure. Now it's 
              just unnecessary work.
              (RuntimeObjectImp::getOwnPropertySlot): ditto
      
              * bindings/objc/objc_instance.h: Removed overrides of setVAlueOfField and
              getValueOfField, because they did exactly what the base class versions did.
              Removed overrides of Noncopyable declarations for the same reason.
      
              * bindings/runtime.h: Inherit from Noncopyable instead of rolling our own.
              * bindings/c/c_instance.h: ditto
      
              And the actual patch:
              
              * API/JSCallbackConstructor.cpp: Drop all locks when calling out to C.
              (KJS::JSCallbackConstructor::construct):
              * API/JSCallbackFunction.cpp: ditto
              (KJS::JSCallbackFunction::callAsFunction):
              * API/JSCallbackObject.cpp: ditto
              (KJS::JSCallbackObject::init):
              (KJS::JSCallbackObject::~JSCallbackObject):
              (KJS::JSCallbackObject::getOwnPropertySlot):
              (KJS::JSCallbackObject::put):
              (KJS::JSCallbackObject::deleteProperty):
              (KJS::JSCallbackObject::construct):
              (KJS::JSCallbackObject::hasInstance):
              (KJS::JSCallbackObject::callAsFunction):
              (KJS::JSCallbackObject::getPropertyNames):
              (KJS::JSCallbackObject::toNumber):
              (KJS::JSCallbackObject::toString):
              (KJS::JSCallbackObject::staticValueGetter):
              (KJS::JSCallbackObject::callbackGetter):
              
              * bindings/c/c_instance.cpp: Drop all locks when calling out to C.
              (KJS::Bindings::CInstance::invokeMethod):
              (KJS::Bindings::CInstance::invokeDefaultMethod):
              * bindings/c/c_runtime.cpp: Drop all locks when calling out to C.
              (KJS::Bindings::CField::valueFromInstance):
              (KJS::Bindings::CField::setValueToInstance):
              * bindings/jni/jni_objc.mm:
              (KJS::Bindings::dispatchJNICall): Drop all locks when calling out to Java.
      
              * bindings/objc/objc_instance.mm: The changes here are to accomodate the
              fact that C++ unwinding of DropAllLocks goes crazy when you put it inside
              a @try block. I moved all JavaScript stuff outside of the @try blocks, and 
              then prefixed the whole blocks with DropAllLocks objects. This required some
              supporting changes in other functions, which now acquire the JSLock for
              themselves, intead of relying on their callers to do so.
              (ObjcInstance::end):
              (ObjcInstance::invokeMethod):
              (ObjcInstance::invokeDefaultMethod):
              (ObjcInstance::setValueOfUndefinedField):
              (ObjcInstance::getValueOfUndefinedField):
              * bindings/objc/objc_runtime.mm: Same as above, except I didn't want to
              change throwError to acquire the JSLock for itself.
              (ObjcField::valueFromInstance):
              (ObjcField::setValueToInstance):
              * bindings/objc/objc_utility.mm: Supporting changes mentioned above.
              (KJS::Bindings::convertValueToObjcValue):
              (KJS::Bindings::convertObjcValueToValue):
      
              * kjs/JSLock.cpp: 
              (1) Fixed DropAllLocks to behave as advertised, and drop the JSLock only 
              if the current thread actually acquired it in the first place. This is 
              important because WebKit needs to ensure that the JSLock has been 
              dropped before it makes a plug-in call, even though it doesn't know if 
              the current thread actually acquired the JSLock. (We don't want WebKit
              to accidentally drop a lock belonging to *another thread*.)
              (2) Used the new per-thread code written for (1) to make recursive calls
              to JSLock very cheap. JSLock now knows to call pthread_mutext_lock/ 
              pthread_mutext_unlock only at nesting level 0.
              (KJS::createDidLockJSMutex):
              (KJS::JSLock::lock):
              (KJS::JSLock::unlock):
              (KJS::DropAllLocks::DropAllLocks):
              (KJS::DropAllLocks::~DropAllLocks):
              (KJS::JSLock::lockCount):
              * kjs/JSLock.h: Don't duplicate Noncopyable.
              (KJS::JSLock::~JSLock):
      
              * wtf/Assertions.h: Blind attempt at helping the Windows build.
      
      WebCore:
      
              Reviewed by Darin Adler.
      
              Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and 
              JSCore causes a hang @ www.panoramas.dk
              
              See JavaScriptCore ChangeLog for details.
              
              * bindings/objc/WebScriptObject.mm:
              (_didExecute): Added helpful ASSERT.
              (+[WebScriptObject throwException:]): Added missing JSLock.
      
      WebKit:
      
              Reviewed by Darin Adler.
      
              Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and 
              JSCore causes a hang @ www.panoramas.dk
              
              See JavaScriptCore ChangeLog for details.
      
              Drop the JSLock before making calls through the plug-in API from functions
              that may have been called by JavaScript.
              
              * Plugins/WebBaseNetscapePluginView.mm:
              (-[WebBaseNetscapePluginView sendEvent:]):
              (-[WebBaseNetscapePluginView setWindowIfNecessary]):
              (-[WebBaseNetscapePluginView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:DOMElement:]):
              (-[WebBaseNetscapePluginView createPluginScriptableObject]):
              (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]):
              (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithReason:]):
              (-[WebBaseNetscapePluginView loadPluginRequest:]):
              (-[WebBaseNetscapePluginView _printedPluginBitmap]):
              * Plugins/WebPluginController.mm:
              (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]):
              (-[WebPluginController startAllPlugins]):
              (-[WebPluginController stopAllPlugins]):
              (-[WebPluginController addPlugin:]):
              (-[WebPluginController destroyPlugin:]):
              (-[WebPluginController destroyAllPlugins]):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20104 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d789afc0
  9. 08 Mar, 2007 1 commit
  10. 07 Mar, 2007 5 commits
  11. 06 Mar, 2007 2 commits
    • ggaren's avatar
      JavaScriptCore: · ff59958f
      ggaren authored
              Reviewed by Maciej Stachowiak.
              
              Fixed all known crashers exposed by run-webkit-tests --threaded. This covers:
      
              <rdar://problem/4565394> | http://bugs.webkit.org/show_bug.cgi?id=12585 
                  PAC file: after closing a window that contains macworld.com, new window 
                  crashes (KJS::PropertyMap::mark()) (12585)
              <rdar://problem/4571215> | http://bugs.webkit.org/show_bug.cgi?id=9211
                  PAC file: Crash occurs when clicking on the navigation tabs at http://www.businessweek.com/ (9211)
              <rdar://problem/4557926> 
                  PAC file: Crash occurs when attempting to view image in slideshow mode 
                  at http://d.smugmug.com/gallery/581716 ( KJS::IfNode::execute (KJS::
                  ExecState*) + 312) if you use a PAC file
      
              (1) Added some missing JSLocks, along with related ASSERTs.
              
              (2) Fully implemented support for objects that can only be garbage collected
              on the main thread. So far, only WebCore uses this. We can add it to API
              later if we learn that it's needed. 
              
              The implementation uses a "main thread only" flag inside each object. When 
              collecting on a secondary thread, the Collector does an extra pass through 
              the heap to mark all flagged objects before sweeping. This solution makes
              the common case -- flag lots of objects, but never collect on a secondary 
              thread -- very fast, even though the uncommon case of garbage collecting
              on a secondary thread isn't as fast as it could be. I left some notes 
              about how to speed it up, if we ever care.
              
              For posterity, here are some things I learned about GC while investigating:
              
              * Each collect must either mark or delete every heap object. "Zombie" 
              objects, which are neither marked nor deleted, raise these issues:
      
                  * On the next pass, the conservative marking algorithm might mark a 
                  zombie, causing it to mark freed objects.
      
                  * The client might try to use a zombie, which would seem live because 
                  its finalizer had not yet run.
      
              * A collect on the main thread is free to delete any object. Presumably, 
              objects allocated on secondary threads have thread-safe finalizers.
      
              * A collect on a secondary thread must not delete thread-unsafe objects.
      
              * The mark function must be thread-safe.
              
              Line by line comments:
      
              * API/JSObjectRef.h: Added comment specifying that the finalize callback 
              may run on any thread.
      
              * JavaScriptCore.exp: Nothing to see here.
      
              * bindings/npruntime.cpp:
              (_NPN_GetStringIdentifier): Added JSLock.
      
              * bindings/objc/objc_instance.h:
              * bindings/objc/objc_instance.mm:
              (ObjcInstance::~ObjcInstance): Use an autorelease pool. The other callers 
              to CFRelease needed one, too, but they were dead code, so I removed them 
              instead. (This fixes a leak seen while running run-webkit-tests --threaded,
              although I don't think it's specifically a threading issue.) 
              
              * kjs/collector.cpp:
              (KJS::Collector::collectOnMainThreadOnly): New function. Tells the collector
              to collect a value only if it's collecting on the main thread.
              (KJS::Collector::markMainThreadOnlyObjects): New function. Scans the heap
              for "main thread only" objects and marks them.
      
              * kjs/date_object.cpp: 
              (KJS::DateObjectImp::DateObjectImp): To make the new ASSERTs happy, allocate 
              our globals on the heap, avoiding a seemingly unsafe destructor call at 
              program exit time.
              * kjs/function_object.cpp:
              (FunctionPrototype::FunctionPrototype): ditto
      
              * kjs/interpreter.cpp:
              (KJS::Interpreter::mark): Removed boolean parameter, which was an incomplete
              and arguably hackish way to implement markMainThreadOnlyObjects() inside WebCore.
              * kjs/interpreter.h:
      
              * kjs/identifier.cpp:
              (KJS::identifierTable): Added some ASSERTs to check for thread safety 
              problems.
      
              * kjs/list.cpp: Added some ASSERTs to check for thread safety problems.
              (KJS::allocateListImp):
              (KJS::List::release):
              (KJS::List::append):
              (KJS::List::empty): Make the new ASSERTs happy.
      
              * kjs/object.h:
              (KJS::JSObject::JSObject): "m_destructorIsThreadSafe" => "m_collectOnMainThreadOnly".
              I removed the constructor parameter because m_collectOnMainThreadOnly,
              like m_marked, is a Collector bit, so only the Collector should set or get it.
      
              * kjs/object_object.cpp:
              (ObjectPrototype::ObjectPrototype): Make the ASSERTs happy.
              * kjs/regexp_object.cpp:
              (RegExpPrototype::RegExpPrototype): ditto
      
              * kjs/ustring.cpp: Added some ASSERTs to check for thread safety problems.
              (KJS::UCharReference::ref): 
              (KJS::UString::Rep::createCopying):
              (KJS::UString::Rep::create):
              (KJS::UString::Rep::destroy):
              (KJS::UString::null): Make the new ASSERTs happy.
              * kjs/ustring.h:
              (KJS::UString::Rep::ref): Added some ASSERTs to check for thread safety problems.
              (KJS::UString::Rep::deref):
      
              * kjs/value.h:
              (KJS::JSCell::JSCell):
      
      JavaScriptGlue:
      
              Reviewed by Maciej Stachowiak.
      
              Fixed all known crashers exposed by run-webkit-tests --threaded while using
              a PAC file (for maximum carnage). See JavaScriptCore ChangeLog for 
              more details.
      
              * JSBase.cpp:
              (JSBase::Release): Lock when deleting, because we may be deleting an object
              (like a JSRun) that holds thread-unsafe data.
      
              * JSUtils.cpp:
              (CFStringToUString): Don't lock, because our caller locks. Also, locking
              inside a function that returns thread-unsafe data by copy will only mask
              threading problems.
      
              * JavaScriptGlue.cpp:
              (JSRunEvaluate): Added missing JSLock.
              (JSRunCheckSyntax): Converted to JSLock.
              * JavaScriptGlue.xcodeproj/project.pbxproj:
      
      WebCore:
      
              Reviewed by Maciej Stachowiak.
      
              Fixed all known crashers exposed by run-webkit-tests --threaded [*]. See 
              JavaScriptCore ChangeLog for more details.
      
              * bindings/js/kjs_binding.cpp:
              (KJS::domNodesPerDocument): Added thread safety ASSERT.
              (KJS::ScriptInterpreter::mark): Removed obsolete logic for marking unsafe
              objects when collecting on a secondary thread. The Collector takes care
              of this now.
      
              * bindings/js/kjs_binding.h:
              (KJS::DOMObject::DOMObject): Used new API for specifying that WebCore
              objects should be garbage collected on the main thread only.
      
              * bindings/js/kjs_window.cpp:
              (KJS::ScheduledAction::execute): Moved JSLock to cover implementedsCall() call,
              which, for some subclasses, ends up allocating garbage collected objects.
              (This fix was speculative. I didn't actually see a crash from this.)
              (KJS::Window::timerFired): Added JSLock around ScheduleAction destruction,
              since it destroys a KJS::List.
      
              * bindings/objc/WebScriptObject.mm:
              (-[WebScriptObject setException:]): Added JSLock. (This fix was speculative. 
              I didn't actually see a crash from this.)
      
              * bridge/mac/WebCoreScriptDebugger.mm:
              (-[WebCoreScriptCallFrame evaluateWebScript:]): Added JSLock. (This fix 
              was speculative. I didn't actually see a crash from this.)
      
              * dom/Document.cpp:
              (WebCore::Document::~Document): Added JSLock around modification to 
              domNodesPerDocument(), which can be accessed concurrently during garbage 
              collection.
              * dom/Node.cpp:
              (WebCore::Node::setDocument): ditto.
              
              [*] fast/js/toString-stack-overflow.html is an exception. --threaded mode
              crashes this test because it causes the garbage collector to run frequently,
              and this test crashes if you happen to garbage collect while it's running.
              This is a known issue with stack overflow during the mark phase. It's
              not related to threading.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20004 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ff59958f
    • ggaren's avatar
      Reviewed by Maciej Stachowiak. · 7702a7a5
      ggaren authored
              
              2% speedup on super accurate JS iBench.
      
              (KJS::Collector::collect): Removed anti-optimization to call
              pthread_is_threaded_np() before calling pthread_main_np(). Almost all 
              apps have more than one thread, so the extra call is actually worse.
              Interestingly, even the single-threaded testkjs shows a speed gain
              from removing the pthread_is_threaded_np() short-circuit. Not sure why.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19994 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7702a7a5
  12. 04 Mar, 2007 1 commit
  13. 02 Mar, 2007 3 commits
    • sfalken's avatar
      2007-03-02 Steve Falkenburg <sfalken@apple.com> · f7c999da
      sfalken authored
              Reviewed by Anders.
              
              Add unsigned int hash traits (matches existing unsigned long version)
      
              * wtf/HashTraits.h:
              (WTF::):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19947 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f7c999da
    • aroben's avatar
      Reviewed by Kevin M. · 6181d058
      aroben authored
              Try to fix the Qt build.
      
              * kjs/DateMath.cpp:
              (KJS::msToGregorianDateTime): Removed unnecessary "struct" keyword.
              * kjs/DateMath.h: Moved forward declarations to the top of the file
              before they are used.
              * kjs/date_object.cpp:
              (KJS::formatLocaleDate): Changed to take a const GregorianDateTime&
              since GregorianDateTime is Noncopyable.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19945 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6181d058
    • darin's avatar
      Reviewed by Kevin McCullough. · 3bb15076
      darin authored
              - fix http://bugs.webkit.org/show_bug.cgi?id=12867
                REGRESSION: BenchJS test 7 (dates) is 220% slower than in Safari 2.0.4
      
              * kjs/DateMath.h: Marked GregorianDateTime as noncopyable, since it has a non-trivial
              destructor and not the correspoding copy constructor or assignment operator.
              Changed the GregorianDateTime constructor to use member initialization syntax.
              Fixed the destructor to use the array delete operator, since timeZone is an array.
      
              * kjs/DateMath.cpp:
              (KJS::daysInYear): Changed to call isLeapYear so the rule is not repeated twice.
              (KJS::getUTCOffset): Added caching on PLATFORM(DARWIN), since we can rely on the
              notify_check function and "com.apple.system.timezone" to let us know when the
              offset has changed.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19943 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3bb15076
  14. 27 Feb, 2007 2 commits
    • ggaren's avatar
      Reviewed by Darin Adler. · a995f707
      ggaren authored
              
              Follow-up to fixing http://bugs.webkit.org/show_bug.cgi?id=12659 | <rdar://problem/4954306>
              JS objects not collected after closing window @ ebay.com/maps.google.com
              
              Changed Interpreter cache of global constructors and prototypes from
              ProtectedPtrs to bare, marked pointers. ProtectedPtrs are inefficient,
              and they increase the risk of reference cycles. Also, Darin said something
              about ProtectedPtrs giving him warts.
              
              Also changed data members to precise types from generic JSObject*'s.
              
              Layout tests and JS tests pass.
      
              * kjs/SavedBuiltins.h:
              * kjs/interpreter.cpp:
              (KJS::Interpreter::init):
              (KJS::Interpreter::~Interpreter):
              (KJS::Interpreter::initGlobalObject): Moved Identifier::init() call to
              constructor, for clarity.
              (KJS::Interpreter::mark):
              * kjs/interpreter.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19901 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a995f707
    • ggaren's avatar
      JavaScriptCore: · ecd5f5c5
      ggaren authored
              Reviewed by Maciej Stachowiak.
              
              Fixed http://bugs.webkit.org/show_bug.cgi?id=12659 | <rdar://problem/4954306>
              JS objects not collected after closing window @ ebay.com/maps.google.com
      
              Don't GC in the Interpreter destructor. For that to work, the Interpreter
              would have to NULL out all of its ProtectedPtrs before calling collect(). But 
              we've decided that we don't want things to work that way, anyway. We want the
              client to be in charge of manual GC so that it can optimize cases when
              it will be destroying many interpreters at once
              (e.g., http://bugs.webkit.org/show_bug.cgi?id=12900).
              
              Also removed Interpreter::collect() because it was redundant with 
              Collector::collect().
      
              * JavaScriptCore.exp:
              * kjs/interpreter.cpp:
              (KJS::Interpreter::~Interpreter):
              * kjs/testkjs.cpp:
              (TestFunctionImp::callAsFunction):
      
      LayoutTests:
      
              Reviewed by Maciej Stachowiak.
              
              Test for http://bugs.webkit.org/show_bug.cgi?id=12659 | <rdar://problem/4954306> 
              JS objects not collected after closing window @ ebay.com/maps.google.com
              
              * fast/leaks/003-expected.txt: Added.
              * fast/leaks/003.html: Added.
      
              * fast/dom/gc-10.html: Bumped the wiggle room threshold on this test by 2 
              because it's failing on my machine with the patch applied but, according 
              to the test notes, we're still well within the margin of error.
      
      WebCore:
      
              Reviewed by Maciej Stachowiak.
              
              Fixed http://bugs.webkit.org/show_bug.cgi?id=12659 | <rdar://problem/4954306>
              JS objects not collected after closing window @ ebay.com/maps.google.com
      
              Garbage collect in the KJSProxy destructor, after clearing our reference
              to the interpreter, because that's when the interpreter has torn down fully.
      
              (Technically speaking, we can't *prove* that we have the only reference to 
              our interpreter, but that's how it works in practice, and manual garbage 
              collection is just an opportunistic optimization, so it's OK for it to 
              work in practice even if it can't be proven in theory.)
              
              Layout tests pass. No leaks reported.
      
              * bindings/js/kjs_proxy.cpp:
              (WebCore::KJSProxy::~KJSProxy):
              * bindings/js/kjs_proxy.h:
              * page/Page.cpp:
              (WebCore::Page::~Page): Merged pageDestroyed() calls. Moved debug-only
              code to the bottom.
              * page/Frame.cpp:
              (WebCore::Frame::~Frame): Don't call getObject() because globalObject()
              returns a JSObject* already, and the call can leave a pointer to the Window
              object on the stack. Don't check for NULL because it is an invariant of
              JavaScriptCore that no JSObject* can be NULL. Do use a volatile pointer
              for w because the 'w = 0' assignment just screams to the compiler, "Don't
              generate any code for me!"
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19894 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ecd5f5c5
  15. 26 Feb, 2007 2 commits
    • kjk's avatar
      JavaScriptCore: · 199780c7
      kjk authored
              Reviewed by Adam Roben.
      
              Rename *_SUPPORT defines to ENABLE_*.
      
              * jscore.bkl:
      
        WebKitTools:
      
              Reviewed by Adam Roben.
      
              Rename *_SUPPORT defines to ENABLE_*.
      
              * GdkLauncher/gdklauncher.bkl:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19873 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      199780c7
    • mjs's avatar
      JavaScriptCore: · d2948ef7
      mjs authored
              Reviewed by Lars.
              
              - <rdar://problem/5021698> Disable experimental SVG features (12883)
      
              * wtf/Platform.h: Add ENABLE() macro similar to HAVE() and USE(), to
              allow nicer handling of optional WebKit features.
      
      WebCore:
      
              Reviewed by Lars.
      
              - fixed <rdar://problem/5021698> Disable experimental SVG features (12883)
              
              I added an ENABLE_SVG_EXPERIMENTAL_FEATURES define to guard all use of the experimental
              features, and used it to guard relevant tag names, elements, JS bindings and renderers.
              
              I also converted all the existing optional feature defines to
              ENABLE_FOO instead of FOO_SUPPORT since that is the more standard
              way to do it in open source projects and works with the handy new
              ENABLE() macro.
      
              * CMakeLists.txt:
              * DerivedSources.make:
              * Projects/gdk/webcore-gdk.bkl:
              * WebCore.pro:
              * WebCore.vcproj/WebCore/WebCore.vcproj:
              * WebCore.vcproj/WebCore/build-generated-files.sh:
              * WebCore.xcodeproj/project.pbxproj:
              * bindings/js/JSCustomXPathNSResolver.cpp:
              * bindings/js/JSCustomXPathNSResolver.h:
              * bindings/js/JSSVGElementWrapperFactory.cpp:
              * bindings/js/JSSVGElementWrapperFactory.h:
              * bindings/js/JSSVGMatrixCustom.cpp:
              * bindings/js/JSSVGPODTypeWrapper.h:
              * bindings/js/JSSVGPathSegCustom.cpp:
              * bindings/js/JSSVGPathSegListCustom.cpp:
              * bindings/js/JSSVGPointListCustom.cpp:
              * bindings/js/JSXSLTProcessor.cpp:
              * bindings/js/JSXSLTProcessor.h:
              * bindings/js/kjs_binding.cpp:
              (KJS::setDOMException):
              * bindings/js/kjs_css.cpp:
              (KJS::toJS):
              * bindings/js/kjs_dom.cpp:
              (KJS::toJS):
              * bindings/js/kjs_html.cpp:
              (KJS::HTMLElementFunction::callAsFunction):
              * bindings/js/kjs_proxy.cpp:
              * bindings/js/kjs_proxy.h:
              * bindings/js/kjs_window.cpp:
              (KJS::Window::getValueProperty):
              * bindings/objc/DOM.mm:
              (WebCore::createElementClassMap):
              (+[DOMNode _nodeWith:WebCore::]):
              * bindings/objc/DOMCSS.mm:
              (+[DOMCSSValue _CSSValueWith:WebCore::]):
              * bindings/objc/DOMCustomXPathNSResolver.h:
              * bindings/objc/DOMCustomXPathNSResolver.mm:
              * bindings/objc/DOMEvents.mm:
              (+[DOMEvent _eventWith:WebCore::]):
              * bindings/objc/DOMInternal.h:
              * bindings/objc/DOMSVGPathSegInternal.mm:
              * bindings/objc/DOMXPath.mm:
              * bindings/objc/ExceptionHandlers.mm:
              (WebCore::raiseDOMException):
              * bindings/objc/PublicDOMInterfaces.h:
              * bindings/scripts/CodeGeneratorJS.pm:
              * bindings/scripts/CodeGeneratorObjC.pm:
              * config.h:
              * css/CSSGrammar.y:
              * css/CSSStyleDeclaration.cpp:
              (WebCore::propertyID):
              * css/StyleBase.h:
              * css/cssparser.cpp:
              (WebCore::CSSParser::parseValue):
              * css/cssparser.h:
              * css/cssstyleselector.cpp:
              (WebCore::CSSStyleSelector::loadDefaultStyle):
              (WebCore::CSSStyleSelector::initForStyleResolve):
              (WebCore::checkPseudoState):
              (WebCore::CSSStyleSelector::adjustRenderStyle):
              (WebCore::CSSStyleSelector::applyProperty):
              * css/cssstyleselector.h:
              * dom/DOMImplementation.cpp:
              (WebCore::DOMImplementation::hasFeature):
              (WebCore::DOMImplementation::createDocument):
              * dom/Document.cpp:
              (WebCore::Document::Document):
              (WebCore::Document::~Document):
              (WebCore::Document::createElement):
              (WebCore::Document::implicitClose):
              (WebCore::Document::recalcStyleSelector):
              (WebCore::Document::createEvent):
              * dom/Document.h:
              * dom/Document.idl:
              * dom/Event.cpp:
              * dom/Event.h:
              * dom/EventTarget.cpp:
              * dom/EventTarget.h:
              * dom/MappedAttributeEntry.h:
              (WebCore::):
              * dom/Node.cpp:
              (WebCore::Node::createRendererIfNeeded):
              (WebCore::Node::shadowAncestorNode):
              * dom/Node.h:
              * dom/ProcessingInstruction.cpp:
              (WebCore::ProcessingInstruction::ProcessingInstruction):
              (WebCore::ProcessingInstruction::checkStyleSheet):
              (WebCore::ProcessingInstruction::setCSSStyleSheet):
              * dom/ProcessingInstruction.h:
              * dom/Text.cpp:
              (WebCore::Text::createRenderer):
              * dom/XMLTokenizer.cpp:
              (WebCore::XMLTokenizer::startElementNs):
              (WebCore::XMLTokenizer::endElementNs):
              (WebCore::XMLTokenizer::processingInstruction):
              (WebCore::XMLTokenizer::end):
              (WebCore::XMLTokenizer::insertErrorMessageBlock):
              * dom/XMLTokenizer.h:
              * html/HTMLEmbedElement.cpp:
              * html/HTMLEmbedElement.h:
              * html/HTMLObjectElement.cpp:
              * html/HTMLObjectElement.h:
              * ksvg2/css/SVGCSSParser.cpp:
              * ksvg2/css/SVGCSSStyleSelector.cpp:
              * ksvg2/css/SVGRenderStyle.cpp:
              * ksvg2/css/SVGRenderStyle.h:
              * ksvg2/css/SVGRenderStyleDefs.cpp:
              * ksvg2/css/SVGRenderStyleDefs.h:
              * ksvg2/events/JSSVGLazyEventListener.cpp:
              * ksvg2/events/JSSVGLazyEventListener.h:
              * ksvg2/events/SVGZoomEvent.cpp:
              * ksvg2/events/SVGZoomEvent.h:
              * ksvg2/misc/KCanvasRenderingStyle.cpp:
              * ksvg2/misc/KCanvasRenderingStyle.h:
              * ksvg2/misc/PointerEventsHitRules.cpp:
              * ksvg2/misc/PointerEventsHitRules.h:
              * ksvg2/misc/SVGDocumentExtensions.cpp:
              * ksvg2/misc/SVGDocumentExtensions.h:
              * ksvg2/misc/SVGImageLoader.cpp:
              * ksvg2/misc/SVGImageLoader.h:
              * ksvg2/misc/SVGTimer.cpp:
              * ksvg2/misc/SVGTimer.h:
              * ksvg2/misc/TimeScheduler.cpp:
              * ksvg2/misc/TimeScheduler.h:
              * ksvg2/scripts/make_names.pl:
              * ksvg2/svg/ColorDistance.cpp:
              * ksvg2/svg/ColorDistance.h:
              * ksvg2/svg/GradientAttributes.h:
              * ksvg2/svg/LinearGradientAttributes.h:
              * ksvg2/svg/PatternAttributes.h:
              * ksvg2/svg/RadialGradientAttributes.h:
              * ksvg2/svg/SVGAElement.cpp:
              * ksvg2/svg/SVGAElement.h:
              * ksvg2/svg/SVGAngle.cpp:
              * ksvg2/svg/SVGAngle.h:
              * ksvg2/svg/SVGAnimateColorElement.cpp:
              * ksvg2/svg/SVGAnimateColorElement.h:
              * ksvg2/svg/SVGAnimateElement.cpp:
              * ksvg2/svg/SVGAnimateElement.h:
              * ksvg2/svg/SVGAnimateElement.idl:
              * ksvg2/svg/SVGAnimateMotionElement.cpp:
              * ksvg2/svg/SVGAnimateMotionElement.h:
              * ksvg2/svg/SVGAnimateTransformElement.cpp:
              * ksvg2/svg/SVGAnimateTransformElement.h:
              * ksvg2/svg/SVGAnimateTransformElement.idl:
              * ksvg2/svg/SVGAnimatedPathData.cpp:
              * ksvg2/svg/SVGAnimatedPathData.h:
              * ksvg2/svg/SVGAnimatedPoints.cpp:
              * ksvg2/svg/SVGAnimatedPoints.h:
              * ksvg2/svg/SVGAnimatedTemplate.h:
              * ksvg2/svg/SVGAnimationElement.cpp:
              * ksvg2/svg/SVGAnimationElement.h:
              * ksvg2/svg/SVGCircleElement.cpp:
              * ksvg2/svg/SVGCircleElement.h:
              * ksvg2/svg/SVGClipPathElement.cpp:
              * ksvg2/svg/SVGClipPathElement.h:
              * ksvg2/svg/SVGColor.cpp:
              * ksvg2/svg/SVGColor.h:
              * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
              * ksvg2/svg/SVGComponentTransferFunctionElement.h:
              * ksvg2/svg/SVGCursorElement.cpp:
              * ksvg2/svg/SVGCursorElement.h:
              * ksvg2/svg/SVGDefsElement.cpp:
              * ksvg2/svg/SVGDefsElement.h:
              * ksvg2/svg/SVGDescElement.cpp:
              * ksvg2/svg/SVGDescElement.h:
              * ksvg2/svg/SVGDocument.cpp:
              * ksvg2/svg/SVGDocument.h:
              * ksvg2/svg/SVGElement.cpp:
              (WebCore::SVGElement::dispatchEvent):
              * ksvg2/svg/SVGElement.h:
              * ksvg2/svg/SVGElementInstance.cpp:
              * ksvg2/svg/SVGElementInstance.h:
              * ksvg2/svg/SVGElementInstance.idl:
              * ksvg2/svg/SVGElementInstanceList.cpp:
              * ksvg2/svg/SVGElementInstanceList.h:
              * ksvg2/svg/SVGElementInstanceList.idl:
              * ksvg2/svg/SVGEllipseElement.cpp:
              * ksvg2/svg/SVGEllipseElement.h:
              * ksvg2/svg/SVGException.h:
              * ksvg2/svg/SVGExternalResourcesRequired.cpp:
              * ksvg2/svg/SVGExternalResourcesRequired.h:
              * ksvg2/svg/SVGFEBlendElement.cpp:
              * ksvg2/svg/SVGFEBlendElement.h:
              * ksvg2/svg/SVGFEBlendElement.idl:
              * ksvg2/svg/SVGFEColorMatrixElement.cpp:
              * ksvg2/svg/SVGFEColorMatrixElement.h:
              * ksvg2/svg/SVGFEColorMatrixElement.idl:
              * ksvg2/svg/SVGFEComponentTransferElement.cpp:
              * ksvg2/svg/SVGFEComponentTransferElement.h:
              * ksvg2/svg/SVGFEComponentTransferElement.idl:
              * ksvg2/svg/SVGFECompositeElement.cpp:
              * ksvg2/svg/SVGFECompositeElement.h:
              * ksvg2/svg/SVGFECompositeElement.idl:
              * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
              * ksvg2/svg/SVGFEDiffuseLightingElement.h:
              * ksvg2/svg/SVGFEDiffuseLightingElement.idl:
              * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
              * ksvg2/svg/SVGFEDisplacementMapElement.h:
              * ksvg2/svg/SVGFEDisplacementMapElement.idl:
              * ksvg2/svg/SVGFEDistantLightElement.cpp:
              * ksvg2/svg/SVGFEDistantLightElement.h:
              * ksvg2/svg/SVGFEDistantLightElement.idl:
              * ksvg2/svg/SVGFEFloodElement.cpp:
              * ksvg2/svg/SVGFEFloodElement.h:
              * ksvg2/svg/SVGFEFloodElement.idl:
              * ksvg2/svg/SVGFEFuncAElement.cpp:
              * ksvg2/svg/SVGFEFuncAElement.h:
              * ksvg2/svg/SVGFEFuncAElement.idl:
              * ksvg2/svg/SVGFEFuncBElement.cpp:
              * ksvg2/svg/SVGFEFuncBElement.h:
              * ksvg2/svg/SVGFEFuncBElement.idl:
              * ksvg2/svg/SVGFEFuncGElement.cpp:
              * ksvg2/svg/SVGFEFuncGElement.h:
              * ksvg2/svg/SVGFEFuncGElement.idl:
              * ksvg2/svg/SVGFEFuncRElement.cpp:
              * ksvg2/svg/SVGFEFuncRElement.h:
              * ksvg2/svg/SVGFEFuncRElement.idl:
              * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
              * ksvg2/svg/SVGFEGaussianBlurElement.h:
              * ksvg2/svg/SVGFEGaussianBlurElement.idl:
              * ksvg2/svg/SVGFEImageElement.cpp:
              * ksvg2/svg/SVGFEImageElement.h:
              * ksvg2/svg/SVGFEImageElement.idl:
              * ksvg2/svg/SVGFELightElement.cpp:
              * ksvg2/svg/SVGFELightElement.h:
              * ksvg2/svg/SVGFEMergeElement.cpp:
              * ksvg2/svg/SVGFEMergeElement.h:
              * ksvg2/svg/SVGFEMergeElement.idl:
              * ksvg2/svg/SVGFEMergeNodeElement.cpp:
              * ksvg2/svg/SVGFEMergeNodeElement.h:
              * ksvg2/svg/SVGFEMergeNodeElement.idl:
              * ksvg2/svg/SVGFEOffsetElement.cpp:
              * ksvg2/svg/SVGFEOffsetElement.h:
              * ksvg2/svg/SVGFEOffsetElement.idl:
              * ksvg2/svg/SVGFEPointLightElement.cpp:
              * ksvg2/svg/SVGFEPointLightElement.h:
              * ksvg2/svg/SVGFEPointLightElement.idl:
              * ksvg2/svg/SVGFESpecularLightingElement.cpp:
              * ksvg2/svg/SVGFESpecularLightingElement.h:
              * ksvg2/svg/SVGFESpecularLightingElement.idl:
              * ksvg2/svg/SVGFESpotLightElement.cpp:
              * ksvg2/svg/SVGFESpotLightElement.h:
              * ksvg2/svg/SVGFESpotLightElement.idl:
              * ksvg2/svg/SVGFETileElement.cpp:
              * ksvg2/svg/SVGFETileElement.h:
              * ksvg2/svg/SVGFETileElement.idl:
              * ksvg2/svg/SVGFETurbulenceElement.cpp:
              * ksvg2/svg/SVGFETurbulenceElement.h:
              * ksvg2/svg/SVGFETurbulenceElement.idl:
              * ksvg2/svg/SVGFilterElement.cpp:
              * ksvg2/svg/SVGFilterElement.h:
              * ksvg2/svg/SVGFilterElement.idl:
              * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
              * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
              * ksvg2/svg/SVGFitToViewBox.cpp:
              * ksvg2/svg/SVGFitToViewBox.h:
              * ksvg2/svg/SVGForeignObjectElement.cpp:
              * ksvg2/svg/SVGForeignObjectElement.h:
              * ksvg2/svg/SVGForeignObjectElement.idl:
              * ksvg2/svg/SVGGElement.cpp:
              * ksvg2/svg/SVGGElement.h:
              * ksvg2/svg/SVGGradientElement.cpp:
              * ksvg2/svg/SVGGradientElement.h:
              * ksvg2/svg/SVGImageElement.cpp:
              * ksvg2/svg/SVGImageElement.h:
              * ksvg2/svg/SVGLangSpace.cpp:
              * ksvg2/svg/SVGLangSpace.h:
              * ksvg2/svg/SVGLength.cpp:
              * ksvg2/svg/SVGLength.h:
              * ksvg2/svg/SVGLengthList.cpp:
              * ksvg2/svg/SVGLengthList.h:
              * ksvg2/svg/SVGLineElement.cpp:
              * ksvg2/svg/SVGLineElement.h:
              * ksvg2/svg/SVGLinearGradientElement.cpp:
              * ksvg2/svg/SVGLinearGradientElement.h:
              * ksvg2/svg/SVGList.h:
              * ksvg2/svg/SVGListTraits.h:
              * ksvg2/svg/SVGLocatable.cpp:
              (WebCore::SVGLocatable::nearestViewportElement):
              (WebCore::SVGLocatable::farthestViewportElement):
              * ksvg2/svg/SVGLocatable.h:
              * ksvg2/svg/SVGMPathElement.cpp:
              * ksvg2/svg/SVGMPathElement.h:
              * ksvg2/svg/SVGMarkerElement.cpp:
              * ksvg2/svg/SVGMarkerElement.h:
              * ksvg2/svg/SVGMaskElement.cpp:
              * ksvg2/svg/SVGMaskElement.h:
              * ksvg2/svg/SVGMetadataElement.cpp:
              * ksvg2/svg/SVGMetadataElement.h:
              * ksvg2/svg/SVGNumberList.cpp:
              * ksvg2/svg/SVGNumberList.h:
              * ksvg2/svg/SVGPaint.cpp:
              * ksvg2/svg/SVGPaint.h:
              * ksvg2/svg/SVGParserUtilities.cpp:
              * ksvg2/svg/SVGParserUtilities.h:
              * ksvg2/svg/SVGPathElement.cpp:
              * ksvg2/svg/SVGPathElement.h:
              * ksvg2/svg/SVGPathSeg.h:
              * ksvg2/svg/SVGPathSegArc.cpp:
              * ksvg2/svg/SVGPathSegArc.h:
              * ksvg2/svg/SVGPathSegClosePath.cpp:
              * ksvg2/svg/SVGPathSegClosePath.h:
              * ksvg2/svg/SVGPathSegCurvetoCubic.cpp:
              * ksvg2/svg/SVGPathSegCurvetoCubic.h:
              * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp:
              * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
              * ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp:
              * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
              * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp:
              * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
              * ksvg2/svg/SVGPathSegLineto.cpp:
              * ksvg2/svg/SVGPathSegLineto.h:
              * ksvg2/svg/SVGPathSegLinetoHorizontal.cpp:
              * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
              * ksvg2/svg/SVGPathSegLinetoVertical.cpp:
              * ksvg2/svg/SVGPathSegLinetoVertical.h:
              * ksvg2/svg/SVGPathSegList.cpp:
              * ksvg2/svg/SVGPathSegList.h:
              * ksvg2/svg/SVGPathSegMoveto.cpp:
              * ksvg2/svg/SVGPathSegMoveto.h:
              * ksvg2/svg/SVGPatternElement.cpp:
              * ksvg2/svg/SVGPatternElement.h:
              * ksvg2/svg/SVGPointList.cpp:
              * ksvg2/svg/SVGPointList.h:
              * ksvg2/svg/SVGPolyElement.cpp:
              * ksvg2/svg/SVGPolyElement.h:
              * ksvg2/svg/SVGPolygonElement.cpp:
              * ksvg2/svg/SVGPolygonElement.h:
              * ksvg2/svg/SVGPolylineElement.cpp:
              * ksvg2/svg/SVGPolylineElement.h:
              * ksvg2/svg/SVGPreserveAspectRatio.cpp:
              * ksvg2/svg/SVGPreserveAspectRatio.h:
              * ksvg2/svg/SVGRadialGradientElement.cpp:
              * ksvg2/svg/SVGRadialGradientElement.h:
              * ksvg2/svg/SVGRectElement.cpp:
              * ksvg2/svg/SVGRectElement.h:
              * ksvg2/svg/SVGRenderingIntent.h:
              * ksvg2/svg/SVGSVGElement.cpp:
              * ksvg2/svg/SVGSVGElement.h:
              * ksvg2/svg/SVGScriptElement.cpp:
              * ksvg2/svg/SVGScriptElement.h:
              * ksvg2/svg/SVGSetElement.cpp:
              * ksvg2/svg/SVGSetElement.h:
              * ksvg2/svg/SVGStopElement.cpp:
              * ksvg2/svg/SVGStopElement.h:
              * ksvg2/svg/SVGStringList.cpp:
              * ksvg2/svg/SVGStringList.h:
              * ksvg2/svg/SVGStylable.cpp:
              * ksvg2/svg/SVGStylable.h:
              * ksvg2/svg/SVGStyleElement.cpp:
              * ksvg2/svg/SVGStyleElement.h:
              * ksvg2/svg/SVGStyledElement.cpp:
              (WebCore::SVGStyledElement::notifyAttributeChange):
              * ksvg2/svg/SVGStyledElement.h:
              * ksvg2/svg/SVGStyledLocatableElement.cpp:
              * ksvg2/svg/SVGStyledLocatableElement.h:
              * ksvg2/svg/SVGStyledTransformableElement.cpp:
              * ksvg2/svg/SVGStyledTransformableElement.h:
              * ksvg2/svg/SVGSwitchElement.cpp:
              * ksvg2/svg/SVGSwitchElement.h:
              * ksvg2/svg/SVGSymbolElement.cpp:
              * ksvg2/svg/SVGSymbolElement.h:
              * ksvg2/svg/SVGTRefElement.cpp:
              * ksvg2/svg/SVGTRefElement.h:
              * ksvg2/svg/SVGTSpanElement.cpp:
              * ksvg2/svg/SVGTSpanElement.h:
              * ksvg2/svg/SVGTests.cpp:
              * ksvg2/svg/SVGTests.h:
              * ksvg2/svg/SVGTextContentElement.cpp:
              * ksvg2/svg/SVGTextContentElement.h:
              * ksvg2/svg/SVGTextElement.cpp:
              * ksvg2/svg/SVGTextElement.h:
              * ksvg2/svg/SVGTextPositioningElement.cpp:
              * ksvg2/svg/SVGTextPositioningElement.h:
              * ksvg2/svg/SVGTitleElement.cpp:
              * ksvg2/svg/SVGTitleElement.h:
              * ksvg2/svg/SVGTransform.cpp:
              * ksvg2/svg/SVGTransform.h:
              * ksvg2/svg/SVGTransformDistance.cpp:
              * ksvg2/svg/SVGTransformDistance.h:
              * ksvg2/svg/SVGTransformList.cpp:
              * ksvg2/svg/SVGTransformList.h:
              * ksvg2/svg/SVGTransformable.cpp:
              * ksvg2/svg/SVGTransformable.h:
              * ksvg2/svg/SVGURIReference.cpp:
              * ksvg2/svg/SVGURIReference.h:
              * ksvg2/svg/SVGUnitTypes.h:
              * ksvg2/svg/SVGUseElement.cpp:
              * ksvg2/svg/SVGUseElement.h:
              * ksvg2/svg/SVGUseElement.idl:
              * ksvg2/svg/SVGViewElement.cpp:
              * ksvg2/svg/SVGViewElement.h:
              * ksvg2/svg/SVGZoomAndPan.cpp:
              * ksvg2/svg/SVGZoomAndPan.h:
              * ksvg2/svg/svgtags.in:
              * loader/Cache.cpp:
              (WebCore::createResource):
              (WebCore::Cache::getStatistics):
              * loader/Cache.h:
              * loader/CachedImage.cpp:
              (WebCore::CachedImage::createImage):
              * loader/CachedResource.h:
              (WebCore::CachedResource::):
              * loader/CachedResourceClient.h:
              * loader/CachedXBLDocument.cpp:
              * loader/CachedXBLDocument.h:
              * loader/CachedXSLStyleSheet.cpp:
              * loader/CachedXSLStyleSheet.h:
              * loader/DocLoader.cpp:
              * loader/DocLoader.h:
              * page/DOMWindow.idl:
              * page/EventHandler.cpp:
              (WebCore::EventHandler::handleMouseMoveEvent):
              (WebCore::selectCursor):
              * page/Frame.cpp:
              (WebCore::Frame::Frame):
              * page/PageState.cpp:
              (WebCore::PageState::PageState):
              (WebCore::PageState::restore):
              * platform/MimeTypeRegistry.cpp:
              (WebCore::initialiseSupportedNonImageMimeTypes):
              * platform/graphics/FloatPoint3D.cpp:
              * platform/graphics/FloatPoint3D.h:
              * platform/graphics/ImageBuffer.cpp:
              (WebCore::ImageBuffer::renderSubtreeToImage):
              * platform/graphics/svg/SVGImage.cpp:
              * platform/graphics/svg/SVGImage.h:
              * platform/graphics/svg/SVGImageEmptyClients.h:
              * platform/graphics/svg/SVGPaintServer.cpp:
              * platform/graphics/svg/SVGPaintServer.h:
              * platform/graphics/svg/SVGPaintServerGradient.cpp:
              * platform/graphics/svg/SVGPaintServerGradient.h:
              * platform/graphics/svg/SVGPaintServerLinearGradient.cpp:
              * platform/graphics/svg/SVGPaintServerLinearGradient.h:
              * platform/graphics/svg/SVGPaintServerPattern.cpp:
              * platform/graphics/svg/SVGPaintServerPattern.h:
              * platform/graphics/svg/SVGPaintServerRadialGradient.cpp:
              * platform/graphics/svg/SVGPaintServerRadialGradient.h:
              * platform/graphics/svg/SVGPaintServerSolid.cpp:
              * platform/graphics/svg/SVGPaintServerSolid.h:
              * platform/graphics/svg/SVGResource.cpp:
              * platform/graphics/svg/SVGResource.h:
              * platform/graphics/svg/SVGResourceClipper.cpp:
              * platform/graphics/svg/SVGResourceClipper.h:
              * platform/graphics/svg/SVGResourceFilter.cpp:
              * platform/graphics/svg/SVGResourceFilter.h:
              * platform/graphics/svg/SVGResourceMarker.cpp:
              * platform/graphics/svg/SVGResourceMarker.h:
              * platform/graphics/svg/SVGResourceMasker.cpp:
              * platform/graphics/svg/SVGResourceMasker.h:
              * platform/graphics/svg/cg/CgSupport.cpp:
              * platform/graphics/svg/cg/CgSupport.h:
              * platform/graphics/svg/cg/RenderPathCg.cpp:
              * platform/graphics/svg/cg/SVGPaintServerCg.cpp:
              * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
              * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
              * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
              * platform/graphics/svg/cg/SVGResourceClipperCg.cpp:
              * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
              * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
              * platform/graphics/svg/filters/SVGDistantLightSource.h:
              * platform/graphics/svg/filters/SVGFEBlend.cpp:
              * platform/graphics/svg/filters/SVGFEBlend.h:
              * platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
              * platform/graphics/svg/filters/SVGFEColorMatrix.h:
              * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
              * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
              * platform/graphics/svg/filters/SVGFEComposite.cpp:
              * platform/graphics/svg/filters/SVGFEComposite.h:
              * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
              * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
              * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
              * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
              * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
              * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
              * platform/graphics/svg/filters/SVGFEFlood.cpp:
              * platform/graphics/svg/filters/SVGFEFlood.h:
              * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
              * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
              * platform/graphics/svg/filters/SVGFEImage.cpp:
              * platform/graphics/svg/filters/SVGFEImage.h:
              * platform/graphics/svg/filters/SVGFEMerge.cpp:
              * platform/graphics/svg/filters/SVGFEMerge.h:
              * platform/graphics/svg/filters/SVGFEMorphology.cpp:
              * platform/graphics/svg/filters/SVGFEMorphology.h:
              * platform/graphics/svg/filters/SVGFEOffset.cpp:
              * platform/graphics/svg/filters/SVGFEOffset.h:
              * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
              * platform/graphics/svg/filters/SVGFESpecularLighting.h:
              * platform/graphics/svg/filters/SVGFETile.h:
              * platform/graphics/svg/filters/SVGFETurbulence.cpp:
              * platform/graphics/svg/filters/SVGFETurbulence.h:
              * platform/graphics/svg/filters/SVGFilterEffect.cpp:
              * platform/graphics/svg/filters/SVGFilterEffect.h:
              * platform/graphics/svg/filters/SVGLightSource.cpp:
              * platform/graphics/svg/filters/SVGLightSource.h:
              * platform/graphics/svg/filters/SVGPointLightSource.h:
              * platform/graphics/svg/filters/SVGSpotLightSource.h:
              * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
              * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
              * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
              * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
              * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
              * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
              * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
              * platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm:
              * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
              * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
              * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
              * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
              * platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm:
              * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
              * platform/graphics/svg/filters/cg/SVGFETileCg.mm:
              * platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm:
              * platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp:
              * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
              * platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp:
              * platform/graphics/svg/qt/SVGPaintServerQt.cpp:
              * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
              * platform/graphics/svg/qt/SVGPaintServerSolidQt.cpp:
              * platform/graphics/svg/qt/SVGResourceClipperQt.cpp:
              * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
              * platform/graphics/svg/qt/SVGResourceMaskerQt.cpp:
              * rendering/HitTestResult.cpp:
              (WebCore::HitTestResult::absoluteImageURL):
              (WebCore::HitTestResult::absoluteLinkURL):
              (WebCore::HitTestResult::isLiveLink):
              * rendering/RenderForeignObject.cpp:
              * rendering/RenderForeignObject.h:
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::isTransparent):
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::containingBlock):
              * rendering/RenderObject.h:
              * rendering/RenderPath.cpp:
              * rendering/RenderPath.h:
              * rendering/RenderSVGBlock.cpp:
              * rendering/RenderSVGBlock.h:
              * rendering/RenderSVGContainer.cpp:
              * rendering/RenderSVGContainer.h:
              * rendering/RenderSVGGradientStop.cpp:
              * rendering/RenderSVGGradientStop.h:
              * rendering/RenderSVGHiddenContainer.cpp:
              * rendering/RenderSVGHiddenContainer.h:
              * rendering/RenderSVGImage.cpp:
              * rendering/RenderSVGImage.h:
              * rendering/RenderSVGInline.cpp:
              * rendering/RenderSVGInline.h:
              * rendering/RenderSVGInlineText.cpp:
              * rendering/RenderSVGInlineText.h:
              * rendering/RenderSVGTSpan.cpp:
              * rendering/RenderSVGTSpan.h:
              * rendering/RenderSVGText.cpp:
              * rendering/RenderSVGText.h:
              * rendering/RenderStyle.cpp:
              (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
              (WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData):
              (WebCore::StyleRareNonInheritedData::operator==):
              (WebCore::RenderStyle::RenderStyle):
              (WebCore::RenderStyle::inheritFrom):
              (WebCore::RenderStyle::operator==):
              (WebCore::RenderStyle::inheritedNotEqual):
              (WebCore::RenderStyle::diff):
              * rendering/RenderStyle.h:
              * rendering/RenderText.cpp:
              (WebCore::RenderText::setStyle):
              (WebCore::RenderText::setTextInternal):
              * rendering/RenderTreeAsText.cpp:
              (WebCore::write):
              (WebCore::externalRepresentation):
              * rendering/SVGInlineFlowBox.cpp:
              * rendering/SVGInlineFlowBox.h:
              * rendering/SVGRenderTreeAsText.cpp:
              * rendering/SVGRenderTreeAsText.h:
              * rendering/SVGRootInlineBox.cpp:
              * rendering/SVGRootInlineBox.h:
              * rendering/bidi.cpp:
              (WebCore::shouldPreserveNewline):
              (WebCore::RenderBlock::findNextLineBreak):
              * webcore-base.bkl:
              * xml/NativeXPathNSResolver.cpp:
              * xml/NativeXPathNSResolver.h:
              * xml/XPathEvaluator.cpp:
              * xml/XPathEvaluator.h:
              * xml/XPathExpression.cpp:
              * xml/XPathExpression.h:
              * xml/XPathExpressionNode.cpp:
              * xml/XPathExpressionNode.h:
              * xml/XPathFunctions.cpp:
              * xml/XPathFunctions.h:
              * xml/XPathGrammar.y:
              * xml/XPathNSResolver.cpp:
              * xml/XPathNSResolver.h:
              * xml/XPathNamespace.cpp:
              * xml/XPathNamespace.h:
              * xml/XPathParser.cpp:
              * xml/XPathParser.h:
              * xml/XPathPath.cpp:
              * xml/XPathPath.h:
              * xml/XPathPredicate.cpp:
              * xml/XPathPredicate.h:
              * xml/XPathResult.cpp:
              * xml/XPathResult.h:
              * xml/XPathStep.cpp:
              * xml/XPathStep.h:
              * xml/XPathUtil.cpp:
              * xml/XPathUtil.h:
              * xml/XPathValue.cpp:
              * xml/XPathValue.h:
              * xml/XPathVariableReference.cpp:
              * xml/XPathVariableReference.h:
              * xml/XSLImportRule.cpp:
              * xml/XSLImportRule.h:
              * xml/XSLStyleSheet.cpp:
              * xml/XSLStyleSheet.h:
              * xml/XSLTProcessor.cpp:
              * xml/XSLTProcessor.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19855 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d2948ef7
  16. 23 Feb, 2007 1 commit
  17. 22 Feb, 2007 1 commit
  18. 20 Feb, 2007 1 commit
  19. 18 Feb, 2007 1 commit
  20. 17 Feb, 2007 1 commit
    • kjk's avatar
      JavaScriptCore: · 67f5d5a8
      kjk authored
              Reviewed by Adam Roben.
      
              Fix crashes on ARM due to different struct packing. Based on a patch
              by Mike Emmel.
              * kjs/ustring.cpp: compile-time assert to make sure sizeof(UChar) == 2
              * kjs/ustring.h: pack UChar struct to ensure that sizeof(UChar) == 2
              * wtf/Assertions.h: add COMPILE_ASSERT macro for compile-time assertions
      
        WebCore:
      
              Reviewed by Adam Roben.
      
              Fix crashes on ARM due to different struct packing. Based on a patch
              from Mike Emmel.
      
              * platform/DeprecatedString.cpp: compile-time assert to make sure sizeof(DeprecatedChar) == 2
              * platform/DeprecatedString.h: pack DeprecatedChar struct to ensure that
              sizeof(DeprecatedChar) == 2. Move _internalBuffer in DeprecatedStringData
              to the end, to avoid crashes on ARM due to different struct packing.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19679 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      67f5d5a8
  21. 16 Feb, 2007 2 commits
  22. 14 Feb, 2007 1 commit