1. 28 Nov, 2007 1 commit
    • mjs@apple.com's avatar
      JavaScriptCore: · d342e879
      mjs@apple.com authored
              Reviewed by Darin and Geoff.
      
              - Fixed "Stack overflow crash in JavaScript garbage collector mark pass"
              http://bugs.webkit.org/show_bug.cgi?id=12216
              
              Implement mark stack. This version is not suitable for prime time because it makes a
              huge allocation on every collect, and potentially makes marking of detached subtrees
              slow. But it is an 0.4% SunSpider speedup even without much tweaking.
              
              The basic approach is to replace mark() methods with
              markChildren(MarkStack&) methods. Reachable references are pushed
              onto a mark stack (which encapsulates ignoring already-marked
              references). 
              
              Objects are no longer responsible for actually setting their own
              mark bits, the collector does that. This means that for objects on
              the number heap we don't have to call markChildren() at all since
              we know there aren't any.
              
              The mark phase of collect pushes roots onto the mark stack
              and drains it as often as possible.
              
              To make this approach viable requires a constant-size mark stack
              and a slow fallback approach for when the stack size is exceeded,
              plus optimizations to make the required stack small in common
              cases. This should be doable.
      
              * JavaScriptCore.exp: Export new symbols.
              * JavaScriptCore.xcodeproj/project.pbxproj: Add new file.
              * kjs/collector.cpp:
              (KJS::Collector::heapAllocate):
              (KJS::drainMarkStack): Helper for all of the below.
              (KJS::Collector::markStackObjectsConservatively): Use mark stack.
              (KJS::Collector::markCurrentThreadConservatively): ditto
              (KJS::Collector::markOtherThreadConservatively): ditto
              (KJS::Collector::markProtectedObjects): ditto
              (KJS::Collector::markMainThreadOnlyObjects): ditto
              (KJS::Collector::collect): ditto
              * kjs/collector.h:
              (KJS::Collector::cellMayHaveRefs): Helper for MarkStack.
      
              * kjs/MarkStack.h: Added. The actual mark stack implementation.
              (KJS::MarkStack::push):
              (KJS::MarkStack::pushAtom):
              (KJS::MarkStack::pop):
              (KJS::MarkStack::isEmpty):
              (KJS::MarkStack::reserveCapacity):
      
              Changed mark() methods to markChildren() methods:
              
              * kjs/ExecState.cpp:
              (KJS::ExecState::markChildren):
              * kjs/ExecState.h:
              * kjs/JSWrapperObject.cpp:
              (KJS::JSWrapperObject::markChildren):
              * kjs/JSWrapperObject.h:
              * kjs/array_instance.cpp:
              (KJS::ArrayInstance::markChildren):
              * kjs/array_instance.h:
              * kjs/bool_object.cpp:
              (BooleanInstance::markChildren):
              * kjs/bool_object.h:
              * kjs/error_object.cpp:
              * kjs/error_object.h:
              * kjs/function.cpp:
              (KJS::FunctionImp::markChildren):
              (KJS::Arguments::Arguments):
              (KJS::Arguments::markChildren):
              (KJS::ActivationImp::markChildren):
              * kjs/function.h:
              * kjs/internal.cpp:
              (KJS::GetterSetterImp::markChildren):
              * kjs/interpreter.cpp:
              (KJS::Interpreter::markRoots):
              * kjs/interpreter.h:
              * kjs/list.cpp:
              (KJS::List::markProtectedListsSlowCase):
              * kjs/list.h:
              (KJS::List::markProtectedLists):
              * kjs/object.cpp:
              (KJS::JSObject::markChildren):
              * kjs/object.h:
              (KJS::ScopeChain::markChildren):
              * kjs/property_map.cpp:
              (KJS::PropertyMap::markChildren):
              * kjs/property_map.h:
              * kjs/scope_chain.h:
              * kjs/string_object.cpp:
              (KJS::StringInstance::markChildren):
              * kjs/string_object.h:
      
      JavaScriptGlue:
      
              Reviewed by Darin and Geoff.
      
              Fixups for JavaScriptCore mark stack.
      
              * JSObject.cpp:
              (JSUserObject::Mark):
              * JSObject.h:
              * JSValueWrapper.cpp:
              (JSValueWrapper::JSObjectMark):
              * JSValueWrapper.h:
              * UserObjectImp.cpp:
              * UserObjectImp.h:
      
      WebCore:
      
              Reviewed by Darin and Geoff.
      
              Implement mark stack. This version is not suitable for prime time because it makes a
              huge allocation on every collect, and potentially makes marking of detached subtrees
              slow. But it is a .2% - .4% speedup even without much tweaking.
      
              I replaced mark() methods with markChildren() as usual. One
              optimization that is lost is avoiding walking detached DOM
              subtrees more than once to mark them; since marking is not
              recursive there's no obvious way to bracket operation on the tree
              any more.
      
              * bindings/js/JSDocumentCustom.cpp:
              (WebCore::JSDocument::markChildren):
              * bindings/js/JSNodeCustom.cpp:
              (WebCore::JSNode::markChildren):
              * bindings/js/JSNodeFilterCondition.cpp:
              * bindings/js/JSNodeFilterCondition.h:
              * bindings/js/JSNodeFilterCustom.cpp:
              (WebCore::JSNodeFilter::markChildren):
              * bindings/js/JSNodeIteratorCustom.cpp:
              (WebCore::JSNodeIterator::markChildren):
              * bindings/js/JSTreeWalkerCustom.cpp:
              (WebCore::JSTreeWalker::markChildren):
              * bindings/js/JSXMLHttpRequest.cpp:
              (KJS::JSXMLHttpRequest::markChildren):
              * bindings/js/JSXMLHttpRequest.h:
              * bindings/js/kjs_binding.cpp:
              (KJS::ScriptInterpreter::markDOMNodesForDocument):
              * bindings/js/kjs_binding.h:
              * bindings/js/kjs_events.cpp:
              (WebCore::JSUnprotectedEventListener::markChildren):
              * bindings/js/kjs_events.h:
              * bindings/js/kjs_window.cpp:
              (KJS::Window::markChildren):
              * bindings/js/kjs_window.h:
              * bindings/scripts/CodeGeneratorJS.pm:
              * dom/Node.cpp:
              (WebCore::Node::Node):
              * dom/Node.h:
              * dom/NodeFilter.h:
              * dom/NodeFilterCondition.h:
      
      LayoutTests:
      
              Not reviewed.
              
              - Test cases for "Stack overflow crash in JavaScript garbage collector mark pass"
              http://bugs.webkit.org/show_bug.cgi?id=12216
      
              I have fixed this with the mark stack work.
              
              * fast/js/gc-breadth-2-expected.txt: Added.
              * fast/js/gc-breadth-2.html: Added.
              * fast/js/gc-breadth-expected.txt: Added.
              * fast/js/gc-breadth.html: Added.
              * fast/js/gc-depth-expected.txt: Added.
              * fast/js/gc-depth.html: Added.
              * fast/js/resources/gc-breadth-2.js: Added.
              * fast/js/resources/gc-breadth.js: Added.
              * fast/js/resources/gc-depth.js: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28106 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d342e879
  2. 31 Oct, 2007 2 commits
  3. 26 Oct, 2007 1 commit
    • oliver's avatar
      Make the JSC GC use a separate heap for JSNumbers to get a 0.7-1.4% progression in SunSpider. · 77821e40
      oliver authored
      Reviewed by Maciej
      
              * kjs/CollectorHeapIntrospector.cpp:
              (KJS::CollectorHeapIntrospector::init):
              (KJS::CollectorHeapIntrospector::enumerate):
              * kjs/CollectorHeapIntrospector.h:
              * kjs/collector.cpp:
              (KJS::Collector::recordExtraCost):
              (KJS::Collector::heapAllocate):
              (KJS::Collector::allocate):
              (KJS::Collector::allocateNumber):
              (KJS::Collector::registerThread):
              (KJS::Collector::markStackObjectsConservatively):
              (KJS::Collector::markMainThreadOnlyObjects):
              (KJS::Collector::sweep):
              (KJS::Collector::collect):
              * kjs/collector.h:
              * kjs/internal.h:
              (KJS::NumberImp::operator new):
                Force numbers to be allocated in the secondary heap.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27107 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      77821e40
  4. 24 Oct, 2007 1 commit
    • eseidel's avatar
      2007-10-24 Eric Seidel <eric@webkit.org> · c504bad6
      eseidel authored
              Reviewed by Maciej.
              
              Stop checking isOutOfMemory after every allocation, instead let the collector
              notify all ExecStates if we ever hit this rare condition.
              
              SunSpider claims this was a 2.2% speedup.
      
              * kjs/collector.cpp:
              (KJS::Collector::collect):
              (KJS::Collector::reportOutOfMemoryToAllInterpreters):
              * kjs/collector.h:
              * kjs/nodes.cpp:
              (KJS::TryNode::execute):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27001 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c504bad6
  5. 10 Oct, 2007 1 commit
  6. 05 Aug, 2007 1 commit
    • darin's avatar
      Reviewed by Maciej. · 026b4688
      darin authored
              - fix <rdar://problem/5371862> crash in Dashcode due to Quartz Composer JavaScript garbage collector reentrancy
      
              * API/JSBase.cpp: (JSGarbageCollect): Don't call collector() if isBusy() returns true.
      
              * kjs/collector.h: Added isBusy(), removed the unused return value from collect()
              * kjs/collector.cpp: Added an "operation in progress" flag to the allocator.
              (KJS::Collector::allocate): Call abort() if an operation is already in progress. Set the new flag instead
              of using the debug-only GCLock.
              (KJS::Collector::collect): Ditto.
              (KJS::Collector::isBusy): Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@24874 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      026b4688
  7. 25 Jul, 2007 1 commit
    • mjs's avatar
      JavaScriptCore: · 06ed466c
      mjs authored
              Reviewed by Darin.
              
              - JavaScriptCore part of fix for <rdar://problem/5300291> Optimize GC to reclaim big, temporary objects (like XMLHttpRequest.responseXML) quickly
              
              Also, as a side effect of optimizations included in this patch:
              - 7% speedup on JavaScript iBench
              - 4% speedup on "Celtic Kane" JS benchmark
              
              The basic idea is explained in a big comment in collector.cpp. When unusually 
              large objecs are allocated, we push the next GC closer on the assumption that
              most objects are short-lived.
              
              I also did the following two optimizations in the course of tuning
              this not to be a performance regression:
      
              1) Change UString::Rep to hold a self-pointer as the baseString in
              the unshared case, instead of a null pointer; this removes a
              number of null checks in hot code because many places already
              wanted to use the rep itself or the baseString as appropriate.
              
              2) Avoid creating duplicate StringImpls when creating a
              StringInstance (the object wrapper for a JS string) or calling
              their methods. Since a temporary wrapper object is made every time
              a string method is called, this resulted in two useless extra
              StringImpls being allocated for no reason whenever a String method
              was invoked on a string value. Now we bypass those.
              
              * kjs/collector.cpp:
              (KJS::):
              (KJS::Collector::recordExtraCost): Basics of the extra cost mechanism.
              (KJS::Collector::allocate): ditto
              (KJS::Collector::collect): ditto
              * kjs/collector.h:
              (KJS::Collector::reportExtraMemoryCost): ditto
              * kjs/array_object.cpp:
              (ArrayInstance::ArrayInstance): record extra cost
              * kjs/internal.cpp:
              (KJS::StringImp::toObject): don't create a whole new StringImpl just
              to be the internal value of a StringInstance! StringImpls are immutable
              so there's no point tot his.
              * kjs/internal.h:
              (KJS::StringImp::StringImp): report extra cost
              * kjs/string_object.cpp:
              (KJS::StringInstance::StringInstance): new version that takes a StringImp
              (KJS::StringProtoFunc::callAsFunction): don't create a whole new StringImpl
              just to convert self to string! we already have one in the internal value
              * kjs/string_object.h: report extra cost        
              * kjs/ustring.cpp: All changes to handle baseString being self instead of null in the 
              unshared case.
              (KJS::):
              (KJS::UString::Rep::create):
              (KJS::UString::Rep::destroy):
              (KJS::UString::usedCapacity):
              (KJS::UString::usedPreCapacity):
              (KJS::UString::expandCapacity):
              (KJS::UString::expandPreCapacity):
              (KJS::UString::UString):
              (KJS::UString::append):
              (KJS::UString::operator=):
              (KJS::UString::copyForWriting):
              * kjs/ustring.h:
              (KJS::UString::Rep::baseIsSelf): new method, now that baseString is
              self instead of null in the unshared case we can't just null check.
              (KJS::UString::Rep::data): adjusted as mentioned above
              (KJS::UString::cost): new method to compute the cost for a UString, for
              use by StringImpl.
      
              * kjs/value.cpp:
              (KJS::jsString): style fixups.
              (KJS::jsOwnedString): new method, use this for strings allocated from UStrings
              held by the parse tree. Tracking their cost as part of string cost is pointless,
              because garbage collecting them will not actually free the relevant string buffer.
              * kjs/value.h: prototyped jsOwnedString.
              * kjs/nodes.cpp:
              (StringNode::evaluate): use jsOwnedString as appropriate
              (RegExpNode::evaluate): ditto
              (PropertyNameNode::evaluate): ditto
              (ForInNode::execute): ditto
              
              * JavaScriptCore.exp: Exported some new symbols.
      
      WebCore:
      
              Reviewed by Darin.
      
              - fixed <rdar://problem/5300291> Optimize GC to reclaim big, temporary objects (like XMLHttpRequest.responseXML) quickly
              
              With this plus related JavaScriptCore changes, a number of XMLHttpRequest situations that
              result in huge data sets are addressed, including a single huge responseXML on an XMR done
              repeatedly, or accessing responseText repeatedly during loading of a single large XHR.
              
              In addition to the GC changes in JavaScriptCore, I changed responseText to be stored as a
              KJS::UString instead of a WebCore::String so that the JavaScript responseText value can
              share the buffer (indeed multiple intermediate responseTexts can share its buffer).
      
              
              First of all, here's some manual test cases that will each blow out the process VM without this fix,
              but will settle into decent steady state with.
              
              * manual-tests/memory: Added.
              * manual-tests/memory/MessageUidsAlreadyDownloaded2: Added.
              * manual-tests/memory/string-growth.html: Added.
              * manual-tests/memory/xhr-multiple-requests-responseText.html: Added.
              * manual-tests/memory/xhr-multiple-requests-responseXML.html: Added.
              * manual-tests/memory/xhr-multiple-requests.html: Added.
              * manual-tests/memory/xhr-repeated-string-access.xml: Added.
      
              And here's the actual code changes:
              
              * WebCore.xcodeproj/project.pbxproj:
              * bindings/js/JSDocumentCustom.cpp:
              (WebCore::toJS): Record extra cost if the document is frameless (counting the nodes
              doesn't make a measurable performance difference here in any case I could find)
              * bindings/js/JSXMLHttpRequest.cpp:
              (KJS::JSXMLHttpRequest::getValueProperty): Adjust for the fact that ressponseText
              is now stored as a UString.
              * bindings/js/kjs_binding.cpp:
              (KJS::jsOwnedStringOrNull): New helper.
              * bindings/js/kjs_binding.h:
              * xml/XMLHttpRequest.cpp:
              (WebCore::XMLHttpRequest::getResponseText): It's a UString!
              (WebCore::XMLHttpRequest::getResponseXML): handle the fact that m_responseText
              is a UString.
              (WebCore::XMLHttpRequest::XMLHttpRequest): ditto.
              (WebCore::XMLHttpRequest::abort): call dropProtection
              (WebCore::XMLHttpRequest::didFinishLoading): call dropProtection
              (WebCore::XMLHttpRequest::dropProtection): after removing our GC protection,
              report extra cost of this XHR's responseText buffer.
              * xml/XMLHttpRequest.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@24633 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      06ed466c
  8. 23 Apr, 2007 2 commits
    • mjs's avatar
      Build fix, not reviewed. · 6fba5182
      mjs authored
              * kjs/collector.h: Fix struct/class mismatch.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21050 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6fba5182
    • mjs's avatar
      Reviewed by Darin and Geoff. · db14973d
      mjs authored
              
              - move mark and collectOnMainThreadOnly bits into separate bitmaps
              
              This saves 4 bytes per cell, allowing shrink of cell size to 32,
              which leads to a .8% speed improvement on iBench.
              
              This is only feasible because of all the previous changes on the branch.
      
              * kjs/collector.cpp:
              (KJS::allocateBlock): Adjust for some renames of constants. 
              (KJS::Collector::markStackObjectsConservatively): Now that cells are 32 bytes (64 
              bytes on 64-bit) the cell alignment check can be made much more strict, and also
              obsoletes the need for a % sizeof(CollectorCell) check. Also, we can mask off the low
              bits of the pointer to have a potential block pointer to look for.
              (KJS::Collector::collectOnMainThreadOnly): Use bitmap.
              (KJS::Collector::markMainThreadOnlyObjects): Use bitmap.
              (KJS::Collector::collect): When sweeping, use bitmaps directly to find mark bits.
              * kjs/collector.h:
              (KJS::): Move needed constants and type declarations here.
              (KJS::CollectorBitmap::get): Bit twiddling to get a bitmap value.
              (KJS::CollectorBitmap::set): Bit twiddling to set a bitmap bit to true.
              (KJS::CollectorBitmap::clear): Bit twiddling to set a bitmap bit to false.
              (KJS::CollectorBitmap::clearAll): Clear whole bitmap at one go.
              (KJS::Collector::cellBlock): New operation, compute the block pointer for
              a cell by masking off low bits.
              (KJS::Collector::cellOffset): New operation, compute the cell offset for a
              cell by masking off high bits and dividing (actually a shift).
              (KJS::Collector::isCellMarked): Check mark bit in bitmap
              (KJS::Collector::markCell): Set mark bit in bitmap.
              * kjs/value.h:
              (KJS::JSCell::JSCell): No more bits.
              (KJS::JSCell::marked): Let collector handle it.
              (KJS::JSCell::mark): Let collector handle it.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21047 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      db14973d
  9. 20 Mar, 2007 1 commit
    • mjs's avatar
      Reviewed by Geoff and Adam. · 9f1f97a4
      mjs authored
              
              - make USE(MULTIPLE_THREADS) support more portable
              http://bugs.webkit.org/show_bug.cgi?id=13069
              
              - fixed a threadsafety bug discovered by testing this
              
              - enhanced threadsafety assertions in collector
      
              * API/JSCallbackObject.cpp:
              (KJS::JSCallbackObject::~JSCallbackObject): This destructor can't
              DropAllLocks around the finalize callback, because it gets called
              from garbage collection and we can't let other threads collect!
      
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * kjs/JSLock.cpp:
              (KJS::JSLock::currentThreadIsHoldingLock): Added new function
              to allow stronger assertions than just that the lock is held
              by some thread (you can now assert that the current thread is
              holding it, given the new JSLock design).
              * kjs/JSLock.h:
              * kjs/collector.cpp: Refactored for portability plus added some
              stronger assertions.
              (KJS::Collector::allocate):
              (KJS::currentThreadStackBase):
              (KJS::Collector::registerAsMainThread):
              (KJS::onMainThread):
              (KJS::PlatformThread::PlatformThread):
              (KJS::getCurrentPlatformThread):
              (KJS::Collector::Thread::Thread):
              (KJS::destroyRegisteredThread):
              (KJS::Collector::registerThread):
              (KJS::Collector::markCurrentThreadConservatively):
              (KJS::suspendThread):
              (KJS::resumeThread):
              (KJS::getPlatformThreadRegisters):
              (KJS::otherThreadStackPointer):
              (KJS::otherThreadStackBase):
              (KJS::Collector::markOtherThreadConservatively):
              (KJS::Collector::markStackObjectsConservatively):
              (KJS::Collector::protect):
              (KJS::Collector::unprotect):
              (KJS::Collector::collectOnMainThreadOnly):
              (KJS::Collector::markMainThreadOnlyObjects):
              (KJS::Collector::collect):
              * kjs/collector.h:
              * wtf/FastMalloc.cpp:
              (WTF::fastMallocSetIsMultiThreaded):
              * wtf/FastMallocInternal.h:
              * wtf/Platform.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20351 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9f1f97a4
  10. 06 Mar, 2007 1 commit
    • 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
  11. 29 Jul, 2006 1 commit
    • weinig's avatar
      JavaScriptCore: · ab5f09e0
      weinig authored
              Reviewed by Darin.
      
              - patch for http://bugzilla.opendarwin.org/show_bug.cgi?id=10080
                Adopt pedantic changes from the Unity project to improve 
                cross-compiler compatibility
      
                Changes include:
                * Removing trailing semicolon from namespace braces.
                * Removing trailing comma from last enum declaration.
                * Updating to match style guidelines.
                * Adding missing newline to the end of the file.
                * Turning on gcc warning for missing newline at the end of a source file
                  (GCC_WARN_ABOUT_MISSING_NEWLINE in Xcode, -Wnewline in gcc).
                * Alphabetical sorting of Xcode source list files. 
                * Replace use of non-portable variable-size array with Vector.
                * Use C-style comments instead of C++ comments in files that might
                  be included by either C or C++ files.
      
              * API/JSCallbackConstructor.cpp:
              (KJS::JSCallbackConstructor::construct):
              * API/JSCallbackFunction.cpp:
              (KJS::JSCallbackFunction::callAsFunction):
              * API/JSCallbackObject.cpp:
              (KJS::JSCallbackObject::construct):
              (KJS::JSCallbackObject::callAsFunction):
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * JavaScriptCorePrefix.h:
              * bindings/jni/jni_class.cpp:
              (JavaClass::fieldNamed):
              * bindings/jni/jni_class.h:
              * bindings/jni/jni_instance.cpp:
              (JavaInstance::JavaInstance):
              (JavaInstance::valueOf):
              * bindings/jni/jni_objc.mm:
              (KJS::Bindings::dispatchJNICall):
              * bindings/jni/jni_runtime.cpp:
              (JavaParameter::JavaParameter):
              (JavaArray::JavaArray):
              * bindings/jni/jni_runtime.h:
              * bindings/jni/jni_utility.h:
              * bindings/objc/objc_instance.h:
              * bindings/runtime_array.h:
              * kjs/collector.h:
              * kjs/config.h:
              * kjs/ustring.cpp:
              * wtf/Platform.h:
      
      JavaScriptGlue:
      
              Reviewed by Darin.
      
              - patch for http://bugzilla.opendarwin.org/show_bug.cgi?id=10080
                Adopt pedantic changes from the Unity project to improve 
                cross-compiler compatibility
      
                Changes include:
                * Turning on gcc warning for missing newline at the end of a source file
                  (GCC_WARN_ABOUT_MISSING_NEWLINE in Xcode, -Wnewline in gcc).
      
              * JavaScriptGlue.xcodeproj/project.pbxproj:
      
      WebCore:
      
              Reviewed by Darin.
      
              - patch for http://bugzilla.opendarwin.org/show_bug.cgi?id=10080
                Adopt pedantic changes from the Unity project to improve 
                cross-compiler compatibility
      
                Changes include:
                * Removing trailing semicolon from namespace braces.
                * Removing trailing comma from last enum declaration.
                * Updating to match style guidelines.
                * Adding missing newline to the end of the file.
                * Turning on gcc warning for missing newline at the end of a source file
                  (GCC_WARN_ABOUT_MISSING_NEWLINE in Xcode, -Wnewline in gcc).
                * Alphabetical sorting of Xcode source list files.
                * Use abs() function from <math.h> instead of ABS() macro.
                * Use C-style comments instead of C++ comments in files that might
                  be included by either C or C++ files.
                * Use -numeric_limits<double>::infinity() instead of -HUGE_VAL.
      
              * WebCore+SVG/DOMList.h:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCorePrefix.h:
              * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
              * bindings/js/JSXSLTProcessor.h:
              * bindings/js/kjs_domnode.h:
              (KJS::DOMNode::):
              * bindings/objc/DOMCSS.h:
              (-[DOMCSSValue enum]):
              * bindings/objc/DOMCore.h:
              (-[DOMImplementation createDocument:::]):
              * bindings/objc/DOMEvents.h:
              (-[DOMOverflowEvent enum]):
              * bindings/objc/DOMRange.h:
              * bindings/objc/DOMTraversal.h:
              * bindings/objc/DOMXPath.h:
              (-[DOMXPathNSResolver lookupNamespaceURI:]):
              * bridge/mac/WebCoreFrameBridge.h:
              * bridge/mac/WebCoreKeyboardAccess.h:
              * css/makeprop:
              * css/makevalues:
              * dom/ChildNodeList.h:
              * dom/DocPtr.h:
              * dom/Document.h:
              (WebCore::Document::):
              * dom/DocumentMarker.h:
              (WebCore::DocumentMarker::):
              (WebCore::DocumentMarker::operator==):
              (WebCore::DocumentMarker::operator!=):
              * dom/EventTargetNode.h:
              * dom/KeyboardEvent.h:
              (WebCore::KeyboardEvent::):
              * dom/NameNodeList.h:
              (WebCore::NameNodeList::rootNodeChildrenChanged):
              * dom/QualifiedName.cpp:
              * editing/TypingCommand.h:
              (WebCore::TypingCommand::):
              * editing/UnlinkCommand.h:
              (WebCore::UnlinkCommand::editingAction):
              * html/FormDataList.h:
              (WebCore::FormDataListItem::FormDataListItem):
              (WebCore::FormDataList::appendData):
              * html/HTMLBlockquoteElement.h:
              * html/HTMLDivElement.h:
              * html/HTMLFormElement.h:
              * html/HTMLHRElement.h:
              * html/HTMLHeadingElement.h:
              * html/HTMLMarqueeElement.h:
              * html/HTMLParagraphElement.h:
              * html/HTMLPlugInElement.h:
              * html/HTMLPreElement.h:
              * html/HTMLTokenizer.h:
              (WebCore::HTMLTokenizer::State::):
              * icon/IconDatabase.cpp:
              * icon/SQLStatement.cpp:
              * kcanvas/KCanvasFilters.h:
              (WebCore::):
              (WebCore::KCanvasPoint3F::KCanvasPoint3F):
              (WebCore::KCanvasFilter::KCanvasFilter):
              (WebCore::KCanvasFilter::~KCanvasFilter):
              (WebCore::KCanvasFilterEffect::~KCanvasFilterEffect):
              (WebCore::KCComponentTransferFunction::KCComponentTransferFunction):
              (WebCore::KCanvasFEConvolveMatrix::KCanvasFEConvolveMatrix):
              (WebCore::KCLightSource::KCLightSource):
              (WebCore::KCDistantLightSource::KCDistantLightSource):
              (WebCore::KCPointLightSource::KCPointLightSource):
              (WebCore::KCSpotLightSource::KCSpotLightSource):
              (WebCore::KCanvasFEDiffuseLighting::KCanvasFEDiffuseLighting):
              (WebCore::KCanvasFEDisplacementMap::KCanvasFEDisplacementMap):
              (WebCore::KCanvasFEImage::KCanvasFEImage):
              (WebCore::KCanvasFESpecularLighting::KCanvasFESpecularLighting):
              * kcanvas/RenderSVGImage.h:
              * kcanvas/device/quartz/KRenderingDeviceQuartz.h:
              * ksvg2/css/SVGRenderStyle.h:
              (WebCore::SVGRenderStyle::InheritedFlags::):
              (WebCore::SVGRenderStyle::NonInheritedFlags::):
              * ksvg2/css/SVGRenderStyleDefs.h:
              (WebCore::):
              * ksvg2/events/SVGZoomEvent.h:
              * ksvg2/ksvg.h:
              (WebCore::):
              * ksvg2/misc/KCanvasRenderingStyle.h:
              * ksvg2/misc/SVGImageLoader.h:
              * ksvg2/scripts/make_names.pl:
              * ksvg2/svg/SVGAElement.h:
              * ksvg2/svg/SVGAngle.h:
              * ksvg2/svg/SVGAnimateColorElement.h:
              * ksvg2/svg/SVGAnimateElement.h:
              * ksvg2/svg/SVGAnimateTransformElement.h:
              * ksvg2/svg/SVGAnimatedAngle.h:
              * ksvg2/svg/SVGAnimatedBoolean.h:
              * ksvg2/svg/SVGAnimatedColor.h:
              * ksvg2/svg/SVGAnimatedEnumeration.h:
              * ksvg2/svg/SVGAnimatedInteger.h:
              * ksvg2/svg/SVGAnimatedLength.h:
              * ksvg2/svg/SVGAnimatedLengthList.h:
              * ksvg2/svg/SVGAnimatedNumber.h:
              * ksvg2/svg/SVGAnimatedNumberList.h:
              * ksvg2/svg/SVGAnimatedPathData.h:
              * ksvg2/svg/SVGAnimatedPoints.h:
              * ksvg2/svg/SVGAnimatedPreserveAspectRatio.h:
              * ksvg2/svg/SVGAnimatedRect.h:
              * ksvg2/svg/SVGAnimatedString.h:
              * ksvg2/svg/SVGAnimatedTemplate.h:
              * ksvg2/svg/SVGAnimatedTransformList.h:
              * ksvg2/svg/SVGAnimationElement.cpp:
              (SVGAnimationElement::calculateCurrentValueItem):
              (SVGAnimationElement::calculateRelativeTimePercentage):
              * ksvg2/svg/SVGAnimationElement.h:
              (WebCore::):
              * ksvg2/svg/SVGCircleElement.h:
              * ksvg2/svg/SVGClipPathElement.h:
              * ksvg2/svg/SVGColor.h:
              * ksvg2/svg/SVGComponentTransferFunctionElement.h:
              * ksvg2/svg/SVGCursorElement.h:
              * ksvg2/svg/SVGDOMImplementation.h:
              * ksvg2/svg/SVGDefsElement.h:
              * ksvg2/svg/SVGDescElement.h:
              * ksvg2/svg/SVGDocument.h:
              * ksvg2/svg/SVGElement.h:
              (WebCore::SVGElement::rendererIsNeeded):
              (WebCore::svg_dynamic_cast):
              * ksvg2/svg/SVGElementInstance.h:
              * ksvg2/svg/SVGElementInstanceList.h:
              * ksvg2/svg/SVGEllipseElement.h:
              * ksvg2/svg/SVGExternalResourcesRequired.h:
              * ksvg2/svg/SVGFEBlendElement.h:
              * ksvg2/svg/SVGFEColorMatrixElement.h:
              * ksvg2/svg/SVGFEComponentTransferElement.h:
              * ksvg2/svg/SVGFECompositeElement.h:
              * ksvg2/svg/SVGFEDiffuseLightingElement.h:
              * ksvg2/svg/SVGFEDisplacementMapElement.h:
              * ksvg2/svg/SVGFEDistantLightElement.h:
              * ksvg2/svg/SVGFEFloodElement.h:
              * ksvg2/svg/SVGFEFuncAElement.h:
              * ksvg2/svg/SVGFEFuncBElement.h:
              * ksvg2/svg/SVGFEFuncGElement.h:
              * ksvg2/svg/SVGFEFuncRElement.h:
              * ksvg2/svg/SVGFEGaussianBlurElement.h:
              * ksvg2/svg/SVGFEImageElement.h:
              * ksvg2/svg/SVGFELightElement.h:
              * ksvg2/svg/SVGFEMergeElement.h:
              * ksvg2/svg/SVGFEMergeNodeElement.h:
              * ksvg2/svg/SVGFEOffsetElement.h:
              * ksvg2/svg/SVGFEPointLightElement.h:
              * ksvg2/svg/SVGFESpecularLightingElement.h:
              * ksvg2/svg/SVGFESpotLightElement.h:
              * ksvg2/svg/SVGFETileElement.h:
              * ksvg2/svg/SVGFETurbulenceElement.h:
              * ksvg2/svg/SVGFilterElement.h:
              * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
              * ksvg2/svg/SVGFitToViewBox.h:
              * ksvg2/svg/SVGForeignObjectElement.cpp:
              * ksvg2/svg/SVGForeignObjectElement.h:
              * ksvg2/svg/SVGGElement.h:
              * ksvg2/svg/SVGGradientElement.h:
              * ksvg2/svg/SVGHelper.h:
              (WebCore::):
              * ksvg2/svg/SVGImageElement.h:
              * ksvg2/svg/SVGLangSpace.h:
              * ksvg2/svg/SVGLength.h:
              * ksvg2/svg/SVGLengthList.h:
              * ksvg2/svg/SVGLineElement.h:
              * ksvg2/svg/SVGLinearGradientElement.h:
              * ksvg2/svg/SVGList.h:
              * ksvg2/svg/SVGLocatable.h:
              * ksvg2/svg/SVGMarkerElement.h:
              * ksvg2/svg/SVGMaskElement.h:
              * ksvg2/svg/SVGMatrix.h:
              * ksvg2/svg/SVGNumber.h:
              * ksvg2/svg/SVGNumberList.h:
              * ksvg2/svg/SVGPaint.h:
              * ksvg2/svg/SVGPathElement.h:
              * ksvg2/svg/SVGPathSeg.h:
              * ksvg2/svg/SVGPathSegArc.h:
              * ksvg2/svg/SVGPathSegClosePath.h:
              * ksvg2/svg/SVGPathSegCurvetoCubic.h:
              * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
              * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
              * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
              * ksvg2/svg/SVGPathSegLineto.h:
              * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
              * ksvg2/svg/SVGPathSegLinetoVertical.h:
              * ksvg2/svg/SVGPathSegList.h:
              * ksvg2/svg/SVGPathSegMoveto.h:
              * ksvg2/svg/SVGPatternElement.h:
              * ksvg2/svg/SVGPoint.h:
              * ksvg2/svg/SVGPointList.h:
              * ksvg2/svg/SVGPolyElement.h:
              * ksvg2/svg/SVGPolygonElement.h:
              * ksvg2/svg/SVGPolylineElement.h:
              * ksvg2/svg/SVGPreserveAspectRatio.h:
              * ksvg2/svg/SVGRadialGradientElement.h:
              * ksvg2/svg/SVGRect.h:
              * ksvg2/svg/SVGRectElement.h:
              * ksvg2/svg/SVGSVGElement.h:
              * ksvg2/svg/SVGScriptElement.h:
              * ksvg2/svg/SVGSetElement.h:
              * ksvg2/svg/SVGStopElement.h:
              * ksvg2/svg/SVGStringList.h:
              * ksvg2/svg/SVGStylable.h:
              * ksvg2/svg/SVGStyleElement.h:
              * ksvg2/svg/SVGStyledElement.h:
              (WebCore::SVGStyledElement::rendererIsNeeded):
              (WebCore::SVGStyledElement::canvasResource):
              * ksvg2/svg/SVGStyledLocatableElement.h:
              * ksvg2/svg/SVGStyledTransformableElement.h:
              * ksvg2/svg/SVGSwitchElement.h:
              * ksvg2/svg/SVGSymbolElement.h:
              * ksvg2/svg/SVGTRefElement.h:
              * ksvg2/svg/SVGTSpanElement.h:
              * ksvg2/svg/SVGTests.h:
              * ksvg2/svg/SVGTextContentElement.h:
              * ksvg2/svg/SVGTextElement.h:
              * ksvg2/svg/SVGTextPositioningElement.h:
              * ksvg2/svg/SVGTitleElement.h:
              * ksvg2/svg/SVGTransform.h:
              * ksvg2/svg/SVGTransformList.h:
              * ksvg2/svg/SVGTransformable.h:
              * ksvg2/svg/SVGURIReference.h:
              * ksvg2/svg/SVGUseElement.h:
              * ksvg2/svg/SVGViewElement.h:
              * ksvg2/svg/SVGZoomAndPan.h:
              * ksvg2/svg/svgpathparser.h:
              * page/Frame.h:
              (WebCore::):
              * platform/AffineTransform.h:
              * platform/FontCache.cpp:
              (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
              * platform/FontData.cpp:
              (WebCore::FontData::FontData):
              * platform/FontData.h:
              * platform/TextBox.h:
              (WebCore::TextBox::):
              * platform/Timer.cpp:
              (WebCore::TimerBase::heapPop):
              * platform/mac/FontCacheMac.mm:
              * platform/mac/GlyphMapMac.cpp:
              * platform/mac/WebFontCache.mm:
              (betterChoice):
              * rendering/DeprecatedRenderSelect.cpp:
              (WebCore::DeprecatedRenderSelect::setWidgetWritingDirection):
              * rendering/EllipsisBox.h:
              * rendering/RenderBR.h:
              (WebCore::RenderBR::renderName):
              (WebCore::RenderBR::width):
              * rendering/RenderBlock.h:
              (WebCore::):
              * rendering/RenderFlexibleBox.h:
              * rendering/RenderFlow.h:
              (WebCore::RenderFlow::RenderFlow):
              * rendering/RenderFrame.cpp:
              * rendering/bidi.h:
              * rendering/break_lines.cpp:
      
      WebKit:
      
              Reviewed by Darin.
      
              - patch for http://bugzilla.opendarwin.org/show_bug.cgi?id=10080
                Adopt pedantic changes from the Unity project to improve 
                cross-compiler compatibility
      
                Changes include:
                * Adding missing newline to the end of the file.
                * Turning on gcc warning for missing newline at the end of a source file
                  (GCC_WARN_ABOUT_MISSING_NEWLINE in Xcode, -Wnewline in gcc).
      
              * WebKit.xcodeproj/project.pbxproj:
              * WebView/WebResourcePrivate.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@15696 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ab5f09e0
  12. 09 May, 2006 1 commit
    • mjs's avatar
      JavaScriptCore: · bb863518
      mjs authored
              Rubber stamped by Anders.
              
              - renamed kxmlcore to wtf
              
              kxmlcore --> wtf
              KXMLCore --> WTF
              WKC --> WTF
      
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * bindings/c/c_instance.cpp:
              * bindings/objc/WebScriptObject.mm:
              * kjs/JSImmediate.h:
              * kjs/Parser.cpp:
              * kjs/Parser.h:
              * kjs/array_object.cpp:
              * kjs/collector.cpp:
              (KJS::Collector::registerThread):
              * kjs/collector.h:
              * kjs/config.h:
              * kjs/function.cpp:
              (KJS::isStrWhiteSpace):
              * kjs/function.h:
              * kjs/identifier.cpp:
              * kjs/internal.cpp:
              * kjs/internal.h:
              * kjs/lexer.cpp:
              (Lexer::shift):
              (Lexer::isWhiteSpace):
              (Lexer::isIdentStart):
              (Lexer::isIdentPart):
              * kjs/lookup.cpp:
              * kjs/nodes.cpp:
              * kjs/nodes.h:
              * kjs/number_object.cpp:
              * kjs/object.h:
              * kjs/property_map.cpp:
              * kjs/property_map.h:
              * kjs/string_object.cpp:
              (StringProtoFunc::callAsFunction):
              * kjs/testkjs.cpp:
              (testIsInteger):
              * kjs/ustring.cpp:
              * kjs/ustring.h:
              * kxmlcore: Removed.
              * kxmlcore/AlwaysInline.h: Removed.
              * kxmlcore/Assertions.cpp: Removed.
              * kxmlcore/Assertions.h: Removed.
              * kxmlcore/FastMalloc.cpp: Removed.
              * kxmlcore/FastMalloc.h: Removed.
              * kxmlcore/FastMallocInternal.h: Removed.
              * kxmlcore/Forward.h: Removed.
              * kxmlcore/HashCountedSet.h: Removed.
              * kxmlcore/HashFunctions.h: Removed.
              * kxmlcore/HashMap.h: Removed.
              * kxmlcore/HashSet.h: Removed.
              * kxmlcore/HashTable.cpp: Removed.
              * kxmlcore/HashTable.h: Removed.
              * kxmlcore/HashTraits.h: Removed.
              * kxmlcore/ListRefPtr.h: Removed.
              * kxmlcore/Noncopyable.h: Removed.
              * kxmlcore/OwnArrayPtr.h: Removed.
              * kxmlcore/OwnPtr.h: Removed.
              * kxmlcore/PassRefPtr.h: Removed.
              * kxmlcore/Platform.h: Removed.
              * kxmlcore/RefPtr.h: Removed.
              * kxmlcore/TCPageMap.h: Removed.
              * kxmlcore/TCSpinLock.h: Removed.
              * kxmlcore/TCSystemAlloc.cpp: Removed.
              * kxmlcore/TCSystemAlloc.h: Removed.
              * kxmlcore/UnusedParam.h: Removed.
              * kxmlcore/Vector.h: Removed.
              * kxmlcore/VectorTraits.h: Removed.
              * kxmlcore/unicode: Removed.
              * kxmlcore/unicode/Unicode.h: Removed.
              * kxmlcore/unicode/UnicodeCategory.h: Removed.
              * kxmlcore/unicode/icu: Removed.
              * kxmlcore/unicode/icu/UnicodeIcu.h: Removed.
              * kxmlcore/unicode/posix: Removed.
              * kxmlcore/unicode/qt3: Removed.
              * kxmlcore/unicode/qt4: Removed.
              * kxmlcore/unicode/qt4/UnicodeQt4.h: Removed.
              * pcre/pcre_get.c:
              * wtf: Added.
              * wtf/Assertions.cpp:
              * wtf/Assertions.h:
              * wtf/FastMalloc.cpp:
              (WTF::TCMalloc_ThreadCache::Scavenge):
              (WTF::do_malloc):
              (WTF::do_free):
              (WTF::TCMallocGuard::TCMallocGuard):
              (WTF::malloc):
              (WTF::free):
              (WTF::calloc):
              (WTF::cfree):
              (WTF::realloc):
              * wtf/FastMalloc.h:
              * wtf/FastMallocInternal.h:
              * wtf/Forward.h:
              * wtf/HashCountedSet.h:
              * wtf/HashFunctions.h:
              * wtf/HashMap.h:
              * wtf/HashSet.h:
              * wtf/HashTable.cpp:
              * wtf/HashTable.h:
              * wtf/HashTraits.h:
              * wtf/ListRefPtr.h:
              * wtf/Noncopyable.h:
              * wtf/OwnArrayPtr.h:
              * wtf/OwnPtr.h:
              * wtf/PassRefPtr.h:
              * wtf/RefPtr.h:
              * wtf/TCSystemAlloc.cpp:
              (TCMalloc_SystemAlloc):
              * wtf/Vector.h:
              * wtf/VectorTraits.h:
              * wtf/unicode/UnicodeCategory.h:
              * wtf/unicode/icu/UnicodeIcu.h:
      
      JavaScriptGlue:
      
              Rubber stamped by Anders.
              
              - renamed kxmlcore to wtf
              
              kxmlcore --> wtf
              KXMLCore --> WTF
              WKC --> WTF
      
              * config.h:
              * kxmlcore: Removed.
              * kxmlcore/AlwaysInline.h: Removed.
              * kxmlcore/Assertions.h: Removed.
              * kxmlcore/FastMalloc.h: Removed.
              * kxmlcore/Forward.h: Removed.
              * kxmlcore/HashCountedSet.h: Removed.
              * kxmlcore/HashSet.h: Removed.
              * kxmlcore/Noncopyable.h: Removed.
              * kxmlcore/OwnArrayPtr.h: Removed.
              * kxmlcore/OwnPtr.h: Removed.
              * kxmlcore/PassRefPtr.h: Removed.
              * kxmlcore/Platform.h: Removed.
              * kxmlcore/RefPtr.h: Removed.
              * kxmlcore/Vector.h: Removed.
              * wtf: Added.
      
      WebCore:
      
              Rubber stamped by Anders.
              
              - renamed kxmlcore to wtf
              
              kxmlcore --> wtf
              KXMLCore --> WTF
              WKC --> WTF
      
              * ForwardingHeaders/kxmlcore: Removed.
              * ForwardingHeaders/kxmlcore/AlwaysInline.h: Removed.
              * ForwardingHeaders/kxmlcore/Assertions.h: Removed.
              * ForwardingHeaders/kxmlcore/FastMalloc.h: Removed.
              * ForwardingHeaders/kxmlcore/Forward.h: Removed.
              * ForwardingHeaders/kxmlcore/HashCountedSet.h: Removed.
              * ForwardingHeaders/kxmlcore/HashMap.h: Removed.
              * ForwardingHeaders/kxmlcore/HashSet.h: Removed.
              * ForwardingHeaders/kxmlcore/HashTraits.h: Removed.
              * ForwardingHeaders/kxmlcore/Noncopyable.h: Removed.
              * ForwardingHeaders/kxmlcore/OwnArrayPtr.h: Removed.
              * ForwardingHeaders/kxmlcore/OwnPtr.h: Removed.
              * ForwardingHeaders/kxmlcore/PassRefPtr.h: Removed.
              * ForwardingHeaders/kxmlcore/Platform.h: Removed.
              * ForwardingHeaders/kxmlcore/RefPtr.h: Removed.
              * ForwardingHeaders/kxmlcore/Vector.h: Removed.
              * ForwardingHeaders/wtf: Added.
              * bindings/js/JSHTMLElementWrapperFactory.h:
              * bindings/js/kjs_binding.cpp:
              * bindings/js/kjs_window.h:
              * bindings/objc/DOMImplementationFront.h:
              * bridge/JavaAppletWidget.h:
              * bridge/mac/WebCoreFrameNamespaces.mm:
              * bridge/mac/WebCorePageBridge.mm:
              (initializeLogChannel):
              * bridge/mac/WebCoreStringTruncator.mm:
              * bridge/mac/WebCoreViewFactory.m:
              * config.h:
              * css/css_base.h:
              * css/css_valueimpl.h:
              * css/csshelper.cpp:
              * css/cssparser.h:
              * dom/DOMImplementation.h:
              * dom/Document.h:
              * dom/NamedNodeMap.h:
              * dom/Node.h:
              * dom/NodeList.h:
              * dom/QualifiedName.cpp:
              * dom/Range.h:
              * dom/StyledElement.cpp:
              * dom/dom2_traversalimpl.h:
              * dom/xml_tokenizer.h:
              * editing/RebalanceWhitespaceCommand.cpp:
              * editing/RemoveCSSPropertyCommand.cpp:
              * editing/RemoveNodeAttributeCommand.cpp:
              * editing/RemoveNodeCommand.cpp:
              * editing/RemoveNodePreservingChildrenCommand.cpp:
              * editing/ReplaceSelectionCommand.h:
              * editing/Selection.cpp:
              * editing/SetNodeAttributeCommand.cpp:
              * editing/SplitElementCommand.cpp:
              * editing/SplitTextNodeCommand.cpp:
              * editing/SplitTextNodeContainingElementCommand.cpp:
              * editing/TextIterator.h:
              * editing/htmlediting.h:
              * editing/markup.h:
              * html/CanvasGradient.h:
              * html/CanvasRenderingContext2D.h:
              * html/CanvasStyle.cpp:
              * html/HTMLCollection.h:
              * html/HTMLElementFactory.h:
              * kcanvas/KCanvasFilters.cpp:
              * kcanvas/KCanvasPath.h:
              * kcanvas/RenderPath.cpp:
              * kcanvas/RenderSVGImage.cpp:
              * kcanvas/RenderSVGText.cpp:
              * kcanvas/device/quartz/KCanvasItemQuartz.mm:
              * kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm:
              * kcanvas/device/quartz/QuartzSupport.mm:
              * ksvg2/misc/KSVGTimeScheduler.h:
              * ksvg2/misc/SVGDocumentExtensions.h:
              * ksvg2/scripts/make_names.pl:
              * ksvg2/svg/SVGDOMImplementation.cpp:
              * ksvg2/svg/SVGExternalResourcesRequired.h:
              * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
              * ksvg2/svg/SVGForeignObjectElement.cpp:
              * ksvg2/svg/SVGImageElement.cpp:
              * ksvg2/svg/SVGMaskElement.cpp:
              * ksvg2/svg/SVGStyledElement.cpp:
              * ksvg2/svg/SVGTests.h:
              * ksvg2/svg/SVGTransform.h:
              * ksvg2/svg/SVGTransformable.cpp:
              * kwq/AccessibilityObjectCache.h:
              * kwq/KWQCString.cpp:
              * kwq/KWQFormData.mm:
              * kwq/KWQListBox.mm:
              * kwq/KWQResourceLoader.mm:
              * kwq/KWQTextEdit.mm:
              * loader/Cache.h:
              * loader/CachedObject.h:
              * loader/CachedObjectClientWalker.h:
              * loader/Decoder.h:
              * loader/DocLoader.h:
              * loader/loader.cpp:
              * loader/loader.h:
              * page/DOMWindow.h:
              * page/Frame.h:
              * page/FramePrivate.h:
              * page/FrameTree.cpp:
              * page/Page.cpp:
              * page/Page.h:
              * page/Plugin.h:
              * platform/Arena.cpp:
              * platform/ArrayImpl.h:
              * platform/AtomicString.cpp:
              * platform/CharsetNames.cpp:
              * platform/Color.cpp:
              * platform/DeprecatedPtrListImpl.cpp:
              * platform/DeprecatedValueListImpl.h:
              * platform/FontFallbackList.h:
              * platform/GraphicsContext.h:
              * platform/GraphicsTypes.cpp:
              * platform/Image.h:
              * platform/KURL.cpp:
              * platform/Logging.cpp:
              * platform/Logging.h:
              * platform/PlatformString.h:
              * platform/PlugInInfoStore.h:
              * platform/StreamingTextDecoder.cpp:
              * platform/StreamingTextDecoder.h:
              * platform/String.cpp:
              * platform/StringHash.h:
              * platform/StringImpl.cpp:
              * platform/StringImpl.h:
              * platform/TextEncoding.cpp:
              * platform/Timer.cpp:
              * platform/Timer.h:
              * platform/TransferJob.h:
              * platform/TransferJobInternal.h:
              * platform/mac/BlockExceptions.mm:
              * platform/mac/ColorMac.mm:
              * platform/mac/FontData.mm:
              * platform/mac/KURLMac.mm:
              * platform/mac/QStringMac.mm:
              * platform/mac/SharedTimerMac.cpp:
              * platform/mac/TextEncodingMac.cpp:
              * platform/mac/WebCoreImageRendererFactory.m:
              * platform/mac/WebCoreKeyGenerator.m:
              * platform/mac/WebCoreTextArea.mm:
              * platform/mac/WebCoreTextField.mm:
              * platform/mac/WebTextRendererFactory.h:
              * platform/mac/WebTextRendererFactory.mm:
              * platform/win/TemporaryLinkStubs.cpp:
              (JavaAppletWidget::JavaAppletWidget):
              * rendering/InlineTextBox.cpp:
              * rendering/RenderText.cpp:
              * rendering/RenderTreeAsText.cpp:
              * rendering/bidi.cpp:
              * xml/XSLTProcessor.h:
              * xpath/impl/XPathExpressionNode.h:
              * xpath/impl/XPathParser.h:
              * xpath/impl/XPathPath.h:
              * xpath/impl/XPathUtil.h:
      
      WebKit:
      
              Rubber stamped by Anders.
              
              - renamed kxmlcore to wtf
              
              kxmlcore --> wtf
              KXMLCore --> WTF
              WKC --> WTF
      
              * Misc/WebKitLogging.h:
              * Misc/WebKitLogging.m:
              (initializeLogChannel):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@14256 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bb863518
  13. 11 Apr, 2006 2 commits
    • darin's avatar
      JavaScriptCore: · aaf8b709
      darin authored
              - try to fix Windows build -- HashForward.h was not working
      
              * kxmlcore/HashForward.h: Removed.
      
              * JavaScriptCore.xcodeproj/project.pbxproj: Remove HashForward.h.
              * kjs/collector.h: Remove use of HashForward.h.
              * kxmlcore/HashCountedSet.h: Remove include of HashForward.h, restore
              default arguments.
              * kxmlcore/HashMap.h: Ditto.
              * kxmlcore/HashSet.h: Ditto.
      
      JavaScriptGlue:
      
              - try to fix Windows build
      
              * kxmlcore/HashForward.h: Removed.
      
      WebCore:
      
              - try to fix Windows build
      
              * ForwardingHeaders/kxmlcore/HashForward.h: Removed.
              * dom/xml_tokenizer.h: Include another header instead of HashForward.h.
              * loader/Cache.h: Ditto.
              * page/Page.h: Ditto.
              * platform/TransferJob.h: Ditto.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13830 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      aaf8b709
    • darin's avatar
      JavaScriptCore: · 36d1136a
      darin authored
              Rubber-stamped by John Sullivan.
      
              - switched from a shell script to a makefile for generated files
              - removed lots of unneeded includes
              - added new Forward.h and HashForward.h headers that allow compiling with
                fewer unneeded templates
      
              * DerivedSources.make: Added.
              * generate-derived-sources: Removed.
              * JavaScriptCore.xcodeproj/project.pbxproj: Added new files, changed to use
              DerivedSources.make.
      
              * kxmlcore/Forward.h: Added.
              * kxmlcore/HashForward.h: Added.
      
              * kxmlcore/HashCountedSet.h: Include HashForward for default args.
              * kxmlcore/HashMap.h: Ditto.
              * kxmlcore/HashSet.h: Ditto.
      
              * kjs/object.h:
              * kjs/object.cpp:
              Moved KJS_MAX_STACK into the .cpp file.
      
              * bindings/NP_jsobject.cpp:
              * bindings/c/c_instance.h:
              * bindings/jni/jni_class.h:
              * bindings/jni/jni_runtime.h:
              * bindings/jni/jni_utility.h:
              * bindings/objc/WebScriptObject.mm:
              * bindings/objc/WebScriptObjectPrivate.h:
              * bindings/objc/objc_class.h:
              * bindings/objc/objc_class.mm:
              * bindings/objc/objc_instance.h:
              * bindings/objc/objc_instance.mm:
              * bindings/objc/objc_runtime.mm:
              * bindings/objc/objc_utility.mm:
              * bindings/runtime.h:
              * bindings/runtime_array.cpp:
              * bindings/runtime_array.h:
              * bindings/runtime_method.cpp:
              * bindings/runtime_method.h:
              * bindings/runtime_object.cpp:
              * bindings/runtime_root.h:
              * kjs/JSImmediate.cpp:
              * kjs/Parser.h:
              * kjs/array_object.cpp:
              * kjs/array_object.h:
              * kjs/bool_object.cpp:
              * kjs/bool_object.h:
              * kjs/collector.h:
              * kjs/context.h:
              * kjs/debugger.cpp:
              * kjs/error_object.h:
              * kjs/function_object.h:
              * kjs/internal.h:
              * kjs/lexer.cpp:
              * kjs/math_object.cpp:
              * kjs/math_object.h:
              * kjs/nodes.cpp:
              * kjs/nodes.h:
              * kjs/number_object.cpp:
              * kjs/number_object.h:
              * kjs/object_object.cpp:
              * kjs/operations.cpp:
              * kjs/protected_reference.h:
              * kjs/reference.h:
              * kjs/reference_list.h:
              * kjs/regexp_object.h:
              * kjs/string_object.cpp:
              * kjs/string_object.h:
              * kjs/testkjs.cpp:
              * kjs/value.cpp:
              * kjs/value.h:
              * kxmlcore/HashTable.h:
              * kxmlcore/ListRefPtr.h:
              * kxmlcore/TCPageMap.h:
              * kxmlcore/Vector.h:
              Removed unneeded header includes.
      
      JavaScriptGlue:
      
              Rubber-stamped by John Sullivan.
      
              - added forwarding headers for the new Forward.h and HashForward.h files
      
              * kxmlcore/Forward.h: Added.
              * kxmlcore/HashForward.h: Added.
      
      WebCore:
      
              Rubber-stamped by John Sullivan (except for pbxproj change).
      
              - updated to use the new Forward.h and HashForward.h headers
              - moved the showTree debugging functions out of the WebCore
                namespace so they are easier to call from gdb, and renamed
                the showTree member functions so they don't get in the way;
                now you can do "call showTree(x)" in gdb and it just works
              - removed a lot of unneeded includes
      
              * WebCore.xcodeproj/project.pbxproj: Fixed a lot of paths that
              were not relative to the enclosing group.
      
              * ForwardingHeaders/kxmlcore/Forward.h: Added.
              * ForwardingHeaders/kxmlcore/HashForward.h: Added.
              * bindings/js/JSCanvasRenderingContext2DBase.cpp:
              * bindings/js/JSXMLHttpRequest.cpp:
              * bindings/js/JSXMLHttpRequest.h:
              * bindings/js/JSXSLTProcessor.h:
              * bindings/js/kjs_binding.h:
              * bindings/js/kjs_dom.cpp:
              * bindings/js/kjs_dom.h:
              * bindings/js/kjs_events.cpp:
              * bindings/js/kjs_events.h:
              * bindings/js/kjs_html.cpp:
              * bindings/js/kjs_navigator.cpp:
              * bindings/js/kjs_navigator.h:
              * bindings/js/kjs_proxy.cpp:
              * bindings/js/kjs_traversal.h:
              * bindings/js/kjs_window.cpp:
              * bindings/js/kjs_window.h:
              * bindings/objc/DOM.mm:
              * bindings/objc/DOMCSS.mm:
              * bindings/objc/DOMCore.h:
              * bindings/objc/DOMEvents.mm:
              * bindings/objc/DOMHTML.mm:
              * bindings/objc/DOMImplementationFront.h:
              * bindings/objc/DOMInternal.mm:
              * bindings/objc/DOMUtility.mm:
              * bindings/objc/DOMViews.mm:
              * bridge/BrowserExtension.h:
              * bridge/mac/BrowserExtensionMac.mm:
              * bridge/mac/FrameMac.h:
              * bridge/mac/FrameMac.mm:
              * bridge/mac/WebCoreFrameBridge.mm:
              * bridge/mac/WebCoreFrameNamespaces.mm:
              * bridge/mac/WebCoreJavaScript.mm:
              * bridge/win/PageWin.cpp:
              * css/CSSComputedStyleDeclaration.cpp:
              * css/css_base.h:
              * css/css_ruleimpl.h:
              * css/css_valueimpl.cpp:
              * css/cssparser.cpp:
              * css/cssparser.h:
              * css/cssstyleselector.cpp:
              * css/cssstyleselector.h:
              * dom/AbstractView.h:
              * dom/AtomicStringList.h:
              * dom/Attribute.cpp:
              * dom/Attribute.h:
              * dom/Comment.cpp:
              * dom/ContainerNode.cpp:
              * dom/DOMImplementation.cpp:
              * dom/DOMImplementation.h:
              * dom/Document.cpp:
              * dom/Document.h:
              * dom/Element.h:
              * dom/EventTargetNode.cpp:
              (WebCore::EventTargetNode::dump):
              (WebCore::forbidEventDispatch):
              (WebCore::allowEventDispatch):
              (WebCore::eventDispatchForbidden):
              * dom/EventTargetNode.h:
              (WebCore::EventTargetNode::postDispatchEventHandler):
              * dom/NamedAttrMap.h:
              * dom/Node.cpp:
              (WebCore::Node::showNode):
              (WebCore::Node::showTree):
              (WebCore::Node::showTreeAndMark):
              (showTree):
              * dom/Node.h:
              * dom/NodeList.cpp:
              * dom/NodeList.h:
              * dom/Position.cpp:
              (showTree):
              * dom/Position.h:
              * dom/Range.cpp:
              * dom/Range.h:
              * dom/StyledElement.cpp:
              * dom/StyledElement.h:
              * dom/dom2_eventsimpl.cpp:
              * dom/dom2_eventsimpl.h:
              * dom/dom2_traversalimpl.h:
              * dom/dom_xmlimpl.cpp:
              * dom/xml_tokenizer.cpp:
              * dom/xml_tokenizer.h:
              * editing/AppendNodeCommand.cpp:
              * editing/ApplyStyleCommand.cpp:
              * editing/ApplyStyleCommand.h:
              * editing/BreakBlockquoteCommand.cpp:
              * editing/CompositeEditCommand.cpp:
              * editing/CreateLinkCommand.cpp:
              * editing/DeleteFromTextNodeCommand.cpp:
              * editing/DeleteFromTextNodeCommand.h:
              * editing/DeleteSelectionCommand.cpp:
              * editing/EditCommand.cpp:
              * editing/EditCommand.h:
              * editing/HTMLInterchange.cpp:
              * editing/InsertIntoTextNodeCommand.cpp:
              * editing/InsertIntoTextNodeCommand.h:
              * editing/InsertLineBreakCommand.cpp:
              * editing/InsertNodeBeforeCommand.cpp:
              * editing/InsertParagraphSeparatorCommand.cpp:
              * editing/InsertTextCommand.cpp:
              * editing/JSEditor.cpp:
              * editing/JoinTextNodesCommand.cpp:
              * editing/MergeIdenticalElementsCommand.cpp:
              * editing/ModifySelectionListLevelCommand.cpp:
              * editing/MoveSelectionCommand.cpp:
              * editing/RebalanceWhitespaceCommand.h:
              * editing/RemoveCSSPropertyCommand.h:
              * editing/ReplaceSelectionCommand.cpp:
              * editing/ReplaceSelectionCommand.h:
              * editing/Selection.cpp:
              (WebCore::Selection::formatForDebugger):
              (WebCore::Selection::showTree):
              (showTree):
              * editing/Selection.h:
              * editing/SelectionController.cpp:
              (WebCore::SelectionController::formatForDebugger):
              (WebCore::SelectionController::showTree):
              (showTree):
              * editing/SelectionController.h:
              * editing/TextIterator.cpp:
              * editing/TextIterator.h:
              * editing/TypingCommand.cpp:
              * editing/TypingCommand.h:
              * editing/UnlinkCommand.cpp:
              * editing/VisiblePosition.cpp:
              (WebCore::isEqualIgnoringAffinity):
              (WebCore::VisiblePosition::formatForDebugger):
              (WebCore::VisiblePosition::showTree):
              (showTree):
              * editing/VisiblePosition.h:
              (WebCore::VisiblePosition::VisiblePosition):
              (WebCore::operator==):
              * editing/WrapContentsInDummySpanCommand.cpp:
              * editing/htmlediting.h:
              * editing/markup.cpp:
              * editing/markup.h:
              (WebCore::):
              * editing/visible_units.cpp:
              * html/CanvasGradient.cpp:
              * html/CanvasRenderingContext2D.h:
              * html/CanvasStyle.cpp:
              * html/CanvasStyle.h:
              * html/FormDataList.cpp:
              * html/FormDataList.h:
              * html/HTMLCollection.cpp:
              * html/HTMLCollection.h:
              * html/HTMLDocument.cpp:
              * html/HTMLDocument.h:
              * html/HTMLElement.cpp:
              * html/HTMLElementFactory.cpp:
              * html/HTMLElementFactory.h:
              * html/HTMLFormCollection.cpp:
              * html/HTMLFormElement.cpp:
              * html/HTMLFormElement.h:
              * html/HTMLInputElement.cpp:
              * html/HTMLParser.cpp:
              * html/HTMLSelectElement.cpp:
              * html/HTMLSelectElement.h:
              * html/HTMLTokenizer.cpp:
              * html/HTMLTokenizer.h:
              * html/html_baseimpl.cpp:
              * html/html_headimpl.h:
              * kcanvas/KCanvasCreator.cpp:
              * kcanvas/KCanvasFilters.h:
              * kcanvas/KCanvasPath.h:
              * kcanvas/KCanvasResources.h:
              * kcanvas/KCanvasTreeDebug.cpp:
              * kcanvas/RenderPath.cpp:
              * kcanvas/RenderPath.h:
              * kcanvas/device/KRenderingDevice.h:
              * kcanvas/device/KRenderingPaintServerGradient.h:
              * kcanvas/device/KRenderingPaintServerPattern.h:
              * kcanvas/device/KRenderingPaintServerSolid.h:
              * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
              * kcanvas/device/quartz/KCanvasMaskerQuartz.h:
              * kcanvas/device/quartz/KCanvasResourcesQuartz.h:
              * kcanvas/device/quartz/KCanvasResourcesQuartz.mm:
              * kcanvas/device/quartz/KRenderingPaintServerQuartz.h:
              * khtml/misc/decoder.cpp:
              * khtml/misc/decoder.h:
              * khtml/xsl/XSLStyleSheet.cpp:
              * khtml/xsl/XSLTProcessor.cpp:
              * khtml/xsl/XSLTProcessor.h:
              * ksvg2/css/SVGRenderStyle.h:
              * ksvg2/ecma/GlobalObject.cpp:
              * ksvg2/misc/KCanvasRenderingStyle.h:
              * ksvg2/misc/SVGDocumentExtensions.h:
              * ksvg2/svg/SVGAngle.h:
              * ksvg2/svg/SVGAnimateColorElement.h:
              * ksvg2/svg/SVGAnimatedColor.h:
              * ksvg2/svg/SVGAnimatedLengthList.h:
              * ksvg2/svg/SVGAnimatedNumberList.h:
              * ksvg2/svg/SVGAnimatedString.h:
              * ksvg2/svg/SVGAnimatedTransformList.h:
              * ksvg2/svg/SVGAnimationElement.h:
              * ksvg2/svg/SVGColor.h:
              * ksvg2/svg/SVGCursorElement.h:
              * ksvg2/svg/SVGHelper.h:
              * ksvg2/svg/SVGLength.h:
              * ksvg2/svg/SVGList.h:
              * ksvg2/svg/SVGPaint.h:
              * ksvg2/svg/SVGPathSeg.h:
              * ksvg2/svg/SVGPatternElement.h:
              * ksvg2/svg/SVGSVGElement.cpp:
              * ksvg2/svg/SVGSVGElement.h:
              * ksvg2/svg/SVGStringList.h:
              * ksvg2/svg/SVGTransform.h:
              * kwq/AccessibilityObjectCache.mm:
              * kwq/ClipboardMac.mm:
              * kwq/JavaAppletWidget.mm:
              * kwq/KWQComboBox.mm:
              * kwq/KWQEditCommand.mm:
              * kwq/KWQFileButton.mm:
              * kwq/KWQKHTMLSettings.h:
              * kwq/KWQKSSLKeyGen.mm:
              * kwq/KWQLoader.mm:
              * kwq/KWQPageState.mm:
              * kwq/KWQTextEdit.mm:
              * kwq/RegularExpression.h:
              * kwq/RenderTreeAsText.cpp:
              * kwq/RenderTreeAsText.h:
              * kwq/WebCoreAXObject.mm:
              * loader/Cache.cpp:
              * loader/Cache.h:
              * loader/CachedCSSStyleSheet.cpp:
              * loader/CachedObject.h:
              * loader/CachedScript.cpp:
              * loader/CachedXBLDocument.cpp:
              * loader/CachedXBLDocument.h:
              * loader/CachedXSLStyleSheet.cpp:
              * loader/CachedXSLStyleSheet.h:
              * loader/DocLoader.cpp:
              * page/Frame.cpp:
              * page/Frame.h:
              * page/FramePrivate.h:
              * page/FrameTree.cpp:
              * page/FrameTree.h:
              * page/FrameView.cpp:
              * page/FrameView.h:
              * page/Page.cpp:
              * page/Page.h:
              * page/Plugin.h:
              (WebCore::Plugin::Plugin):
              (WebCore::Plugin::view):
              * platform/Color.cpp:
              * platform/FloatRect.h:
              * platform/Font.cpp:
              * platform/Font.h:
              * platform/FontFamily.cpp:
              * platform/GraphicsContext.cpp:
              * platform/Image.cpp:
              * platform/Image.h:
              * platform/IntRect.h:
              * platform/KURL.cpp:
              * platform/KURL.h:
              * platform/SegmentedString.h:
              * platform/Shared.h:
              * platform/StreamingTextDecoder.cpp:
              * platform/StringImpl.cpp:
              * platform/StringImpl.h:
              * platform/TextEncoding.h:
              * platform/Timer.cpp:
              * platform/Timer.h:
              * platform/TransferJob.cpp:
              * platform/TransferJob.h:
              * platform/TransferJobInternal.h:
              * platform/cairo/GraphicsContextCairo.cpp:
              * platform/cairo/ImageCairo.cpp:
              * platform/cairo/ImageSourceCairo.cpp:
              * platform/image-decoders/gif/GIFImageReader.cpp:
              * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
              * platform/mac/FontFamilyMac.mm:
              * platform/mac/FontMac.mm:
              * platform/mac/ImageMac.mm:
              * platform/mac/TextEncodingMac.cpp:
              * platform/mac/TransferJobMac.mm:
              * platform/win/FontPlatformDataWin.cpp:
              * platform/win/TransferJobWin.cpp:
              * rendering/RenderBlock.cpp:
              * rendering/RenderBlock.h:
              * rendering/RenderBox.cpp:
              * rendering/RenderBox.h:
              * rendering/RenderCanvas.cpp:
              * rendering/RenderCanvas.h:
              * rendering/RenderContainer.cpp:
              * rendering/RenderFlexibleBox.h:
              * rendering/RenderFlow.cpp:
              * rendering/RenderFlow.h:
              * rendering/RenderImage.cpp:
              * rendering/RenderImage.h:
              * rendering/RenderLayer.cpp:
              * rendering/RenderLayer.h:
              * rendering/RenderObject.cpp:
              (showTree):
              * rendering/RenderObject.h:
              * rendering/RenderTableCell.h:
              * rendering/RenderTableSection.h:
              * rendering/RenderText.cpp:
              * rendering/RenderText.h:
              * rendering/RenderTextField.cpp:
              * rendering/RenderTextFragment.h:
              * rendering/RenderTheme.h:
              * rendering/RenderThemeMac.mm:
              * rendering/RenderThemeWin.cpp:
              * rendering/bidi.cpp:
              * rendering/render_form.h:
              * rendering/render_line.cpp:
              (showTree):
              * rendering/render_line.h:
              * rendering/render_list.cpp:
              * rendering/render_replaced.cpp:
              * rendering/render_replaced.h:
              * rendering/render_style.cpp:
              * rendering/render_style.h:
              * xml/xmlhttprequest.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13821 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      36d1136a
  14. 04 Feb, 2006 1 commit
    • mjs's avatar
      JavaScriptCore: · f5bf985d
      mjs authored
              Reviewed by Hyatt.
              
              - change JavaScript collector statistics calls to use HashCountedSet instead
              of CFSet; other misc cleanup
              http://bugzilla.opendarwin.org/show_bug.cgi?id=7072
              
              * kjs/collector.cpp:
              (KJS::Collector::numProtectedObjects): renamed from numReferencedObjects
              (KJS::typeName):
              (KJS::Collector::rootObjectTypeCounts): renamed from rootObjectClasses,
              use HashSet
              * kjs/collector.h:
              (KJS::Collector::isOutOfMemory): Renamed from outOfMemory.
              * kjs/nodes.cpp:
      
      WebCore:
      
              Reviewed by Hyatt.
      
              - change JavaScript collector statistics calls to use HashCountedSet instead
              of CFSet; other misc cleanup
              http://bugzilla.opendarwin.org/show_bug.cgi?id=7072
      
              * kwq/WebCoreJavaScript.h:
              * kwq/WebCoreJavaScript.mm:
              (+[WebCoreJavaScript protectedObjectCount]): Renamed from referencedObjectCounts
              (+[WebCoreJavaScript rootObjectTypeCounts]): Renamed from rootObjectClasses,
              changed from NSSet to NSCountedSet.
      
      WebKit:
      
              Reviewed by Hyatt.
      
              - change JavaScript collector statistics calls to use HashCountedSet instead
              of CFSet; other misc cleanup
              http://bugzilla.opendarwin.org/show_bug.cgi?id=7072
      
              * Misc.subproj/WebCoreStatistics.h:
              * Misc.subproj/WebCoreStatistics.m:
              (+[WebCoreStatistics javaScriptProtectedObjectsCount]): new
              (+[WebCoreStatistics javaScriptRootObjecTypeCounts]): new
              (+[WebCoreStatistics javaScriptRootObjectClasses]): deprecated
              (+[WebCoreStatistics javaScriptReferencedObjectsCount]): deprecated
              (+[WebCoreStatistics javaScriptNoGCAllowedObjectsCount]): Just return 0. Deprecated.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@12559 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f5bf985d
  15. 23 Jan, 2006 1 commit
    • mjs's avatar
      Reviewed by Tim Hatcher. · cdff33bb
      mjs authored
              
              - it's "Franklin Street", not "Franklin Steet"
      
              * kjs/array_instance.h:
              * kjs/array_object.cpp:
              * kjs/array_object.h:
              * kjs/bool_object.cpp:
              * kjs/bool_object.h:
              * kjs/collector.cpp:
              * kjs/collector.h:
              * kjs/completion.h:
              * kjs/context.h:
              * kjs/date_object.cpp:
              * kjs/date_object.h:
              * kjs/debugger.cpp:
              * kjs/debugger.h:
              * kjs/dtoa.h:
              * kjs/error_object.cpp:
              * kjs/error_object.h:
              * kjs/function.cpp:
              * kjs/function.h:
              * kjs/function_object.cpp:
              * kjs/function_object.h:
              * kjs/grammar.y:
              * kjs/identifier.cpp:
              * kjs/identifier.h:
              * kjs/internal.cpp:
              * kjs/internal.h:
              * kjs/interpreter.cpp:
              * kjs/interpreter.h:
              * kjs/lexer.cpp:
              * kjs/lexer.h:
              * kjs/list.cpp:
              * kjs/list.h:
              * kjs/lookup.cpp:
              * kjs/lookup.h:
              * kjs/math_object.cpp:
              * kjs/math_object.h:
              * kjs/nodes.cpp:
              * kjs/nodes.h:
              * kjs/nodes2string.cpp:
              * kjs/number_object.cpp:
              * kjs/number_object.h:
              * kjs/object.cpp:
              * kjs/object.h:
              * kjs/object_object.cpp:
              * kjs/object_object.h:
              * kjs/operations.cpp:
              * kjs/operations.h:
              * kjs/property_map.cpp:
              * kjs/property_map.h:
              * kjs/property_slot.cpp:
              * kjs/property_slot.h:
              * kjs/reference.cpp:
              * kjs/reference.h:
              * kjs/reference_list.cpp:
              * kjs/reference_list.h:
              * kjs/regexp.cpp:
              * kjs/regexp.h:
              * kjs/regexp_object.cpp:
              * kjs/regexp_object.h:
              * kjs/scope_chain.cpp:
              * kjs/scope_chain.h:
              * kjs/simple_number.h:
              * kjs/string_object.cpp:
              * kjs/string_object.h:
              * kjs/testkjs.cpp:
              * kjs/types.h:
              * kjs/ustring.cpp:
              * kjs/ustring.h:
              * kjs/value.cpp:
              * kjs/value.h:
              * kxmlcore/AlwaysInline.h:
              * kxmlcore/ListRefPtr.h:
              * kxmlcore/PassRefPtr.h:
              * kxmlcore/RefPtr.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@12317 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cdff33bb
  16. 12 Jan, 2006 1 commit
    • darin's avatar
      Reviewed by Geoff. · 556ba422
      darin authored
              - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6505
                retire APPLE_CHANGES from JavaScriptCore
      
              * JavaScriptCore.xcodeproj/project.pbxproj: Removed both
              APPLE_CHANGES and HAVE_CONFIG_H from all targets.
      
              * README: Removed. This had obsolete information in it
              and it wasn't clear what to replace it with.
      
              * kjs/collector.h: Removed an APPLE_CHANGES if around something
              that's not really platform-specific (although it does use a
              platform-specific API at the moment).
              * kjs/collector.cpp: Removed a mistaken comment.
      
              * kjs/grammar.y:
              * kjs/internal.cpp:
              * kjs/object.h:
              * kjs/operations.cpp:
              * kjs/operations.h:
              * kjs/ustring.h:
              Use __APPLE__ instead of APPLE_CHANGES for code that should be
              used only on Mac OS X.
      
              * kjs/interpreter.cpp: Removed APPLE_CHANGES ifdef around the include
              of the runtime.h header. Even though that header isn't needed at the
              moment on platforms other than Mac OS X, the conditional stuff should
              be in the header itself, not in this one client.
      
              * kjs/math_object.cpp: (MathFuncImp::callAsFunction): Removed some
              code inside APPLE_CHANGES. I'm pretty sure this code isn't needed on
              any platform where pow is implemented corrrectly according to the IEEE
              standard. If it is needed on some, we can add it back with an appropriate
              #if for the platforms where it is needed.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@12028 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      556ba422
  17. 13 Dec, 2005 1 commit
    • mjs's avatar
      JavaScriptCore: · c4bb2950
      mjs authored
              Reviewed by Eric.
      
      	- added a new HashCountedSet class for the common pattern of mapping items to counts that can change
      
              * kxmlcore/HashCountedSet.h: Added.
              (KXMLCore::HashCountedSet::*): Implemented, on top of HashMap.
              * kxmlcore/HashMap.h:
              (KXMLCore::HashMap::add): New method - does not replace existing value if key already present
      	but otherwise like set().
              (KXMLCore::HashMap::set): Improved comments.
              * kxmlcore/HashMapPtrSpec.h:
              (KXMLCore::HashMap::add): Added to specializations too.
              * JavaScriptCore.xcodeproj/project.pbxproj: Add new  file.
              * kxmlcore/HashFunctions.h: Added include of stdint.h
      
      	- replaced the custom hashtable for values protected from GC with HashCountedSet
      
              * kjs/collector.cpp:
              (KJS::Collector::protect): Moved code here from ProtectedValues::increaseProtectCount
      	since the code is so simple now.
              (KJS::Collector::unprotect): Ditto for ProtectedValues::decreaseProtectCount.
              (KJS::Collector::markProtectedObjects): Updated for new way of doing things, now
      	simpler and safer.
              (KJS::Collector::numReferencedObjects): ditto
              (KJS::Collector::rootObjectClasses): ditto
              * kjs/collector.h: Added protect and unprotect static methods
              * kjs/protect.h:
              (KJS::gcProtect): Updated for removal of ProtectedValues class
              (KJS::gcUnprotect): likewise
              * kjs/protected_values.cpp: Removed.
              * kjs/protected_values.h: Removed.
      
      WebCore:
      
              Reviewed by Eric.
      
              - updated for new HashCountedSet class
      
              * ForwardingHeaders/kxmlcore/HashCountedSet.h: Added forwarding header.
              * khtml/ecma/kjs_binding.cpp: Moved #define to disable pointer specialization higher
      	in the file.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@11561 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c4bb2950
  18. 27 Sep, 2005 1 commit
    • adele's avatar
      JavaScriptCore: · 4f0c9374
      adele authored
              Reviewed by Maciej.
      
              Changed ints to size_t where appropriate.
      
              * kjs/collector.cpp:
              (KJS::Collector::allocate):
              (KJS::Collector::markStackObjectsConservatively):
              (KJS::Collector::collect):
              (KJS::Collector::size):
              (KJS::Collector::numInterpreters):
              (KJS::Collector::numGCNotAllowedObjects):
              (KJS::Collector::numReferencedObjects):
              * kjs/collector.h:
      
      WebCore:
      
              Reviewed by Maciej.
      
              Changing ints to size_t where appropriate.
      
              * kwq/WebCoreJavaScript.h:
              * kwq/WebCoreJavaScript.mm:
              (+[WebCoreJavaScript objectCount]):
              (+[WebCoreJavaScript interpreterCount]):
              (+[WebCoreJavaScript noGCAllowedObjectCount]):
              (+[WebCoreJavaScript referencedObjectCount]):
      
      WebKit:
      
              Reviewed by Maciej.
      
              Changed ints to size_t where appropriate.
      
              * Misc.subproj/WebCoreStatistics.h:
              * Misc.subproj/WebCoreStatistics.m:
              (+[WebCoreStatistics javaScriptObjectsCount]):
              (+[WebCoreStatistics javaScriptInterpretersCount]):
              (+[WebCoreStatistics javaScriptNoGCAllowedObjectsCount]):
              (+[WebCoreStatistics javaScriptReferencedObjectsCount]):
              * WebView.subproj/WebPreferences.m:
              (-[WebPreferences _pageCacheSize]):
              (-[WebPreferences _objectCacheSize]):
              * WebView.subproj/WebPreferencesPrivate.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@10641 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4f0c9374
  19. 14 Jul, 2005 1 commit
    • ggaren's avatar
      -rolled in patches for http://bugzilla.opendarwin.org/show_bug.cgi?id=3945 · 07d4ce61
      ggaren authored
              [PATCH] Safe merges of comments and other trivialities from KDE's kjs
      
              -patch by Martijn Klingens <klingens@kde.org>
      
              * kjs/array_instance.h:
              * kjs/array_object.cpp:
              * kjs/array_object.h:
              * kjs/bool_object.cpp:
              * kjs/bool_object.h:
              * kjs/collector.cpp:
              * kjs/collector.h:
              * kjs/completion.h:
              * kjs/context.h:
              * kjs/date_object.cpp:
              * kjs/date_object.h:
              * kjs/debugger.cpp:
              * kjs/debugger.h:
              * kjs/dtoa.h:
              * kjs/error_object.cpp:
              * kjs/error_object.h:
              * kjs/function.cpp:
              * kjs/function.h:
              * kjs/function_object.cpp:
              * kjs/function_object.h:
              * kjs/grammar.y:
              * kjs/identifier.cpp:
              * kjs/identifier.h:
              * kjs/internal.cpp:
              * kjs/internal.h:
              * kjs/interpreter.cpp:
              * kjs/interpreter.h:
              * kjs/interpreter_map.cpp:
              * kjs/interpreter_map.h:
              * kjs/lexer.cpp:
              * kjs/lexer.h:
              * kjs/list.cpp:
              * kjs/list.h:
              * kjs/lookup.cpp:
              * kjs/lookup.h:
              * kjs/math_object.cpp:
              * kjs/math_object.h:
              * kjs/nodes.cpp:
              * kjs/nodes.h:
              * kjs/nodes2string.cpp:
              * kjs/number_object.cpp:
              * kjs/number_object.h:
              * kjs/object.cpp:
              * kjs/object.h:
              * kjs/object_object.cpp:
              * kjs/object_object.h:
              * kjs/operations.cpp:
              * kjs/operations.h:
              * kjs/property_map.cpp:
              * kjs/property_map.h:
              * kjs/reference.cpp:
              * kjs/reference.h:
              * kjs/reference_list.cpp:
              * kjs/reference_list.h:
              * kjs/regexp.cpp:
              * kjs/regexp.h:
              * kjs/regexp_object.cpp:
              * kjs/regexp_object.h:
              * kjs/scope_chain.cpp:
              * kjs/scope_chain.h:
              * kjs/simple_number.h:
              * kjs/string_object.cpp:
              * kjs/string_object.h:
              * kjs/testkjs.cpp:
              * kjs/types.h:
              * kjs/ustring.cpp:
              * kjs/ustring.h:
              * kjs/value.cpp:
              * kjs/value.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@9768 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      07d4ce61
  20. 09 May, 2005 1 commit
    • darin's avatar
      Reviewed by John. · 3eec11b4
      darin authored
              - turn on conservative GC unconditionally and start on SPI changes to
                eliminate the now-unneeded smart pointers since we don't ref count any more
      
              * kjs/value.h: Removed macros to turn conservative GC on and off.
              Removed ref and deref functions.
              (KJS::ValueImp::ValueImp): Removed non-conservative-GC code path.
              (KJS::ValueImp::isUndefined): Added. New SPI to make it easier to deal with ValueImp directly.
              (KJS::ValueImp::isNull): Ditto.
              (KJS::ValueImp::isBoolean): Ditto.
              (KJS::ValueImp::isNumber): Ditto.
              (KJS::ValueImp::isString): Ditto.
              (KJS::ValueImp::isObject): Ditto.
              (KJS::Value::Value): Removed non-conservative-GC code path and made constructor no
              longer explicit so we can quietly create Value wrappers from ValueImp *; inexpensive with
              conservative GC and eases the transition.
              (KJS::Value::operator ValueImp *): Added. Quietly creates ValueImp * from Value.
              (KJS::ValueImp::marked): Removed non-conservative-GC code path.
      
              * kjs/value.cpp:
              (KJS::ValueImp::mark): Removed non-conservative-GC code path.
              (KJS::ValueImp::isUndefinedOrNull): Added. New SPI to make it easier to deal with ValueImp directly.
              (KJS::ValueImp::isBoolean): Ditto.
              (KJS::ValueImp::isNumber): Ditto.
              (KJS::ValueImp::isString): Ditto.
              (KJS::ValueImp::asString): Ditto.
              (KJS::ValueImp::isObject): Ditto.
              (KJS::undefined): Ditto.
              (KJS::null): Ditto.
              (KJS::boolean): Ditto.
              (KJS::string): Ditto.
              (KJS::zero): Ditto.
              (KJS::one): Ditto.
              (KJS::two): Ditto.
              (KJS::number): Ditto.
      
              * kjs/object.h: Made constructor no longer explicit so we can quietly create Object
              wrappers from ObjectImp *; inexpensive with conservative GC and eases the transition.
              (KJS::Object::operator ObjectImp *): Added. Quietly creates ObjectImp * from Object.
              (KJS::ValueImp::isObject): Added. Implementation of new object-related ValueImp function.
              (KJS::ValueImp::asObject): Ditto.
      
              * kjs/object.cpp:
              (KJS::ObjectImp::setInternalValue): Remove non-conservative-GC code path.
              (KJS::ObjectImp::putDirect): Ditto.
              (KJS::error): Added. Function in the new SPI style to create an error object.
      
              * kjs/internal.h: Added the new number-constructing functions as friends of NumberImp.
              There may be a more elegant way to do this later; what's important now is the new SPI.
      
              * kjs/collector.h:  Remove non-conservative-GC code path and also take out some
              unneeded APPLE_CHANGES.
      
              * bindings/runtime_root.cpp:
              (KJS::Bindings::addNativeReference): Remove non-conservative-GC code path.
              (KJS::Bindings::removeNativeReference): Ditto.
              (RootObject::removeAllNativeReferences): Ditto.
              * bindings/runtime_root.h:
              (KJS::Bindings::RootObject::~RootObject): Ditto.
              (KJS::Bindings::RootObject::setRootObjectImp): Ditto.
              * kjs/collector.cpp:
              (KJS::Collector::allocate): Ditto.
              (KJS::Collector::collect): Ditto.
              (KJS::Collector::numGCNotAllowedObjects): Ditto.
              (KJS::Collector::numReferencedObjects): Ditto.
              (KJS::Collector::rootObjectClasses): Ditto.
              * kjs/internal.cpp:
              (NumberImp::create): Ditto.
              (InterpreterImp::globalInit): Ditto.
              (InterpreterImp::globalClear): Ditto.
              * kjs/list.cpp:
              (KJS::List::markProtectedLists): Ditto.
              (KJS::List::clear): Ditto.
              (KJS::List::append): Ditto.
              * kjs/list.h:
              (KJS::List::List): Ditto.
              (KJS::List::deref): Ditto.
              (KJS::List::operator=): Ditto.
              * kjs/protect.h:
              (KJS::gcProtect): Ditto.
              (KJS::gcUnprotect): Ditto.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@9145 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3eec11b4
  21. 22 Nov, 2004 1 commit
    • mjs's avatar
      Reviewed by Ken. · 3518a369
      mjs authored
      	<rdar://problem/3889696> Enable conservative garbage collection for JavaScript
      
      	* kjs/collector.cpp:
              (KJS::Collector::Thread::Thread):
              (KJS::destroyRegisteredThread):
              (KJS::initializeRegisteredThreadKey):
              (KJS::Collector::registerThread):
              (KJS::Collector::markStackObjectsConservatively):
              (KJS::Collector::markCurrentThreadConservatively):
              (KJS::Collector::markOtherThreadConservatively):
              * kjs/collector.h:
              * kjs/internal.cpp:
              (lockInterpreter):
              * kjs/value.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@8067 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3518a369
  22. 06 May, 2004 1 commit
    • mjs's avatar
      JavaScriptCore: · 25f4c761
      mjs authored
              Reviewed by Darin.
      
      	Enable full conservative GC mode in addition to test mode. When
      	conservative GC is enabled, we now get an 11% speed improvement on
      	the iBench. Also fix some spots I missed before.
      
      	Specific noteworth changes:
      
              * kjs/collector.cpp:
      	(KJS::Collector::markStackObjectsConservatively): Check possible
      	cell pointers for 8-byte aligment and verify they are not 0.
      
              * kjs/protected_values.cpp:
              (KJS::ProtectedValues::increaseProtectCount): Move null-tolerance from here...
              (KJS::ProtectedValues::decreaseProtectCount): ...and here...
              * kjs/protect.h:
              (KJS::gcProtectNullTolerant): ...to here...
              (KJS::gcUnprotectNullTolerant): ...and here, because not all callers need the null
      	tolerance, and doing the check is expensive.
      
              * kjs/protected_values.cpp:
              (KJS::ProtectedValues::computeHash): Replace hash function with a much faster one
      	that is still very good.
      
              * kjs/protect.h:
              (KJS::gcProtect):
              (KJS::gcUnprotect):
              (KJS::ProtectedValue::ProtectedValue):
              (KJS::ProtectedValue::~ProtectedValue):
              (KJS::ProtectedValue::operator=):
              (KJS::ProtectedObject::ProtectedObject):
              (KJS::ProtectedObject::~ProtectedObject):
              (KJS::ProtectedObject::operator=):
              (KJS::ProtectedReference::ProtectedReference):
              (KJS::ProtectedReference::~ProtectedReference):
              (KJS::ProtectedReference::operator=):
              * kjs/protected_values.cpp:
              (KJS::ProtectedValues::getProtectCount):
              (KJS::ProtectedValues::increaseProtectCount):
              (KJS::ProtectedValues::decreaseProtectCount):
              (KJS::ProtectedValues::computeHash):
              * bindings/runtime_root.cpp:
              (KJS::Bindings::addNativeReference):
              (KJS::Bindings::removeNativeReference):
              (RootObject::removeAllNativeReferences):
              * bindings/runtime_root.h:
              (KJS::Bindings::RootObject::~RootObject):
              (KJS::Bindings::RootObject::setRootObjectImp):
              * kjs/collector.cpp:
              (KJS::Collector::allocate):
              (KJS::Collector::collect):
              * kjs/collector.h:
              * kjs/internal.cpp:
              (NumberImp::create):
              (InterpreterImp::globalInit):
              (InterpreterImp::globalClear):
              (InterpreterImp::mark):
              * kjs/list.cpp:
              (KJS::List::derefValues):
              (KJS::List::refValues):
              (KJS::List::append):
              * kjs/object.cpp:
              (KJS::ObjectImp::setInternalValue):
              (KJS::ObjectImp::putDirect):
              * kjs/value.cpp:
              (ValueImp::mark):
              (ValueImp::marked):
              * kjs/value.h:
              (KJS::ValueImp::ValueImp):
              (KJS::ValueImp::~ValueImp):
              (KJS::ValueImp::):
              (KJS::Value::Value):
              (KJS::Value::~Value):
              (KJS::Value::operator=):
      
      WebCore:
      
              Reviewed by Darin.
      
              * khtml/ecma/kjs_events.cpp:
              (JSLazyEventListener::parseCode): Make sure to protect the
      	permanent "event" string object.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6549 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      25f4c761
  23. 23 Apr, 2004 1 commit
    • mjs's avatar
      Reviewed by Darin. · 99f74d99
      mjs authored
      	Implementation of conservative GC, based partly on code from
      	Darin. It's turned off for now, so it shouldn't have any effect on
      	the normal build.
      
              * JavaScriptCore.pbproj/project.pbxproj:
              * kjs/collector.cpp:
              (KJS::Collector::markStackObjectsConservatively):
              (KJS::Collector::markProtectedObjects):
              (KJS::Collector::collect):
              * kjs/collector.h:
              * kjs/protect.h:
              (KJS::gcProtect):
              (KJS::gcUnprotect):
              * kjs/protected_values.cpp: Added.
              (KJS::ProtectedValues::getProtectCount):
              (KJS::ProtectedValues::increaseProtectCount):
              (KJS::ProtectedValues::insert):
              (KJS::ProtectedValues::decreaseProtectCount):
              (KJS::ProtectedValues::expand):
              (KJS::ProtectedValues::shrink):
              (KJS::ProtectedValues::rehash):
              (KJS::ProtectedValues::computeHash):
              * kjs/protected_values.h: Added.
              * kjs/value.cpp:
              (ValueImp::useConservativeMark):
              (ValueImp::mark):
              (ValueImp::marked):
              * kjs/value.h:
              (KJS::ValueImp::):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6472 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      99f74d99
  24. 21 Jan, 2003 2 commits
  25. 17 Dec, 2002 1 commit
    • darin's avatar
      top level: · fc4fd1d0
      darin authored
              Reviewed by Don and Maciej.
      
              * force-clean-timestamp: Trigger a full build since we are setting
      	MACOSX_DEPLOYMENT_TARGET to 10.2, which requires remaking all PFEs.
      
      Tools:
      
              * Scripts/check-copyright: Added.
      
      JavaScriptCore:
      
              Reviewed by Don and Maciej.
      
      	- fixed 3129115 -- need Apple copyright added to open source documents
      
      	* tons of files: Added our copyright to files we modified, and updated all to standard format.
      
      	- other changes
      
              * JavaScriptCore.pbproj/project.pbxproj: Set MACOSX_DEPLOYMENT_TARGET to 10.2.
      	Also removed completion.cpp.
              * kjs/completion.cpp: Removed.
              * kjs/completion.h: Made the Completion constructor inline.
      
              * kjs/grammar.y: Removed an obsolete "pretend ifdef". No need to put these in APPLE_CHANGES now.
      
      WebFoundation:
      
              Reviewed by Don and Maciej.
      
              * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
              * WebFoundation.pbproj/project.pbxproj: Set MACOSX_DEPLOYMENT_TARGET to 10.2.
      
      WebCore:
      
              Reviewed by Don and Maciej.
      
      	- fixed 3129115 -- need Apple copyright added to open source documents
      
      	* tons of files: Added copyright message to files we modified and
      	standardized format of copyrights too.
      
      	- fixed 3129235 -- assert in LRUList visiting apple.com if "Display images" preference is off
      
              * khtml/misc/loader.cpp:
              (Cache::getLRUListFor): Use the first list for 0-sized objects.
              (Cache::removeFromLRUList): Allow 0-sized objects.
      
      	- other changes
      
              * khtml/rendering/render_style.h: Remove bogus unused private constructor.
      
              * kwq/KWQFont.h: Added copy constructor and assignment operator.
              * kwq/KWQFont.mm:
              (QFont::QFont): Copy constructor now retains the NSFont. The old version didn't which could
      	cause retain/release problems.
              (QFont::operator=): Retain the new NSFont and release the old one.
      
              * WebCore.pbproj/project.pbxproj: Set MACOSX_DEPLOYMENT_TARGET to 10.2.
      
      WebKit:
      
              Reviewed by Don and Maciej.
      
              * WebView.subproj/WebUserAgentSpoofTable.gperf: Added a couple of new domains to the list we
      	spoof as Mac IE, and added comments.
              * WebView.subproj/WebUserAgentSpoofTable.c: Regenerated.
      
              * WebKit.pbproj/project.pbxproj: Set MACOSX_DEPLOYMENT_TARGET to 10.2
      
      WebBrowser:
      
              Reviewed by Don and Maciej.
      
      	- fixed 3106686 -- Remove "world leak" debugging window before beta
      
              * Test/PageLoadTestController.m:
              (-[PageLoadTestController windowDidLoad]): (Not part of the bug fix.) Changed the combo
      	box so it automatically sizes to the number of pltsuite files so we don't have to edit
      	the nib all the time.
              (-[PageLoadTestController anyWindowWillClose:]): Don't do any world leak test when the
      	window closes. The one in the page load test window is still there.
      
              * Debug/DebugUtilities.m: (-[NSApplication validate_toggleAlwaysCheckForWorldLeaks:]):
      	Don't enable or check the debug menu item at all. Put an ifdef in so we can turn it on later.
      
      	- fixed 3124310 -- remove "app refuses to launch" code before shipping
      
              * main.m: (main): Remove all the licensing code.
      
      	- other changes
      
              * BrowserNSNetServiceExtras.m: Made all locally-defined-and used functions static
      	so we would know if any were unused and for cleanliness.
              (-[NSNetService hostName:andPort:]): Remove some silly assertions.
              (decode_name): Change printf for errors to ERROR.
              (decode_srv): Ditto.
      	(decode_txt): Removed because it's unused.
              (skip_question): Ditto.
              (MyDictionaryKeyHashCallBack): Removed silly assertion.
              (MyCreateCFDictionaryFromTXT): Ditto.
      
              * WebBrowser.pbproj/project.pbxproj: Set MACOSX_DEPLOYMENT_TARGET to 10.2
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3098 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fc4fd1d0
  26. 23 Nov, 2002 1 commit
    • darin's avatar
      JavaScriptCore: · ff399e06
      darin authored
      	- replaced List class with a vector rather than a linked list, changed it
      	to use a pool of instances instead of all the nodes allocated off of the
      	heap; gives 10% gain on iBench
      
              * kjs/list.h: Complete rewrite.
              * kjs/list.cpp: Ditto.
      
              * kjs/array_object.cpp: (compareWithCompareFunctionForQSort): Go back to
      	doing a clear and two appends here. Fast with the new list implementation.
      
              * kjs/collector.h: Remove _COLLECTOR hack and just make rootObjectClasses
      	return a const void *.
              * kjs/collector.cpp: Remove _COLLECTOR hack, and various other minor tweaks.
      
      WebCore:
      
              * khtml/ecma/kjs_window.cpp: Remove _COLLECTOR hack.
      
              * kwq/WebCoreJavaScript.h:
              * kwq/WebCoreJavaScript.mm:
              (+[WebCoreJavaScript rootObjectClasses]):
      	Update for name change -- root object classes, not all live object classes.
      
              * force-js-clean-timestamp: Make sure we don't have more build problems.
      
      WebKit:
      
              * Misc.subproj/WebCoreStatistics.h:
              * Misc.subproj/WebCoreStatistics.m:
              (+[WebCoreStatistics javaScriptRootObjectClasses]):
      	Update for name change -- root object classes, not all live object classes.
      
      WebBrowser:
      
              * Debug/CacheController.m: (-[CacheController refreshJavaScriptStatisticsMatrix]):
      	Update for name change -- root object classes, not all live object classes.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2843 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ff399e06
  27. 20 Nov, 2002 2 commits
    • mjs's avatar
      Fixed the two most obvious problems with the new GC for another 6% · 3d0d1816
      mjs authored
      	improvement.
      
              * kjs/collector.cpp:
              (Collector::allocate): Don't bother doing the bit tests on a bitmap word if
      	all it's bits are on.
              (Collector::collect): Track memoryFull boolean.
              * kjs/collector.h: Inlined outOfMemory since it was showing up on profiles.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2781 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3d0d1816
    • mjs's avatar
      JavaScriptCore: · 6d32b07d
      mjs authored
      	Rewrote garbage collector to make blocks of actual memory instead
      	of blocks of pointers. 7% improvement on JavaScript
      	iBench. There's still lots of room to tune the new GC, this is
      	just my first cut.
      
              * kjs/collector.cpp:
              (Collector::allocate):
              (Collector::collect):
              (Collector::size):
              (Collector::outOfMemory):
              (Collector::finalCheck):
              (Collector::numGCNotAllowedObjects):
              (Collector::numReferencedObjects):
              (Collector::liveObjectClasses):
              * kjs/collector.h:
              * kjs/function.cpp:
              (ActivationImp::ActivationImp):
              * kjs/function.h:
      
      WebCore:
      
              * force-js-clean-timestamp: Work around PB lameness yet again.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2779 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6d32b07d
  28. 26 Oct, 2002 1 commit
  29. 14 Aug, 2002 1 commit
    • mjs's avatar
      JavaScriptCore: · 73e1b130
      mjs authored
      	Add the ability to determine the classes of live JavaScript
      	objects, to help with leak fixing.
      
              * kjs/collector.h, kjs/collector.cpp:
              (Collector::liveObjectClasses):
      
      WebCore:
      
      	Add the ability to determine the classes of live JavaScript
      	objects, to help with leak fixing.
      
              * kwq/WebCoreJavaScript.h:
              * kwq/WebCoreJavaScript.mm:
              (+[WebCoreJavaScript liveObjectClasses]):
      
      WebKit:
      
      	Add the ability to determine the classes of live JavaScript
      	objects, to help with leak fixing.
      
              * Misc.subproj/WebCoreStatistics.h:
              * Misc.subproj/WebCoreStatistics.m:
              (+[WebCoreStatistics javaScriptLiveObjectClasses]):
      
      WebBrowser:
      
      	Add display of classes of live JavaScript objects to Caches
      	window, to help with leak fixing.
      
              * Debug/CacheController.h:
              * Debug/CacheController.m:
              (-[CacheController refreshJavaScriptStatisticsMatrix]):
              * Debug/CacheController.nib:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1811 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      73e1b130
  30. 09 Aug, 2002 1 commit
    • mjs's avatar
      - fixed 2948835 - JavaScriptCore locking is too fine grained, makes it too slow · 439e9051
      mjs authored
      	* kjs/collector.cpp:
              (Collector::allocate):
              (Collector::collect):
              (Collector::finalCheck):
              (Collector::numInterpreters):
              (Collector::numGCNotAllowedObjects):
              (Collector::numReferencedObjects):
              * kjs/collector.h:
              * kjs/internal.cpp:
              (initializeInterpreterLock):
              (lockInterpreter):
              (unlockInterpreter):
              (Parser::parse):
              (InterpreterImp::InterpreterImp):
              (InterpreterImp::clear):
              (InterpreterImp::evaluate):
              * kjs/value.cpp:
              (ValueImp::ValueImp):
              (ValueImp::setGcAllowed):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1789 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      439e9051
  31. 10 May, 2002 1 commit
    • mjs's avatar
      Reviewed by: Ken Kocienda and Darin Adler · a59eaef8
      mjs authored
      	Fixed the following bug:
      
      	Radar 2890573 - JavaScriptCore needs to be thread-safe
      
      	Actually this is only a weak form of thread-safety - you can safely
      	use different interpreters from different threads at the same
      	time. If you try to use a single interpreter object from multiple
      	threads, you need to provide your own locking.
      
      	* kjs/collector.h, kjs/collector.cpp:
      	(Collector::lock, Collector::unlock): Trivial implementation of a
      	recursive mutex.
      	(Collector::allocate): Lock around the body of this function.
      	(Collector::collect): Likewise.
      	(Collector::finalCheck): Likewise.
      	(Collector::numInterpreters): Likewise.
      	(Collector::numGCNotAllowedObjects): Likewise.
      	(Collector::numReferencedObjects): Likewise.
      	* kjs/internal.cpp:
      	(Parser::parse): use a mutex to lock around the whole parse, since
      	it uses a bunch of global state.
      	(InterpreterImp::InterpreterImp): Grab the Collector lock here,
      	both the mutually exclude calls to the body of this function, and
      	to protect the s_hook static member which the collector pokes at.
      	(InterpreterImp::clear): Likewise.
      	* kjs/ustring.cpp:
      	(statBufferKeyCleanup, statBufferKeyInit, UString::ascii): Convert
      	use of static variable
      	* kjs/value.cpp:
      	(ValueImp::ValueImp, ValueImp::mark, ValueImp::marked,
      	ValueImp::setGcAllowed): Grab the GC lock around any flag changes.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1126 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a59eaef8
  32. 08 May, 2002 1 commit
    • darin's avatar
      * kjs/collector.h: · 52b49436
      darin authored
      	* kjs/collector.cpp:
      	(Collector::numInterpreters):
      	(Collector::numGCNotAllowedObjects):
      	(Collector::numReferencedObjects):
      	Add three new functions so we can see a bit more about leaking JavaScriptCore.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1112 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      52b49436
  33. 15 Apr, 2002 1 commit
    • darin's avatar
      Merged KDE 3.0 final code in and: · b70665a4
      darin authored
      JavaScriptCore:
      
      	* kjs/internal.cpp:
      	* kjs/property_map.cpp:
      	* kjs/ustring.h:
      	Removed some unneeded <config.h> includes so we are more similar
      	to the real KDE sources.
      
      	Merged changes from KDE 3.0 final and did some build fixes.
      
      	* JavaScriptCore.pbproj/project.pbxproj: Added nodes2string.cpp.
      
      	* kjs/grammar.*: Regenerated.
      	* kjs/*.lut.h: Regenerated.
      
      WebCore:
      
      	* src/kdelibs/khtml/rendering/render_text.cpp: (TextSlave::printDecoration):
      	Remove some minor gratuitous diffs vs. KDE.
      
      	* src/kdelibs/khtml/rendering/render_text.cpp: (TextSlave::printDecoration):
              Richard updated to reflect changes in KDE.
      
      	* src/kdelibs/khtml/css/css_valueimpl.cpp:
      	(FontFamilyValueImpl::FontFamilyValueImpl): Fix comment.
      	* src/kdelibs/khtml/css/cssstyleselector.cpp: Remove some gratuitous diffs vs. KDE.
      	* src/kdelibs/khtml/html/html_objectimpl.cpp:
      	(HTMLEmbedElementImpl::parseAttribute): Remove unneeded copy from KWQ's early days.
      	* src/kdelibs/khtml/html/html_tableimpl.cpp:
      	(HTMLTableElementImpl::parseAttribute),
      	(HTMLTablePartElementImpl::parseAttribute): Remove unneeded copy from KWQ's early days.
      	* src/kdelibs/khtml/html/htmltokenizer.cpp: (HTMLTokenizer::processToken): Redo the
      	APPLE_CHANGES ifdef here.
      	* src/kdelibs/khtml/khtmlpart_p.h: Update to latest kde.
      	* src/kdelibs/khtml/khtmlview.cpp: (KHTMLView::KHTMLView): Add ifdef APPLE_CHANGES.
      	(KHTMLView::~KHTMLView): Add ifdef APPLE_CHANGES.
      	(KHTMLView::print): Remove code left in here during merge process.
      	* src/kwq/KWQKHTMLPart.mm: Remove unused setFontSizes(), fontSizes(), and
      	resetFontSizes(). After the merge is landed, remove more.
      	* src/libwebcore.exp: Export updateStyleSelector() for WebKit.
      
      	Fix text to it displays at the right font size.
      
      	* src/kdelibs/khtml/css/cssstyleselector.cpp:
      	(CSSStyleSelector::computeFontSizes): Apply the same SCREEN_RESOLUTION hack here
      	that we do elsewhere.
      	* src/kdelibs/khtml/rendering/font.cpp: (Font::width): Use kMin instead of max (oops).
      	(Font::update): Turn off font database chicanery.
      	* src/kwq/KWQKHTMLPart.mm: (KHTMLPart::zoomFactor): Use zoom factor 100, not 1.
      
      	More fixes so text displays (still at wrong font size).
      
      	* src/kdelibs/khtml/rendering/font.cpp: (max): New helper.
      	(Font::drawText): Simplified implementation for now.
      	(Font::width): Simplified implementation for now.
      	* src/kwq/KWQColorGroup.mm: Reinstated QCOLOR_GROUP_SIZE.
      
      	* src/kwq/qt/qfontmetrics.h: Removed charWidth and changed _width to take QChar *.
      	* src/kwq/KWQFontMetrics.mm: Removed charWidth and changed _width to take QChar *.
      
      	Merged changes from KDE 3.0 final. Other fixes to get things compiling.
      
      	* src/kdelibs/khtml/css/css_valueimpl.cpp:
      	(CSSStyleDeclarationImpl::setProperty): Fix unused variable.
      	* src/kdelibs/khtml/khtmlview.cpp: (KHTMLView::contentsContextMenuEvent):
      	Fix unused variable.
      	* src/kdelibs/khtml/rendering/font.cpp: (Font::drawText), (Font::width),
      	(Font::update): Disable special "nsbp" logic for now. We can reenable it
      	if necessary.
      	* src/kdelibs/khtml/rendering/render_replaced.cpp: Fix mismerge.
      	* src/kdelibs/khtml/rendering/render_text.cpp: (RenderText::nodeAtPoint):
      	Fix unused variable.
      	* src/kwq/KWQApplication.mm: (QDesktopWidget::width), (QApplication::desktop):
      	Fix mismerge.
      	* src/kwq/KWQColorGroup.mm: Fix QCOLOR_GROUP_SIZE.
      	* src/kwq/KWQFontMetrics.mm: (QFontMetrics::lineSpacing): New.
      	(QFontMetrics::width): Remove unused optimization.
      	* src/kwq/qt/qfontmetrics.h: Add lineSpacing().
      
              Merged changes from previous merge pass.
      
              2002-03-25  Darin Adler  <darin@apple.com>
      
              Last bit of making stuff compile and link. Probably will drop the merge now
              and take it up again when it's time to merge in KDE 3.0 final.
      
      	* src/kwq/KWQEvent.mm: (QFocusEvent::reason): New.
      	* src/kwq/KWQPainter.mm: (QPainter::drawText): New overload.
      
              2002-03-25  Darin Adler  <darin@apple.com>
      
      	* src/kdelibs/khtml/rendering/font.cpp: (Font::width): Make it call _width so we
              don't lose the optimization.
      
      	* src/kwq/KWQApplication.mm: (QDesktopWidget::screenNumber): New.
      	(QDesktopWidget::screenGeometry): New.
              (QApplication::style): New.
      	* src/kwq/KWQColorGroup.mm: (QColorGroup::highlight): New.
      	(QColorGroup::highlightedText): New.
      	* src/kwq/KWQFont.mm: (QFont::setPixelSize): New.
      	* src/kwq/KWQFontMetrics.mm: (QFontMetrics::charWidth): New.
      	* src/kwq/KWQKGlobal.mm: (KGlobal::locale): Implement.
              (KLocale::KLocale): New.
      	(KLocale::languageList): New.
      	* src/kwq/KWQKHTMLPart.mm: (KHTMLPart::sheetUsed): New.
      	(KHTMLPart::setSheetUsed): New.
              (KHTMLPart::zoomFactor): New.
      	* src/kwq/KWQKHTMLSettings.mm: (KHTMLSettings::mediumFontSize): New.
      	* src/kwq/KWQScrollView.mm: (QScrollView::childX): New.
              (QScrollView::childY): New.
      
      	* src/kwq/qt/qapplication.h: style() returns a QStyle &.
      	* src/kwq/qt/qpalette.h: Add Highlight and HighlightedText.
      
              2002-03-24  Darin Adler  <darin@apple.com>
      
              More compiling. Still won't link.
      
      	* src/kdelibs/khtml/khtmlview.cpp: Disable printing and drag and drop code.
      	* src/kdelibs/khtml/rendering/render_text.cpp: (TextSlave::printDecoration):
              Temporarily turn off our smarter underlining since it relies on access to the
              string, and TextSlave doesn't have that any more.
      	(RenderText::nodeAtPoint): Get rid of a workaround we don't need any more for
              a bug that was fixed by KDE folks.
      	* src/kwq/KWQApplication.mm: (QApplication::desktop): Make the desktop be a
              QDesktopWidget.
      	* src/kwq/qt/qnamespace.h: Add MetaButton.
      	* src/kwq/qt/qtooltip.h: Add a maybeTip virtual function member and a virtual
              destructor.
      
              2002-03-24  Darin Adler  <darin@apple.com>
      
              Some fixes to get more stuff to compile.
      
      	* src/kdelibs/khtml/ecma/kjs_dom.cpp: (DOMDocument::getValueProperty):
              Don't try to look at the private m_bComplete to display "complete". Just do
              "loading" and "loaded".
              * src/kdelibs/khtml/khtmlpart_p.h: #ifdef this all out for APPLE_CHANGES.
      	* src/kdelibs/khtml/rendering/font.cpp: (Font::update): Add an explicit cast to
              int to avoid float -> int warning.
      	* src/kdelibs/khtml/rendering/render_table.cpp: (RenderTable::calcColMinMax):
              Add an explicit cast to int to avoid uint compared with int warning.
      	* src/kdelibs/khtml/xml/dom_docimpl.cpp: (DocumentImpl::recalcStyleSelector):
              Use sheetUsed() and setSheetUsed() functions on KHTMLPart intead of getting
              at private fields the way the real KDE code does.
      
              * src/kwq/KWQKHTMLPart.h: Declare zoomFactor(), sheetUsed(), and setSheetUsed().
      	* src/kwq/KWQStyle.h: Add PM_DefaultFramWidth as another metric.
      	* src/kwq/kdecore/klocale.h: Add languageList().
      	* src/kwq/khtml/khtml_settings.h: Add mediumFontSize().
      	* src/kwq/qt/qapplication.h: Add style() and QDesktopWidget.
      	* src/kwq/qt/qevent.h: Add reason().
      	* src/kwq/qt/qfont.h: Add setPixelSize(int).
      	* src/kwq/qt/qfontmetrics.h: Add charWidth() and _charWidth() functions.
      	* src/kwq/qt/qpainter.h: Add drawText() overload with position parameter.
      	* src/kwq/qt/qpalette.h: Add highlight() and highlightedText().
      	* src/kwq/qt/qscrollview.h: Add childX() and childY().
      
      	* src/kwq/KWQApplication.mm: Change KWQDesktopWidget to QDesktopWidget.
      
      WebKit:
      
      	* WebView.subproj/IFPreferences.h:
      	* WebView.subproj/IFPreferences.mm: (+[IFPreferences load]): Remove the old
      	WebKitFontSizes preference.
      	(-[IFPreferences mediumFontSize]), (-[IFPreferences setMediumFontSize:]): New.
      
      	* WebView.subproj/IFWebView.mm: (-[IFWebView reapplyStyles]): Call
      	updateStyleSelector() instead of recalcStyle().
      
              Merged changes from previous merge branch.
      
              2002-03-25  Darin Adler  <darin@apple.com>
      
      	* WebView.subproj/IFPreferences.mm: (+[IFPreferences load]):
              Add WebKitMediumFontSizePreferenceKey.
      
      WebBrowser:
      
      	* Preferences.subproj/TextPreferences.m: (-[TextPreferences defaultFontSize]),
      	(-[TextPreferences setDefaultFontSize:]): Just get and set the new mediumFontSize
      	preference rather than doing the whole fontSizes preference dance.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1024 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b70665a4
  34. 21 Mar, 2002 1 commit
  35. 24 Aug, 2001 1 commit