- 28 Nov, 2007 1 commit
-
-
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
-
- 31 Oct, 2007 2 commits
-
-
aroben authored
* kjs/collector.h: Make HeapType public. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27298 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mjs authored
- allocate numbers in half-size cells, for an 0.5% SunSpider speedup http://bugs.webkit.org/show_bug.cgi?id=15772 We do this by using a single mark bit per two number cells, and tweaking marking. Besides being an 0.5% win overall, this is a 7.1% win on morph. * kjs/collector.cpp: (KJS::): (KJS::Collector::heapAllocate): (KJS::Collector::markStackObjectsConservatively): (KJS::Collector::sweep): * kjs/collector.h: (KJS::SmallCollectorCell::): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27292 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 26 Oct, 2007 1 commit
-
-
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
-
- 24 Oct, 2007 1 commit
-
-
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
-
- 10 Oct, 2007 1 commit
-
-
hausmann authored
includes are needed for INT_MAX, std::auto_ptr and the like. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@26182 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 05 Aug, 2007 1 commit
-
-
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
-
- 25 Jul, 2007 1 commit
-
-
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
-
- 23 Apr, 2007 2 commits
-
-
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
-
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
-
- 20 Mar, 2007 1 commit
-
-
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
-
- 06 Mar, 2007 1 commit
-
-
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
-
- 29 Jul, 2006 1 commit
-
-
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
-
- 09 May, 2006 1 commit
-
-
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
-
- 11 Apr, 2006 2 commits
-
-
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
-
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
-
- 04 Feb, 2006 1 commit
-
-
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
-
- 23 Jan, 2006 1 commit
-
-
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
-
- 12 Jan, 2006 1 commit
-
-
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
-
- 13 Dec, 2005 1 commit
-
-
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
-
- 27 Sep, 2005 1 commit
-
-
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
-
- 14 Jul, 2005 1 commit
-
-
http://bugzilla.opendarwin.org/show_bug.cgi?id=3945ggaren 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
-
- 09 May, 2005 1 commit
-
-
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
-
- 22 Nov, 2004 1 commit
-
-
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
-
- 06 May, 2004 1 commit
-
-
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
-
- 23 Apr, 2004 1 commit
-
-
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
-
- 21 Jan, 2003 2 commits
-
-
darin authored
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3373 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
darin authored
- correct our copyrights to 2003; copyright is based on year of publication, not year worked on git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3367 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 17 Dec, 2002 1 commit
-
-
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
-
- 23 Nov, 2002 1 commit
-
-
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
-
- 20 Nov, 2002 2 commits
-
-
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
-
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
-
- 26 Oct, 2002 1 commit
-
-
darin authored
We no longer do #ifdef APPLE_CHANGES or #ifndef APPLE_CHANGES. * kjs/collector.cpp: * kjs/collector.h: * kjs/grammar.cpp: * kjs/internal.cpp: * kjs/ustring.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2483 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 14 Aug, 2002 1 commit
-
-
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
-
- 09 Aug, 2002 1 commit
-
-
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
-
- 10 May, 2002 1 commit
-
-
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
-
- 08 May, 2002 1 commit
-
-
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
-
- 15 Apr, 2002 1 commit
-
-
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
-
- 21 Mar, 2002 1 commit
-
-
mjs authored
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@798 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 24 Aug, 2001 1 commit
-
-
kocienda authored
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-