Refactoring of the custom allocation framework
authorossy@webkit.org <ossy@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 20 Jan 2011 16:30:54 +0000 (16:30 +0000)
committerossy@webkit.org <ossy@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 20 Jan 2011 16:30:54 +0000 (16:30 +0000)
https://bugs.webkit.org/show_bug.cgi?id=49897

Patch by Zoltan Horvath <zoltan@webkit.org> on 2011-01-20
Reviewed by Csaba Osztrogonác.

Source/JavaScriptCore:

Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
equivalent macro implementation at the necessary places.

* wtf/FastAllocBase.h: Turn FastAllocBase's implementation into a macro.

Source/WebCore:

Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
equivalent macro implementation at the necessary places.

Source/WebKit:

Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
equivalent macro implementation at the necessary places.

Source/WebKit2:

Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
equivalent macro implementation at the necessary places.

Tools:

Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
equivalent macro implementation at the necessary places.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76248 268f45cc-cd09-0410-ab3c-d52691b4dbfc

450 files changed:
Source/JavaScriptCore/API/JSClassRef.h
Source/JavaScriptCore/API/JSObjectRef.cpp
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/assembler/LinkBuffer.h
Source/JavaScriptCore/bytecode/CodeBlock.h
Source/JavaScriptCore/bytecode/Instruction.h
Source/JavaScriptCore/bytecode/SamplingTool.h
Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h
Source/JavaScriptCore/bytecompiler/RegisterID.h
Source/JavaScriptCore/interpreter/CachedCall.h
Source/JavaScriptCore/interpreter/Interpreter.h
Source/JavaScriptCore/interpreter/Register.h
Source/JavaScriptCore/interpreter/RegisterFile.h
Source/JavaScriptCore/parser/Lexer.h
Source/JavaScriptCore/parser/Nodes.h
Source/JavaScriptCore/parser/Parser.h
Source/JavaScriptCore/parser/ParserArena.h
Source/JavaScriptCore/pcre/pcre_exec.cpp
Source/JavaScriptCore/profiler/CallIdentifier.h
Source/JavaScriptCore/profiler/Profiler.h
Source/JavaScriptCore/runtime/ArgList.h
Source/JavaScriptCore/runtime/Arguments.h
Source/JavaScriptCore/runtime/BatchedTransitionOptimizer.h
Source/JavaScriptCore/runtime/CommonIdentifiers.h
Source/JavaScriptCore/runtime/Heap.h
Source/JavaScriptCore/runtime/JSGlobalObject.h
Source/JavaScriptCore/runtime/JSLock.h
Source/JavaScriptCore/runtime/JSONObject.cpp
Source/JavaScriptCore/runtime/Lookup.h
Source/JavaScriptCore/runtime/MachineStackMarker.h
Source/JavaScriptCore/runtime/MarkStack.h
Source/JavaScriptCore/runtime/MarkedSpace.h
Source/JavaScriptCore/runtime/RegExpConstructor.h
Source/JavaScriptCore/runtime/RegExpObject.h
Source/JavaScriptCore/runtime/ScopeChain.h
Source/JavaScriptCore/runtime/SmallStrings.cpp
Source/JavaScriptCore/runtime/SmallStrings.h
Source/JavaScriptCore/runtime/SymbolTable.h
Source/JavaScriptCore/runtime/WeakGCMap.h
Source/JavaScriptCore/runtime/WeakGCPtr.h
Source/JavaScriptCore/wtf/CrossThreadRefCounted.h
Source/JavaScriptCore/wtf/DateMath.h
Source/JavaScriptCore/wtf/Deque.h
Source/JavaScriptCore/wtf/FastAllocBase.h
Source/JavaScriptCore/wtf/HashCountedSet.h
Source/JavaScriptCore/wtf/HashMap.h
Source/JavaScriptCore/wtf/HashSet.h
Source/JavaScriptCore/wtf/ListHashSet.h
Source/JavaScriptCore/wtf/Locker.h
Source/JavaScriptCore/wtf/MessageQueue.h
Source/JavaScriptCore/wtf/Noncopyable.h
Source/JavaScriptCore/wtf/OwnArrayPtr.h
Source/JavaScriptCore/wtf/OwnFastMallocPtr.h
Source/JavaScriptCore/wtf/OwnPtr.h
Source/JavaScriptCore/wtf/RefCounted.h
Source/JavaScriptCore/wtf/RefPtr.h
Source/JavaScriptCore/wtf/RefPtrHashMap.h
Source/JavaScriptCore/wtf/ThreadIdentifierDataPthreads.h
Source/JavaScriptCore/wtf/ThreadSafeShared.h
Source/JavaScriptCore/wtf/ThreadSpecific.h
Source/JavaScriptCore/wtf/ThreadSpecificWin.cpp
Source/JavaScriptCore/wtf/Threading.cpp
Source/JavaScriptCore/wtf/ThreadingPrimitives.h
Source/JavaScriptCore/wtf/Vector.h
Source/JavaScriptCore/wtf/WTFThreadData.h
Source/JavaScriptCore/wtf/dtoa.cpp
Source/JavaScriptCore/wtf/gobject/GOwnPtr.h
Source/JavaScriptCore/wtf/text/StringBuffer.h
Source/JavaScriptCore/wtf/text/StringImplBase.h
Source/JavaScriptCore/wtf/unicode/Collator.h
Source/JavaScriptCore/yarr/YarrInterpreter.h
Source/JavaScriptCore/yarr/YarrPattern.h
Source/WebCore/ChangeLog
Source/WebCore/accessibility/AXObjectCache.h
Source/WebCore/bindings/js/CachedScriptSourceProvider.h
Source/WebCore/bindings/js/GCController.h
Source/WebCore/bindings/js/JSDebugWrapperSet.h
Source/WebCore/bindings/js/JSMainThreadExecState.h
Source/WebCore/bindings/js/ScheduledAction.h
Source/WebCore/bindings/js/ScriptCachedFrameData.h
Source/WebCore/bindings/js/ScriptDebugServer.h
Source/WebCore/bindings/js/ScriptProfiler.h
Source/WebCore/bindings/js/ScriptState.h
Source/WebCore/bindings/js/WebCoreJSClientData.h
Source/WebCore/bindings/js/WorkerScriptController.h
Source/WebCore/bindings/v8/DOMData.h
Source/WebCore/bindings/v8/DOMDataStore.h
Source/WebCore/bindings/v8/ScriptCachedFrameData.h
Source/WebCore/bindings/v8/ScriptDebugServer.h
Source/WebCore/bindings/v8/ScriptProfiler.h
Source/WebCore/bindings/v8/ScriptState.h
Source/WebCore/bindings/v8/SerializedScriptValue.cpp
Source/WebCore/bridge/Bridge.h
Source/WebCore/bridge/IdentifierRep.h
Source/WebCore/bridge/jsc/BridgeJSC.h
Source/WebCore/css/CSSImageValue.h
Source/WebCore/css/CSSImportRule.h
Source/WebCore/css/CSSNamespace.h
Source/WebCore/css/CSSParser.h
Source/WebCore/css/CSSParserValues.h
Source/WebCore/css/CSSProperty.h
Source/WebCore/css/CSSSelector.cpp
Source/WebCore/css/CSSSelector.h
Source/WebCore/css/CSSSelectorList.h
Source/WebCore/css/CSSStyleSelector.cpp
Source/WebCore/css/CSSStyleSelector.h
Source/WebCore/css/MediaQuery.h
Source/WebCore/css/MediaQueryEvaluator.h
Source/WebCore/css/MediaQueryExp.h
Source/WebCore/dom/AsyncScriptRunner.h
Source/WebCore/dom/DOMStringMap.h
Source/WebCore/dom/Document.cpp
Source/WebCore/dom/DocumentMarkerController.h
Source/WebCore/dom/Event.h
Source/WebCore/dom/EventNames.h
Source/WebCore/dom/EventTarget.h
Source/WebCore/dom/IgnoreDestructiveWriteCountIncrementer.h
Source/WebCore/dom/MessagePortChannel.h
Source/WebCore/dom/NodeRareData.h
Source/WebCore/dom/QualifiedName.h
Source/WebCore/dom/ScriptElement.h
Source/WebCore/dom/ScriptExecutionContext.cpp
Source/WebCore/dom/ScriptExecutionContext.h
Source/WebCore/dom/SpaceSplitString.h
Source/WebCore/dom/TransformSource.h
Source/WebCore/dom/UserGestureIndicator.h
Source/WebCore/dom/UserTypingGestureIndicator.h
Source/WebCore/dom/XMLDocumentParser.h
Source/WebCore/dom/XMLDocumentParserLibxml2.cpp
Source/WebCore/dom/XMLDocumentParserScope.h
Source/WebCore/editing/DeleteButtonController.h
Source/WebCore/editing/ReplaceSelectionCommand.cpp
Source/WebCore/editing/SelectionController.h
Source/WebCore/editing/SpellChecker.h
Source/WebCore/editing/TextCheckingHelper.h
Source/WebCore/editing/TextIterator.cpp
Source/WebCore/fileapi/FileThread.h
Source/WebCore/fileapi/LocalFileSystem.h
Source/WebCore/fileapi/SyncCallbackHelper.h
Source/WebCore/history/BackForwardController.h
Source/WebCore/history/PageCache.h
Source/WebCore/html/CollectionCache.h
Source/WebCore/html/DOMSettableTokenList.h
Source/WebCore/html/DOMTokenList.h
Source/WebCore/html/HTMLParserQuirks.h
Source/WebCore/html/InputType.h
Source/WebCore/html/StepRange.h
Source/WebCore/html/ValidationMessage.h
Source/WebCore/html/ValidityState.h
Source/WebCore/html/canvas/CanvasRenderingContext.h
Source/WebCore/html/parser/CSSPreloadScanner.h
Source/WebCore/html/parser/HTMLConstructionSite.h
Source/WebCore/html/parser/HTMLDocumentParser.h
Source/WebCore/html/parser/HTMLElementStack.h
Source/WebCore/html/parser/HTMLFormattingElementList.h
Source/WebCore/html/parser/HTMLInputStream.h
Source/WebCore/html/parser/HTMLMetaCharsetParser.h
Source/WebCore/html/parser/HTMLParserScheduler.h
Source/WebCore/html/parser/HTMLPreloadScanner.h
Source/WebCore/html/parser/HTMLScriptRunner.h
Source/WebCore/html/parser/HTMLToken.h
Source/WebCore/html/parser/HTMLTokenizer.h
Source/WebCore/html/parser/HTMLTreeBuilder.cpp
Source/WebCore/html/parser/HTMLTreeBuilder.h
Source/WebCore/html/parser/NestingLevelIncrementer.h
Source/WebCore/inspector/ConsoleMessage.h
Source/WebCore/inspector/InspectorApplicationCacheAgent.h
Source/WebCore/inspector/InspectorBrowserDebuggerAgent.h
Source/WebCore/inspector/InspectorConsoleAgent.h
Source/WebCore/inspector/InspectorController.h
Source/WebCore/inspector/InspectorDebuggerAgent.h
Source/WebCore/inspector/InspectorFrontendClientLocal.h
Source/WebCore/inspector/InspectorProfilerAgent.h
Source/WebCore/inspector/InspectorRuntimeAgent.h
Source/WebCore/inspector/InspectorTimelineAgent.h
Source/WebCore/loader/CrossOriginPreflightResultCache.h
Source/WebCore/loader/DocumentThreadableLoader.h
Source/WebCore/loader/DocumentWriter.h
Source/WebCore/loader/EmptyClients.h
Source/WebCore/loader/FormSubmission.h
Source/WebCore/loader/FrameLoader.h
Source/WebCore/loader/FrameLoaderStateMachine.h
Source/WebCore/loader/HistoryController.h
Source/WebCore/loader/ImageLoader.cpp
Source/WebCore/loader/NavigationScheduler.cpp
Source/WebCore/loader/PingLoader.h
Source/WebCore/loader/PolicyChecker.h
Source/WebCore/loader/ProgressTracker.cpp
Source/WebCore/loader/ProgressTracker.h
Source/WebCore/loader/ResourceLoadNotifier.h
Source/WebCore/loader/ResourceLoadScheduler.h
Source/WebCore/loader/SubframeLoader.h
Source/WebCore/loader/ThreadableLoader.h
Source/WebCore/loader/ThreadableLoaderClient.h
Source/WebCore/loader/WorkerThreadableLoader.h
Source/WebCore/loader/appcache/ApplicationCacheGroup.h
Source/WebCore/loader/appcache/ApplicationCacheHost.h
Source/WebCore/loader/appcache/ApplicationCacheStorage.h
Source/WebCore/loader/archive/ArchiveResourceCollection.h
Source/WebCore/loader/cache/CachedResource.h
Source/WebCore/loader/cache/CachedResourceClient.h
Source/WebCore/loader/cache/CachedResourceLoader.h
Source/WebCore/loader/cache/MemoryCache.h
Source/WebCore/loader/icon/IconDatabase.h
Source/WebCore/loader/icon/IconDatabaseClient.h
Source/WebCore/loader/icon/IconLoader.h
Source/WebCore/loader/icon/PageURLRecord.h
Source/WebCore/notifications/Notification.h
Source/WebCore/page/ContextMenuController.h
Source/WebCore/page/DragController.h
Source/WebCore/page/EventHandler.h
Source/WebCore/page/EventSource.h
Source/WebCore/page/FocusController.h
Source/WebCore/page/FrameTree.h
Source/WebCore/page/FrameView.cpp
Source/WebCore/page/GeolocationController.h
Source/WebCore/page/GroupSettings.h
Source/WebCore/page/Page.h
Source/WebCore/page/PageGroup.h
Source/WebCore/page/PageGroupLoadDeferrer.h
Source/WebCore/page/PluginHalter.h
Source/WebCore/page/Settings.h
Source/WebCore/page/SpeechInput.h
Source/WebCore/page/UserScript.h
Source/WebCore/page/UserStyleSheet.h
Source/WebCore/page/XSSAuditor.h
Source/WebCore/page/animation/AnimationBase.cpp
Source/WebCore/page/animation/AnimationControllerPrivate.h
Source/WebCore/page/mac/EventHandlerMac.mm
Source/WebCore/platform/AsyncFileSystem.h
Source/WebCore/platform/AsyncFileSystemCallbacks.h
Source/WebCore/platform/AutodrainedPool.h
Source/WebCore/platform/ContextMenu.h
Source/WebCore/platform/ContextMenuItem.h
Source/WebCore/platform/DeprecatedPtrList.h
Source/WebCore/platform/DeprecatedPtrListImpl.cpp
Source/WebCore/platform/EventLoop.h
Source/WebCore/platform/GeolocationService.h
Source/WebCore/platform/HostWindow.h
Source/WebCore/platform/KillRing.h
Source/WebCore/platform/Length.h
Source/WebCore/platform/Pasteboard.h
Source/WebCore/platform/PlatformKeyboardEvent.h
Source/WebCore/platform/PurgeableBuffer.h
Source/WebCore/platform/RunLoopTimer.h
Source/WebCore/platform/ScrollbarTheme.h
Source/WebCore/platform/SharedTimer.h
Source/WebCore/platform/ThreadGlobalData.h
Source/WebCore/platform/ThreadTimers.h
Source/WebCore/platform/Timer.h
Source/WebCore/platform/TreeShared.h
Source/WebCore/platform/animation/AnimationList.h
Source/WebCore/platform/audio/AudioBus.h
Source/WebCore/platform/audio/AudioChannel.h
Source/WebCore/platform/audio/HRTFDatabase.h
Source/WebCore/platform/audio/HRTFElevation.h
Source/WebCore/platform/chromium/ClipboardChromium.h
Source/WebCore/platform/graphics/BitmapImage.h
Source/WebCore/platform/graphics/Color.h
Source/WebCore/platform/graphics/FontCache.cpp
Source/WebCore/platform/graphics/FontCache.h
Source/WebCore/platform/graphics/FontData.h
Source/WebCore/platform/graphics/GlyphMetricsMap.h
Source/WebCore/platform/graphics/GraphicsContext.h
Source/WebCore/platform/graphics/GraphicsLayer.h
Source/WebCore/platform/graphics/ImageBuffer.h
Source/WebCore/platform/graphics/ImageSource.h
Source/WebCore/platform/graphics/MediaPlayer.cpp
Source/WebCore/platform/graphics/MediaPlayer.h
Source/WebCore/platform/graphics/MediaPlayerPrivate.h
Source/WebCore/platform/graphics/Path.h
Source/WebCore/platform/graphics/TiledBackingStore.h
Source/WebCore/platform/graphics/cairo/FontCustomPlatformData.h
Source/WebCore/platform/graphics/chromium/GLES2Canvas.h
Source/WebCore/platform/graphics/chromium/LayerTexture.h
Source/WebCore/platform/graphics/chromium/LayerTilerChromium.h
Source/WebCore/platform/graphics/chromium/RenderSurfaceChromium.h
Source/WebCore/platform/graphics/chromium/TextureManager.h
Source/WebCore/platform/graphics/chromium/TransparencyWin.h
Source/WebCore/platform/graphics/gpu/DrawingBuffer.h
Source/WebCore/platform/graphics/gpu/LoopBlinnClassifier.h
Source/WebCore/platform/graphics/gpu/LoopBlinnLocalTriangulator.h
Source/WebCore/platform/graphics/gpu/PODArena.h
Source/WebCore/platform/graphics/gpu/PODIntervalTree.h
Source/WebCore/platform/graphics/gpu/PODRedBlackTree.h
Source/WebCore/platform/graphics/gpu/Shader.h
Source/WebCore/platform/graphics/gpu/TilingData.h
Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
Source/WebCore/platform/graphics/haiku/FontCustomPlatformData.h
Source/WebCore/platform/graphics/mac/FontCustomPlatformData.h
Source/WebCore/platform/graphics/openvg/PainterOpenVG.h
Source/WebCore/platform/graphics/openvg/SurfaceOpenVG.h
Source/WebCore/platform/graphics/qt/FontCustomPlatformData.h
Source/WebCore/platform/graphics/qt/FontPlatformData.h
Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
Source/WebCore/platform/graphics/qt/TransparencyLayer.h
Source/WebCore/platform/graphics/skia/FontCustomPlatformData.h
Source/WebCore/platform/graphics/skia/GraphicsContextPlatformPrivate.h
Source/WebCore/platform/graphics/skia/PlatformContextSkia.h
Source/WebCore/platform/graphics/transforms/AffineTransform.h
Source/WebCore/platform/graphics/transforms/TransformOperations.h
Source/WebCore/platform/graphics/transforms/TransformationMatrix.h
Source/WebCore/platform/graphics/win/FontCustomPlatformData.h
Source/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.h
Source/WebCore/platform/graphics/win/LocalWindowsContext.h
Source/WebCore/platform/graphics/win/QTMovie.cpp
Source/WebCore/platform/graphics/win/QTTrack.cpp
Source/WebCore/platform/graphics/win/WKCACFContextFlusher.h
Source/WebCore/platform/graphics/win/WKCACFLayerRenderer.h
Source/WebCore/platform/graphics/wince/FontCustomPlatformData.h
Source/WebCore/platform/graphics/wince/GraphicsContextWinCE.cpp
Source/WebCore/platform/graphics/wx/FontCustomPlatformData.h
Source/WebCore/platform/gtk/ClipboardGtk.h
Source/WebCore/platform/image-decoders/ImageDecoder.h
Source/WebCore/platform/mac/ClipboardMac.h
Source/WebCore/platform/mac/LocalCurrentGraphicsContext.h
Source/WebCore/platform/network/BlobData.h
Source/WebCore/platform/network/FormDataBuilder.h
Source/WebCore/platform/network/NetworkStateNotifier.h
Source/WebCore/platform/network/ResourceHandleInternal.h
Source/WebCore/platform/network/ResourceRequestBase.h
Source/WebCore/platform/network/ResourceResponseBase.h
Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
Source/WebCore/platform/network/win/ResourceHandleWin.cpp
Source/WebCore/platform/qt/ClipboardQt.h
Source/WebCore/platform/sql/SQLiteDatabase.h
Source/WebCore/platform/sql/SQLiteStatement.h
Source/WebCore/platform/sql/SQLiteTransaction.h
Source/WebCore/platform/text/BidiResolver.h
Source/WebCore/platform/text/RegularExpression.h
Source/WebCore/platform/text/TextCodec.h
Source/WebCore/platform/text/transcoder/FontTranscoder.h
Source/WebCore/platform/win/ClipboardWin.h
Source/WebCore/platform/win/WindowMessageBroadcaster.h
Source/WebCore/plugins/PluginDatabase.h
Source/WebCore/plugins/PluginMainThreadScheduler.h
Source/WebCore/plugins/PluginView.h
Source/WebCore/rendering/ColumnInfo.h
Source/WebCore/rendering/LayoutState.h
Source/WebCore/rendering/RenderArena.h
Source/WebCore/rendering/RenderBlock.h
Source/WebCore/rendering/RenderBoxModelObject.cpp
Source/WebCore/rendering/RenderFrameSet.h
Source/WebCore/rendering/RenderImageResource.h
Source/WebCore/rendering/RenderLayerBacking.h
Source/WebCore/rendering/RenderMarquee.h
Source/WebCore/rendering/RenderOverflow.h
Source/WebCore/rendering/RenderSelectionInfo.h
Source/WebCore/rendering/RenderView.h
Source/WebCore/rendering/RenderWidgetProtector.h
Source/WebCore/rendering/TableLayout.h
Source/WebCore/rendering/TransformState.h
Source/WebCore/rendering/VerticalPositionCache.h
Source/WebCore/rendering/style/ContentData.h
Source/WebCore/rendering/style/CounterContent.h
Source/WebCore/rendering/style/FillLayer.h
Source/WebCore/rendering/style/ShadowData.h
Source/WebCore/rendering/svg/RenderSVGResourceClipper.h
Source/WebCore/rendering/svg/SVGImageBufferTools.h
Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.h
Source/WebCore/rendering/svg/SVGResources.h
Source/WebCore/rendering/svg/SVGResourcesCache.h
Source/WebCore/rendering/svg/SVGResourcesCycleSolver.h
Source/WebCore/rendering/svg/SVGTextChunkBuilder.h
Source/WebCore/rendering/svg/SVGTextLayoutAttributesBuilder.h
Source/WebCore/rendering/svg/SVGTextLayoutEngine.h
Source/WebCore/rendering/svg/SVGTextLayoutEngineBaseline.h
Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.h
Source/WebCore/storage/DatabaseTask.h
Source/WebCore/storage/DatabaseTracker.h
Source/WebCore/storage/IDBPendingTransactionMonitor.h
Source/WebCore/storage/LocalStorageTask.h
Source/WebCore/storage/LocalStorageThread.h
Source/WebCore/storage/OriginQuotaManager.h
Source/WebCore/storage/OriginUsageRecord.h
Source/WebCore/storage/SQLTransactionClient.h
Source/WebCore/storage/SQLTransactionCoordinator.h
Source/WebCore/svg/SVGDocumentExtensions.h
Source/WebCore/svg/SVGElementRareData.h
Source/WebCore/svg/SVGFontData.h
Source/WebCore/svg/SVGPathBlender.h
Source/WebCore/svg/SVGPathByteStream.h
Source/WebCore/svg/SVGPathConsumer.h
Source/WebCore/svg/SVGPathParser.h
Source/WebCore/svg/SVGPathSource.h
Source/WebCore/svg/SVGViewSpec.h
Source/WebCore/svg/graphics/SVGImage.cpp
Source/WebCore/webaudio/RealtimeAnalyser.h
Source/WebCore/websockets/ThreadableWebSocketChannel.h
Source/WebCore/websockets/WebSocketChannel.h
Source/WebCore/websockets/WebSocketHandshake.h
Source/WebCore/websockets/WorkerThreadableWebSocketChannel.h
Source/WebCore/workers/DefaultSharedWorkerRepository.h
Source/WebCore/workers/WorkerContext.h
Source/WebCore/workers/WorkerMessagingProxy.h
Source/WebCore/workers/WorkerRunLoop.cpp
Source/WebCore/workers/WorkerRunLoop.h
Source/WebCore/workers/WorkerThread.cpp
Source/WebCore/xml/XMLHttpRequest.cpp
Source/WebCore/xml/XMLHttpRequest.h
Source/WebCore/xml/XPathExpressionNode.h
Source/WebCore/xml/XPathNodeSet.h
Source/WebCore/xml/XPathParser.h
Source/WebCore/xml/XPathPredicate.h
Source/WebCore/xml/XPathStep.h
Source/WebCore/xml/XSLImportRule.h
Source/WebKit/ChangeLog
Source/WebKit/chromium/src/BoundObject.h
Source/WebKit/chromium/src/DebuggerAgentManager.cpp
Source/WebKit/chromium/src/DebuggerAgentManager.h
Source/WebKit/chromium/src/InspectorFrontendClientImpl.h
Source/WebKit/chromium/src/WebDevToolsFrontendImpl.h
Source/WebKit/chromium/src/WebFrameImpl.cpp
Source/WebKit/chromium/src/WebPopupMenuImpl.h
Source/WebKit/efl/WebCoreSupport/FullscreenVideoControllerEfl.h
Source/WebKit/gtk/WebCoreSupport/FullscreenVideoController.h
Source/WebKit/gtk/webkit/webkitdownload.cpp
Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
Source/WebKit/mac/Storage/WebDatabaseTrackerClient.mm
Source/WebKit/win/COMEnumVariant.h
Source/WebKit/win/COMPropertyBag.h
Source/WebKit/win/FullscreenVideoController.h
Source/WebKit/win/WebDatabaseManager.cpp
Source/WebKit/win/WebInspector.h
Source/WebKit/win/WebLocalizableStrings.cpp
Source/WebKit/win/WebScriptWorld.h
Source/WebKit/win/WebSerializedJSValue.h
Source/WebKit/win/WebUserContentURLPattern.h
Source/WebKit2/ChangeLog
Source/WebKit2/Platform/Module.h
Source/WebKit2/Platform/SharedMemory.h
Source/WebKit2/PluginProcess/PluginProcess.h
Source/WebKit2/Shared/ChildProcess.h
Source/WebKit2/Shared/WebMemorySampler.h
Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h
Source/WebKit2/UIProcess/Plugins/win/PluginInfoStoreWin.cpp
Source/WebKit2/UIProcess/VisitedLinkProvider.h
Source/WebKit2/WebProcess/Downloads/Download.h
Source/WebKit2/WebProcess/Plugins/Netscape/NPJSObject.h
Source/WebKit2/WebProcess/Plugins/PluginProcessConnectionManager.h
Tools/ChangeLog
Tools/DumpRenderTree/chromium/CppBoundClass.h
Tools/DumpRenderTree/chromium/DRTDevToolsAgent.h
Tools/DumpRenderTree/chromium/DRTDevToolsClient.h
Tools/DumpRenderTree/chromium/TestNavigationController.h
Tools/DumpRenderTree/chromium/WebThemeControlDRTWin.h
Tools/DumpRenderTree/chromium/WebThemeEngineDRTWin.h
Tools/WebKitAPITest/HostWindow.h
Tools/WebKitAPITest/TestsController.h
Tools/WebKitTestRunner/TestInvocation.h

index 506209349c82b8b5027be007acd7ac00e644b9d5..09717002b451c9a7951eb825628b025beca8ced9 100644 (file)
@@ -34,7 +34,9 @@
 #include <runtime/WeakGCPtr.h>
 #include <wtf/HashMap.h>
 
-struct StaticValueEntry : FastAllocBase {
+struct StaticValueEntry {
+    WTF_MAKE_FAST_ALLOCATED;
+public:
     StaticValueEntry(JSObjectGetPropertyCallback _getProperty, JSObjectSetPropertyCallback _setProperty, JSPropertyAttributes _attributes)
         : getProperty(_getProperty), setProperty(_setProperty), attributes(_attributes)
     {
@@ -45,7 +47,9 @@ struct StaticValueEntry : FastAllocBase {
     JSPropertyAttributes attributes;
 };
 
-struct StaticFunctionEntry : FastAllocBase {
+struct StaticFunctionEntry {
+    WTF_MAKE_FAST_ALLOCATED;
+public:
     StaticFunctionEntry(JSObjectCallAsFunctionCallback _callAsFunction, JSPropertyAttributes _attributes)
         : callAsFunction(_callAsFunction), attributes(_attributes)
     {
@@ -62,7 +66,9 @@ struct OpaqueJSClass;
 
 // An OpaqueJSClass (JSClass) is created without a context, so it can be used with any context, even across context groups.
 // This structure holds data members that vary across context groups.
-struct OpaqueJSClassContextData : Noncopyable {
+struct OpaqueJSClassContextData {
+    WTF_MAKE_NONCOPYABLE(OpaqueJSClassContextData); WTF_MAKE_FAST_ALLOCATED;
+public:
     OpaqueJSClassContextData(OpaqueJSClass*);
     ~OpaqueJSClassContextData();
 
index 4198ca8b1b3dda8f6f9d7783fc87671eeac5b720..d6de42682f44470a6a15e98493374d4e2b2ec876 100644 (file)
@@ -480,7 +480,9 @@ JSObjectRef JSObjectCallAsConstructor(JSContextRef ctx, JSObjectRef object, size
     return result;
 }
 
-struct OpaqueJSPropertyNameArray : FastAllocBase {
+struct OpaqueJSPropertyNameArray {
+    WTF_MAKE_FAST_ALLOCATED;
+public:
     OpaqueJSPropertyNameArray(JSGlobalData* globalData)
         : refCount(0)
         , globalData(globalData)
index e58e8c0d79e2d0d272c23f3d0023810678c5675d..804f67ae8472f7ba69280e2974a839ef5b3b89f8 100644 (file)
@@ -1,3 +1,16 @@
+2011-01-20  Zoltan Horvath  <zoltan@webkit.org>
+
+        Reviewed by Csaba Osztrogonác.
+
+        Refactoring of the custom allocation framework
+        https://bugs.webkit.org/show_bug.cgi?id=49897
+
+        Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
+        The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
+        equivalent macro implementation at the necessary places.
+
+        * wtf/FastAllocBase.h: Turn FastAllocBase's implementation into a macro.
+
 2011-01-20  Mark Rowe  <mrowe@apple.com>
 
         Reviewed by Maciej Stachowiak.
index e38b9d467644dc558f3d5a56dd2ee3e97410f4b5..c5a7d5b8da73f92832ab326fe0b3483526850587 100644 (file)
@@ -50,7 +50,8 @@ namespace JSC {
 //   * The address of a Label pointing into the code may be resolved.
 //   * The value referenced by a DataLabel may be set.
 //
-class LinkBuffer : public Noncopyable {
+class LinkBuffer {
+    WTF_MAKE_NONCOPYABLE(LinkBuffer);
     typedef MacroAssemblerCodeRef CodeRef;
     typedef MacroAssemblerCodePtr CodePtr;
     typedef MacroAssembler::Label Label;
index 7eca72a1f60eae76d8779b8aa6a9965538886d5a..1cd0863608e4ef024669a8fc6b601702df8f4100 100644 (file)
@@ -242,7 +242,8 @@ namespace JSC {
     }
 #endif
 
-    class CodeBlock : public FastAllocBase {
+    class CodeBlock {
+        WTF_MAKE_FAST_ALLOCATED;
         friend class JIT;
     protected:
         CodeBlock(ScriptExecutable* ownerExecutable, CodeType, JSGlobalObject*, PassRefPtr<SourceProvider>, unsigned sourceOffset, SymbolTable* symbolTable, bool isConstructor);
@@ -578,7 +579,9 @@ namespace JSC {
 
         SymbolTable* m_symbolTable;
 
-        struct RareData : FastAllocBase {
+        struct RareData {
+           WTF_MAKE_FAST_ALLOCATED;
+        public:
             Vector<HandlerInfo> m_exceptionHandlers;
 
             // Rare Constants
@@ -599,6 +602,9 @@ namespace JSC {
             Vector<CallReturnOffsetToBytecodeOffset> m_callReturnIndexVector;
 #endif
         };
+#if PLATFORM(WIN)
+        friend void WTF::deleteOwnedPtr<RareData>(RareData*);
+#endif
         OwnPtr<RareData> m_rareData;
     };
 
index c6468a5580423b7267466abe46f1be4d6407d328..f077cbff583c63f5ab8c1f503559cb139ff40e48 100644 (file)
@@ -54,7 +54,9 @@ namespace JSC {
     class StructureChain;
 
     // Structure used by op_get_by_id_self_list and op_get_by_id_proto_list instruction to hold data off the main opcode stream.
-    struct PolymorphicAccessStructureList : FastAllocBase {
+    struct PolymorphicAccessStructureList {
+        WTF_MAKE_FAST_ALLOCATED;
+    public:
         struct PolymorphicStubInfo {
             bool isChain;
             PolymorphicAccessStructureListStubRoutineType stubRoutine;
index 8e3ed9e5e0e762bf4e0d65a6aa92f34ec950f2b5..9ca54da8a29a26d779fe94368a8e52b5dc228734 100644 (file)
@@ -142,7 +142,8 @@ namespace JSC {
         friend class HostCallRecord;
         
 #if ENABLE(OPCODE_SAMPLING)
-        class CallRecord : public Noncopyable {
+        class CallRecord {
+            WTF_MAKE_NONCOPYABLE(CallRecord);
         public:
             CallRecord(SamplingTool* samplingTool)
                 : m_samplingTool(samplingTool)
@@ -172,7 +173,8 @@ namespace JSC {
             }
         };
 #else
-        class CallRecord : public Noncopyable {
+        class CallRecord {
+            WTF_MAKE_NONCOPYABLE(CallRecord);
         public:
             CallRecord(SamplingTool*)
             {
index 8b0cc40120d7c65f63161936a24085d241a5840a..de16f8e3587524af4cc40933c2258d8fbda06117 100644 (file)
@@ -40,7 +40,6 @@
 #include "SymbolTable.h"
 #include "Debugger.h"
 #include "Nodes.h"
-#include <wtf/FastAllocBase.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/SegmentedVector.h>
 #include <wtf/Vector.h>
@@ -85,7 +84,8 @@ namespace JSC {
         RefPtr<RegisterID> propertyRegister;
     };
 
-    class BytecodeGenerator : public FastAllocBase {
+    class BytecodeGenerator {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         typedef DeclarationStacks::VarStack VarStack;
         typedef DeclarationStacks::FunctionStack FunctionStack;
index 3532ad802cb220ae76a6230152080b999ceb8487..78d49d29086366fd7f9b7e9ae36cac736892cbce 100644 (file)
 #define RegisterID_h
 
 #include <wtf/Assertions.h>
-#include <wtf/Noncopyable.h>
 #include <wtf/VectorTraits.h>
 
 namespace JSC {
 
-    class RegisterID : public Noncopyable {
+    class RegisterID {
+        WTF_MAKE_NONCOPYABLE(RegisterID);
     public:
         RegisterID()
             : m_refCount(0)
index dfbe65891559e0f3d960f815c2dd22e6029138ac..740001d68fb16ada2bee4c2d6c86f5a6d711382f 100644 (file)
@@ -32,7 +32,8 @@
 #include "Interpreter.h"
 
 namespace JSC {
-    class CachedCall : public Noncopyable {
+    class CachedCall {
+        WTF_MAKE_NONCOPYABLE(CachedCall); WTF_MAKE_FAST_ALLOCATED;
     public:
         CachedCall(CallFrame* callFrame, JSFunction* function, int argCount)
             : m_valid(false)
index 47790cfeabe9d4f0831d85751860ba527389f10a..753d90e4ae423275132e602b40eedc73cae37001 100644 (file)
@@ -30,7 +30,6 @@
 #define Interpreter_h
 
 #include "ArgList.h"
-#include "FastAllocBase.h"
 #include "JSCell.h"
 #include "JSValue.h"
 #include "JSObject.h"
@@ -65,7 +64,8 @@ namespace JSC {
 
     enum { MaxLargeThreadReentryDepth = 256, MaxSmallThreadReentryDepth = 32 };
 
-    class Interpreter : public FastAllocBase {
+    class Interpreter {
+        WTF_MAKE_FAST_ALLOCATED;
         friend class JIT;
         friend class CachedCall;
     public:
index 38d16473dba72f79323eac8c28fe30f23ba84715..394464268063694584910ae27cb66cb081d4dafc 100644 (file)
@@ -31,7 +31,6 @@
 
 #include "JSValue.h"
 #include <wtf/Assertions.h>
-#include <wtf/FastAllocBase.h>
 #include <wtf/VectorTraits.h>
 
 namespace JSC {
@@ -47,7 +46,8 @@ namespace JSC {
 
     typedef ExecState CallFrame;
 
-    class Register : public WTF::FastAllocBase {
+    class Register {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         Register();
 
index 75fd784a8b59852229016a4d2cbae74ccc813fab..3498e905294a7161e9268c17b13e93785ffc2bfe 100644 (file)
@@ -89,7 +89,8 @@ namespace JSC {
 
     class JSGlobalObject;
 
-    class RegisterFile : public Noncopyable {
+    class RegisterFile {
+        WTF_MAKE_NONCOPYABLE(RegisterFile);
         friend class JIT;
     public:
         enum CallFrameHeaderEntry {
index dfdb22ccc64df64deb15608ea4ba88dc0b874a0f..d4145c15b8fb6ac7937f7789a0704df6ec8a265a 100644 (file)
@@ -37,7 +37,8 @@ namespace JSC {
 
     class RegExp;
 
-    class Lexer : public Noncopyable {
+    class Lexer {
+        WTF_MAKE_NONCOPYABLE(Lexer); WTF_MAKE_FAST_ALLOCATED;
     public:
         // Character manipulation functions.
         static bool isWhiteSpace(int character);
index 54b7231a339607be9c5dfd25f32a74992afdeb4f..6e73c00ccce939286826b3beb5a67d2537d82d4b 100644 (file)
@@ -1376,7 +1376,9 @@ namespace JSC {
         ParameterNode* m_next;
     };
 
-    struct ScopeNodeData : FastAllocBase {
+    struct ScopeNodeData {
+        WTF_MAKE_FAST_ALLOCATED;
+    public:
         typedef DeclarationStacks::VarStack VarStack;
         typedef DeclarationStacks::FunctionStack FunctionStack;
 
@@ -1472,6 +1474,7 @@ namespace JSC {
     };
 
     class FunctionParameters : public Vector<Identifier>, public RefCounted<FunctionParameters> {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         static PassRefPtr<FunctionParameters> create(ParameterNode* firstParameter) { return adoptRef(new FunctionParameters(firstParameter)); }
 
index b257b68064dc000e0592f7550801adf7b5191fc5..58398d1d3335f164b5225c0cce7c59dffe6e1982 100644 (file)
@@ -45,8 +45,10 @@ namespace JSC {
 
     template <typename T> struct ParserArenaData : ParserArenaDeletable { T data; };
 
-    class Parser : public Noncopyable {
+    class Parser {
+        WTF_MAKE_NONCOPYABLE(Parser); WTF_MAKE_FAST_ALLOCATED;
     public:
+        Parser() { }
         template <class ParsedNode>
         PassRefPtr<ParsedNode> parse(JSGlobalObject* lexicalGlobalObject, Debugger*, ExecState*, const SourceCode& source, FunctionParameters*, JSParserStrictness strictness, JSObject** exception);
 
index 7c1809e246483b08af849afc8d01964064963528..82fb80854d8f0f5b8bc952275bc27ca60047a151 100644 (file)
@@ -34,7 +34,8 @@ namespace JSC {
     class ParserArenaDeletable;
     class ParserArenaRefCounted;
 
-    class IdentifierArena : public FastAllocBase {
+    class IdentifierArena {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         ALWAYS_INLINE const Identifier& makeIdentifier(JSGlobalData*, const UChar* characters, size_t length);
         const Identifier& makeNumericIdentifier(JSGlobalData*, double number);
@@ -59,7 +60,8 @@ namespace JSC {
         return m_identifiers.last();
     }
 
-    class ParserArena : Noncopyable {
+    class ParserArena {
+        WTF_MAKE_NONCOPYABLE(ParserArena);
     public:
         ParserArena();
         ~ParserArena();
index 789f80ab6dcfc7b9c47fa8ab5089a50028ed7d04..b7018aa59a71183370c3e607e709204bf9014caf 100644 (file)
@@ -112,7 +112,9 @@ struct BracketChainNode {
     const UChar* bracketStart;
 };
 
-struct MatchFrame : FastAllocBase {
+struct MatchFrame {
+    WTF_MAKE_FAST_ALLOCATED;
+public:
     ReturnLocation returnLocation;
     struct MatchFrame* previousFrame;
     
index 76c1470657c0149c0842a2970d5500312ad90e2b..a9827c0fe75347f718b694127f2ff3b4bc74a040 100644 (file)
 #define CallIdentifier_h
 
 #include <runtime/UString.h>
-#include "FastAllocBase.h"
 #include <wtf/text/CString.h>
 #include <wtf/text/StringHash.h>
 
 namespace JSC {
 
-    struct CallIdentifier : public FastAllocBase {
+    struct CallIdentifier {
+        WTF_MAKE_FAST_ALLOCATED;
+    public:
         UString m_name;
         UString m_url;
         unsigned m_lineNumber;
index f9c2ccbea4109f63a4d1b444b3a98e00ba4e613d..f88746d6b767f06436a05be7a9a55dbbfc797a20 100644 (file)
@@ -44,7 +44,8 @@ namespace JSC {
     class UString;
     struct CallIdentifier;    
 
-    class Profiler : public FastAllocBase {
+    class Profiler {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         static Profiler** enabledProfilerReference()
         {
index cd563a2738e20fcb04e1ab3e23bc068c8584475d..57e3c20c5de69eb3541915e7c42feed14fd6e55e 100644 (file)
 #include "CallFrame.h"
 #include "Register.h"
 #include <wtf/HashSet.h>
-#include <wtf/Noncopyable.h>
 #include <wtf/Vector.h>
 
 namespace JSC {
 
     class MarkStack;
 
-    class MarkedArgumentBuffer : public Noncopyable {
+    class MarkedArgumentBuffer {
+        WTF_MAKE_NONCOPYABLE(MarkedArgumentBuffer);
     private:
         static const unsigned inlineCapacity = 8;
         typedef Vector<Register, inlineCapacity> VectorType;
index 715a2ac175db54a8617439983fe5f4464e87548c..fe900a2789a6957bfa3fe3ded0ff8cfd4f605a93 100644 (file)
 
 namespace JSC {
 
-    struct ArgumentsData : Noncopyable {
+    struct ArgumentsData {
+        WTF_MAKE_NONCOPYABLE(ArgumentsData); WTF_MAKE_FAST_ALLOCATED;
+    public:
+        ArgumentsData() { }
         JSActivation* activation;
 
         unsigned numParameters;
index 74089a53b9129c186839abb9625092c7215c7d99..db2d1d7cc1bdf7be635d1960133c09343e7330b9 100644 (file)
 #ifndef BatchedTransitionOptimizer_h
 #define BatchedTransitionOptimizer_h
 
-#include <wtf/Noncopyable.h>
 #include "JSObject.h"
 
 namespace JSC {
 
-    class BatchedTransitionOptimizer : public Noncopyable {
+    class BatchedTransitionOptimizer {
+        WTF_MAKE_NONCOPYABLE(BatchedTransitionOptimizer);
     public:
         BatchedTransitionOptimizer(JSObject* object)
             : m_object(object)
index 1e22b6abdffdaf88547f58f74d7f21d6cefaea2a..6587a8f6ddc49d1385da0d0f20ff397a18fe7e55 100644 (file)
@@ -84,7 +84,8 @@
 
 namespace JSC {
 
-    class CommonIdentifiers : public Noncopyable {
+    class CommonIdentifiers {
+        WTF_MAKE_NONCOPYABLE(CommonIdentifiers); WTF_MAKE_FAST_ALLOCATED;
     private:
         CommonIdentifiers(JSGlobalData*);
         friend class JSGlobalData;
index 243bba3e3899189f5f0208baf2052820bc5dc607..3e1d886061266b5e8c6d49a9b8bdb017daf2645e 100644 (file)
@@ -45,7 +45,8 @@ namespace JSC {
 
     enum OperationInProgress { NoOperation, Allocation, Collection };
 
-    class Heap : public Noncopyable {
+    class Heap {
+        WTF_MAKE_NONCOPYABLE(Heap);
     public:
         void destroy();
 
index a22b0aa287e46858af0e38d1321d14e5cc9cfea9..24bc2f88b71c23f5ce0aa09a9f1fedfa9533f580 100644 (file)
@@ -465,7 +465,8 @@ namespace JSC {
         return new (exec) JSArray(exec->lexicalGlobalObject()->arrayStructure(), values);
     }
 
-    class DynamicGlobalObjectScope : public Noncopyable {
+    class DynamicGlobalObjectScope {
+        WTF_MAKE_NONCOPYABLE(DynamicGlobalObjectScope);
     public:
         DynamicGlobalObjectScope(CallFrame* callFrame, JSGlobalObject* dynamicGlobalObject);
 
index 05b388c9db9d3d9ea9cbc63e05cdf21bb3e818d5..7b07b4fb3da5e4e82e005c5244565c9a670bf87f 100644 (file)
@@ -53,7 +53,8 @@ namespace JSC {
 
     enum JSLockBehavior { SilenceAssertionsOnly, LockForReal };
 
-    class JSLock : public Noncopyable {
+    class JSLock {
+        WTF_MAKE_NONCOPYABLE(JSLock);
     public:
         JSLock(ExecState*);
         JSLock(JSGlobalData*);
@@ -89,7 +90,8 @@ namespace JSC {
 
         JSLockBehavior m_lockBehavior;
 
-        class DropAllLocks : public Noncopyable {
+        class DropAllLocks {
+            WTF_MAKE_NONCOPYABLE(DropAllLocks);
         public:
             DropAllLocks(ExecState* exec);
             DropAllLocks(JSLockBehavior);
index 9e630275c17378b8ce58dbbf8b8eebcd54df22b3..df4be523cb9745ae8dd14f49922e4380c19ecb3d 100644 (file)
@@ -70,7 +70,8 @@ private:
     mutable JSValue m_value;
 };
 
-class Stringifier : public Noncopyable {
+class Stringifier {
+    WTF_MAKE_NONCOPYABLE(Stringifier);
 public:
     Stringifier(ExecState*, JSValue replacer, JSValue space);
     ~Stringifier();
index 9bc81d48edf88341a364fee224980aea4a72ab34..0d6d98fb4ac44332c296b17cede108c9a06e63c6 100644 (file)
@@ -53,7 +53,8 @@ namespace JSC {
     typedef PropertySlot::GetValueFunc GetFunction;
     typedef void (*PutFunction)(ExecState*, JSObject* baseObject, JSValue value);
 
-    class HashEntry : public FastAllocBase {
+    class HashEntry {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         void initialize(StringImpl* key, unsigned char attributes, intptr_t v1, intptr_t v2
 #if ENABLE(JIT)
index e80fe05fc91a17b01312df3eec1ae8a12916bbc9..b186834146f442088ff17542e1a0e9b04e866a04 100644 (file)
@@ -34,7 +34,8 @@ namespace JSC {
     class Heap;
     class MarkStack;
 
-    class MachineStackMarker : public Noncopyable {
+    class MachineStackMarker {
+        WTF_MAKE_NONCOPYABLE(MachineStackMarker);
     public:
         MachineStackMarker(Heap*);
         ~MachineStackMarker();
index 7bccadf7ad49d7354a5eb1614788c06c541a3d24..f54cfa6813091dff0d98911968faca8866a68ed1 100644 (file)
@@ -37,7 +37,8 @@ namespace JSC {
     
     enum MarkSetProperties { MayContainNullValues, NoNullValues };
     
-    class MarkStack : Noncopyable {
+    class MarkStack {
+        WTF_MAKE_NONCOPYABLE(MarkStack);
     public:
         MarkStack(void* jsArrayVPtr)
             : m_jsArrayVPtr(jsArrayVPtr)
index 78f918ce4b8dd7d0262cf416917b89f457cdda93..3b0c5e046c3b8ee6718c8eaf0cd71cebfcb35efb 100644 (file)
@@ -63,7 +63,8 @@ namespace JSC {
         }
     };
 
-    class MarkedSpace : public Noncopyable {
+    class MarkedSpace {
+        WTF_MAKE_NONCOPYABLE(MarkedSpace);
     public:
         MarkedSpace(JSGlobalData*);
         void destroy(ProtectCountSet&);
index 58abde578db81746dc9bbee33bf76f09318ed069..1714bd3a849e77db45f66bbb6210ca777f71fffb 100644 (file)
@@ -31,7 +31,9 @@ namespace JSC {
     class RegExpPrototype;
     struct RegExpConstructorPrivate;
 
-    struct RegExpConstructorPrivate : FastAllocBase {
+    struct RegExpConstructorPrivate {
+        WTF_MAKE_FAST_ALLOCATED;
+    public:
         // Global search cache / settings
         RegExpConstructorPrivate()
             : lastNumSubPatterns(0)
index c8cae285b42a1223724ec45ab88209346ef7ac9c..99c84da55f63f1ed4fb2fab02d95f441b891408a 100644 (file)
@@ -58,7 +58,9 @@ namespace JSC {
     private:
         bool match(ExecState*);
 
-        struct RegExpObjectData : FastAllocBase {
+        struct RegExpObjectData {
+            WTF_MAKE_FAST_ALLOCATED;
+        public:
             RegExpObjectData(NonNullPassRefPtr<RegExp> regExp, double lastIndex)
                 : regExp(regExp)
                 , lastIndex(lastIndex)
@@ -68,7 +70,9 @@ namespace JSC {
             RefPtr<RegExp> regExp;
             double lastIndex;
         };
-
+#if PLATFORM(WIN)
+        friend void WTF::deleteOwnedPtr<RegExpObjectData>(RegExpObjectData*);
+#endif
         OwnPtr<RegExpObjectData> d;
     };
 
index 0b15b67b39a0381b2f27a53422bd2fc75461bcfd..b104e753c23fcb36b7240f92eb7926f43ca42a63 100644 (file)
@@ -21,7 +21,7 @@
 #ifndef ScopeChain_h
 #define ScopeChain_h
 
-#include "FastAllocBase.h"
+#include <wtf/FastAllocBase.h>
 
 namespace JSC {
 
@@ -31,7 +31,8 @@ namespace JSC {
     class MarkStack;
     class ScopeChainIterator;
     
-    class ScopeChainNode : public FastAllocBase {
+    class ScopeChainNode {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         ScopeChainNode(ScopeChainNode* next, JSObject* object, JSGlobalData* globalData, JSGlobalObject* globalObject, JSObject* globalThis)
             : next(next)
index f358727bcf0becd4592948c1ee8299bd767e704b..5614932ffe00ef9bfb692fa4c72ec31be4dbdf11 100644 (file)
@@ -40,7 +40,8 @@ static inline bool isMarked(JSString* string)
     return string && Heap::isCellMarked(string);
 }
 
-class SmallStringsStorage : public Noncopyable {
+class SmallStringsStorage {
+    WTF_MAKE_NONCOPYABLE(SmallStringsStorage); WTF_MAKE_FAST_ALLOCATED;
 public:
     SmallStringsStorage();
 
index d1ebfb1365d489296a8c8105415c3dec3bae4934..ac84fe8873551698ce6989313b6ee17f188b6423 100644 (file)
@@ -37,7 +37,8 @@ namespace JSC {
     class MarkStack;
     class SmallStringsStorage;
 
-    class SmallStrings : public Noncopyable {
+    class SmallStrings {
+        WTF_MAKE_NONCOPYABLE(SmallStrings); WTF_MAKE_FAST_ALLOCATED;
     public:
         SmallStrings();
         ~SmallStrings();
index 1b1636d0ce3f38292b0121a5be085d278fc4446d..2635501e11eaa4b74b3b462ad1bc00a0498d21f7 100644 (file)
@@ -122,6 +122,7 @@ namespace JSC {
     typedef HashMap<RefPtr<StringImpl>, SymbolTableEntry, IdentifierRepHash, HashTraits<RefPtr<StringImpl> >, SymbolTableIndexHashTraits> SymbolTable;
 
     class SharedSymbolTable : public SymbolTable, public RefCounted<SharedSymbolTable> {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         static PassRefPtr<SharedSymbolTable> create() { return adoptRef(new SharedSymbolTable); }
     private:
index 2d4e59dd917912cc9f2fc5632748bac5324d7aae..316794f413705dee508379e5d590464f186b9375 100644 (file)
@@ -35,7 +35,8 @@ class JSCell;
 
 // A HashMap whose get() function returns emptyValue() for cells awaiting destruction.
 template<typename KeyType, typename MappedType>
-class WeakGCMap : public FastAllocBase {
+class WeakGCMap {
+    WTF_MAKE_FAST_ALLOCATED;
     /*
     Invariants:
         * A value enters the WeakGCMap marked. (Guaranteed by set().)
index 6cc75a592d6a80947a95731b36b498c53ca89b13..4946ee7c5b13e2f0be7be8f6dd0e82ab37e4782a 100644 (file)
 
 #include "Heap.h"
 #include "GCHandle.h"
-#include <wtf/Noncopyable.h>
 
 namespace JSC {
 
 // A smart pointer whose get() function returns 0 for cells awaiting destruction.
-template <typename T> class WeakGCPtr : Noncopyable {
+template <typename T> class WeakGCPtr {
+    WTF_MAKE_NONCOPYABLE(WeakGCPtr);
 public:
     WeakGCPtr()
         : m_ptr(0)
index 0c0e9970f9785d97d190068d54f522434c3a60f7..8b6597778b8d9d8d59cdfdb226c620688a7b3ffb 100644 (file)
@@ -51,7 +51,8 @@ namespace WTF {
     // with respect to the original and any other copies.  The underlying m_data is jointly
     // owned by the original instance and all copies.
     template<class T>
-    class CrossThreadRefCounted : public Noncopyable {
+    class CrossThreadRefCounted {
+        WTF_MAKE_NONCOPYABLE(CrossThreadRefCounted);
     public:
         static PassRefPtr<CrossThreadRefCounted<T> > create(T* data)
         {
index 8d0d9323b452fb6f49f69bf43a29b993215f21e3..41bd4fa311bf8f418d0a0419cd152f207913b117 100644 (file)
@@ -44,6 +44,7 @@
 #define DateMath_h
 
 #include <math.h>
+#include <stdint.h>
 #include <string.h>
 #include <time.h>
 #include <wtf/CurrentTime.h>
@@ -120,7 +121,9 @@ double parseDateFromNullTerminatedCharacters(ExecState*, const char* dateString)
 
 // Intentionally overridding the default tm of the system.
 // The members of tm differ on various operating systems.
-struct GregorianDateTime : Noncopyable {
+struct GregorianDateTime {
+    WTF_MAKE_NONCOPYABLE(GregorianDateTime);
+public:
     GregorianDateTime()
         : second(0)
         , minute(0)
index 745e0b6b7fcb2f0ec70e281163c475e55d0e8acb..1b16afce97bf90b0bc31a84d4fe9272243ec1c5a 100644 (file)
@@ -44,7 +44,8 @@ namespace WTF {
     template<typename T> class DequeConstReverseIterator;
 
     template<typename T>
-    class Deque : public FastAllocBase {
+    class Deque {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         typedef DequeIterator<T> iterator;
         typedef DequeConstIterator<T> const_iterator;
index bb1825e4562dffc04f3eb69714002eaa2be78747..e4899aba3f71911687cceeafd3f2ee73217bb1af 100644 (file)
@@ -32,8 +32,8 @@
 // Provides customizable overrides of fastMalloc/fastFree and operator new/delete
 //
 // Provided functionality:
+//    Macro: WTF_MAKE_FAST_ALLOCATED
 //    namespace WTF {
-//        class FastAllocBase;
 //
 //        T*    fastNew<T>();
 //        T*    fastNew<T>(arg);
 // FastDelete assumes that the underlying
 //
 // Example usage:
-//    class Widget : public FastAllocBase { ... };
+//    class Widget {
+//        WTF_MAKE_FAST_ALLOCATED
+//    ...
+//    };
+//
+//    struct Data {
+//        WTF_MAKE_FAST_ALLOCATED
+//    public:
+//    ...
+//    };
 //
 //    char* charPtr = fastNew<char>();
 //    fastDelete(charPtr);
@@ -83,8 +92,6 @@
 #include "FastMalloc.h"
 #include "TypeTraits.h"
 
-namespace WTF {
-
 #define WTF_MAKE_FAST_ALLOCATED \
 public: \
     void* operator new(size_t, void* p) { return p; } \
@@ -115,11 +122,10 @@ public: \
          ::WTF::fastMallocMatchValidateFree(p, ::WTF::Internal::AllocTypeClassNewArray); \
          ::WTF::fastFree(p); \
     } \
-private:
+private: \
+typedef int ThisIsHereToForceASemicolonAfterThisMacro
 
-class FastAllocBase {
-    WTF_MAKE_FAST_ALLOCATED  
-};
+namespace WTF {
 
     // fastNew / fastDelete
 
@@ -410,7 +416,6 @@ class FastAllocBase {
 
 } // namespace WTF
 
-using WTF::FastAllocBase;
 using WTF::fastDeleteSkippingDestructor;
 
 #endif // FastAllocBase_h
index 4ed75c517906fcc2efc97ed2fdd16fb227a999cb..b97d8c8fd0f97a21bbeabeb5114beb752b74979f 100644 (file)
 #define WTF_HashCountedSet_h
 
 #include "Assertions.h"
-#include "FastAllocBase.h"
 #include "HashMap.h"
 #include "Vector.h"
 
 namespace WTF {
 
     template<typename Value, typename HashFunctions = typename DefaultHash<Value>::Hash,
-        typename Traits = HashTraits<Value> > class HashCountedSet : public FastAllocBase {
+        typename Traits = HashTraits<Value> > class HashCountedSet {
+        WTF_MAKE_FAST_ALLOCATED;
     private:
         typedef HashMap<Value, unsigned, HashFunctions, Traits> ImplType;
     public:
index 09094d1ad50de8f679a05515671035eeb434bc27..7731546654d5832fffe026b3a92995552a949976 100644 (file)
@@ -29,7 +29,8 @@ namespace WTF {
 
     template<typename KeyArg, typename MappedArg, typename HashArg = typename DefaultHash<KeyArg>::Hash,
         typename KeyTraitsArg = HashTraits<KeyArg>, typename MappedTraitsArg = HashTraits<MappedArg> >
-    class HashMap : public FastAllocBase {
+    class HashMap {
+        WTF_MAKE_FAST_ALLOCATED;
     private:
         typedef KeyTraitsArg KeyTraits;
         typedef MappedTraitsArg MappedTraits;
index 66639e4d0eeaf1b023b2ddcea95f214ce0f045d2..be6b93d4b3f20431645b8ba4d8b5bace46a90ac6 100644 (file)
@@ -35,7 +35,8 @@ namespace WTF {
     template<typename T> struct IdentityExtractor;
 
     template<typename ValueArg, typename HashArg = typename DefaultHash<ValueArg>::Hash,
-        typename TraitsArg = HashTraits<ValueArg> > class HashSet : public FastAllocBase {
+        typename TraitsArg = HashTraits<ValueArg> > class HashSet {
+        WTF_MAKE_FAST_ALLOCATED;
     private:
         typedef HashArg HashFunctions;
         typedef TraitsArg ValueTraits;
index e14ac4548baa1a48e13e4e25273f48aa8ea7699d..e916ef2e347acacf7cff1c49bb3015799607d7e3 100644 (file)
@@ -52,7 +52,8 @@ namespace WTF {
     template<typename ValueArg, size_t inlineCapacity> struct ListHashSetNodeAllocator;
     template<typename ValueArg, size_t inlineCapacity, typename HashArg> struct ListHashSetNodeHashFunctions;
 
-    template<typename ValueArg, size_t inlineCapacity = 256, typename HashArg = typename DefaultHash<ValueArg>::Hash> class ListHashSet : public FastAllocBase {
+    template<typename ValueArg, size_t inlineCapacity = 256, typename HashArg = typename DefaultHash<ValueArg>::Hash> class ListHashSet {
+        WTF_MAKE_FAST_ALLOCATED;
     private:
         typedef ListHashSetNode<ValueArg, inlineCapacity> Node;
         typedef ListHashSetNodeAllocator<ValueArg, inlineCapacity> NodeAllocator;
index 41813d3f9f49a9c892c02992b0393b4333c04057..c465b99ea4c1a33d3179cdc964cca01a0607f5a8 100644 (file)
@@ -32,7 +32,8 @@
 
 namespace WTF {
 
-template <typename T> class Locker : public Noncopyable {
+template <typename T> class Locker {
+    WTF_MAKE_NONCOPYABLE(Locker);
 public:
     Locker(T& lockable) : m_lockable(lockable) { m_lockable.lock(); }
     ~Locker() { m_lockable.unlock(); }
index 14100c9f2cc7c0fe4aaf3c85b00941843d803c5b..7c18a0cbce593911398f3bf25109f9ace05b57f8 100644 (file)
@@ -48,7 +48,8 @@ namespace WTF {
     // when messages are fetched from the queue.
     // Essentially, MessageQueue acts as a queue of OwnPtr<DataType>.
     template<typename DataType>
-    class MessageQueue : public Noncopyable {
+    class MessageQueue {
+        WTF_MAKE_NONCOPYABLE(MessageQueue);
     public:
         MessageQueue() : m_killed(false) { }
         ~MessageQueue();
index 285ed2edbc11dbf4babd659c780e4f0949df7464..cc6bc559a3c2f1d68aa8d8db4e3975b5d6fbadd0 100644 (file)
             ClassName& operator=(const ClassName&)
 #endif
 
-// We don't want argument-dependent lookup to pull in everything from the WTF
-// namespace when you use Noncopyable, so put it in its own namespace.
-
-#include "FastAllocBase.h"
-
-namespace WTFNoncopyable {
-
-    class Noncopyable : public FastAllocBase {
-        Noncopyable(const Noncopyable&);
-        Noncopyable& operator=(const Noncopyable&);
-    protected:
-        Noncopyable() { }
-        ~Noncopyable() { }
-    };
-
-} // namespace WTFNoncopyable
-
-using WTFNoncopyable::Noncopyable;
-
 #endif // WTF_Noncopyable_h
index 643b90bc9ce021d99f0461a330d8174f5e9ec93c..dbd34af78e23ec247ad537584a9464c749663678 100644 (file)
@@ -35,7 +35,7 @@ namespace WTF {
 template<typename T> class PassOwnArrayPtr;
 template<typename T> PassOwnArrayPtr<T> adoptArrayPtr(T*);
 
-template <typename T> class OwnArrayPtr : public Noncopyable {
+template <typename T> class OwnArrayPtr {
 public:
     typedef T* PtrType;
 
index 8b6cbf45e7acd24831843d1c734266b985407ea9..9d4841a8e299f4a13f036da7280eb67571a34aec 100644 (file)
 #define OwnFastMallocPtr_h
 
 #include "FastMalloc.h"
-#include "Noncopyable.h"
 
 namespace WTF {
 
-    template<class T> class OwnFastMallocPtr : public Noncopyable {
+    template<class T> class OwnFastMallocPtr {
+        WTF_MAKE_NONCOPYABLE(OwnFastMallocPtr);
     public:
         explicit OwnFastMallocPtr(T* ptr) : m_ptr(ptr)
         {
index cdc277cf98ee7914c6a8e6c094a5d75860035446..fb594321b5a0543870f8682eb8bd531cb508363b 100644 (file)
@@ -22,7 +22,6 @@
 #define WTF_OwnPtr_h
 
 #include "Assertions.h"
-#include "Noncopyable.h"
 #include "NullPtr.h"
 #include "OwnPtrCommon.h"
 #include "TypeTraits.h"
@@ -39,7 +38,7 @@ namespace WTF {
     template<typename T> class PassOwnPtr;
     template<typename T> PassOwnPtr<T> adoptPtr(T*);
 
-    template<typename T> class OwnPtr : public Noncopyable {
+    template<typename T> class OwnPtr {
     public:
         typedef typename RemovePointer<T>::Type ValueType;
         typedef ValueType* PtrType;
index 8d8b302cdacbe6a17ecedbc164f07fb0f7ec1ca2..da178b2bb56c7ec845605cf7a2fbaa4a517a515c 100644 (file)
@@ -22,6 +22,7 @@
 #define RefCounted_h
 
 #include "Assertions.h"
+#include "FastAllocBase.h"
 #include "Noncopyable.h"
 
 namespace WTF {
@@ -131,7 +132,8 @@ inline void adopted(RefCountedBase* object)
 
 #endif
 
-template<typename T> class RefCounted : public RefCountedBase, public Noncopyable {
+template<typename T> class RefCounted : public RefCountedBase {
+    WTF_MAKE_NONCOPYABLE(RefCounted); WTF_MAKE_FAST_ALLOCATED;
 public:
     void deref()
     {
@@ -140,6 +142,7 @@ public:
     }
 
 protected:
+    RefCounted() { }
     ~RefCounted()
     {
     }
index d57f88a70407dea0c7bc03d1a39c04f69585d248..353bd35ddf5fb99ffe8596d08eb9e9c74ea1876c 100644 (file)
@@ -36,7 +36,8 @@ namespace WTF {
 
     enum HashTableDeletedValueType { HashTableDeletedValue };
 
-    template<typename T> class RefPtr : public FastAllocBase {
+    template<typename T> class RefPtr {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         ALWAYS_INLINE RefPtr() : m_ptr(0) { }
         ALWAYS_INLINE RefPtr(T* ptr) : m_ptr(ptr) { refIfNotNull(ptr); }
index b9e7eea443ee545186304e55464d2027c7384de1..dbeabfaea5db460d93f8b81b98f04e5eea6b83b7 100644 (file)
@@ -45,7 +45,8 @@ namespace WTF {
     };
 
     template<typename T, typename MappedArg, typename HashArg, typename KeyTraitsArg, typename MappedTraitsArg>
-    class HashMap<RefPtr<T>, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg> : public FastAllocBase {
+    class HashMap<RefPtr<T>, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg> {
+        WTF_MAKE_FAST_ALLOCATED;
     private:
         typedef KeyTraitsArg KeyTraits;
         typedef MappedTraitsArg MappedTraits;
index 3af87a8aa3cae7067d156786f44c2976f451611d..ed1ba2cc0285af2b196e66c77bcb9cd3b62cb18e 100644 (file)
 #ifndef ThreadIdentifierDataPthreads_h
 #define ThreadIdentifierDataPthreads_h
 
-#include <wtf/Noncopyable.h>
 #include <wtf/Threading.h>
 
 namespace WTF {
 
 // Holds ThreadIdentifier in the thread-specific storage and employs pthreads-specific 2-pass destruction to reliably remove
 // ThreadIdentifier from threadMap. It assumes regular ThreadSpecific types don't use multiple-pass destruction.
-class ThreadIdentifierData : public Noncopyable {
+class ThreadIdentifierData {
+    WTF_MAKE_NONCOPYABLE(ThreadIdentifierData);
 public:
     ~ThreadIdentifierData();
 
index 33c66124794297ab68e1d477ffc1f07628bbd6d4..a6a1cf293b2471f9455577b84de1372000477d47 100644 (file)
 #include "Platform.h"
 
 #include <wtf/Atomics.h>
-#include <wtf/Noncopyable.h>
 #include <wtf/ThreadingPrimitives.h>
 
 namespace WTF {
 
-class ThreadSafeSharedBase : public Noncopyable {
+class ThreadSafeSharedBase {
+    WTF_MAKE_NONCOPYABLE(ThreadSafeSharedBase); WTF_MAKE_FAST_ALLOCATED;
 public:
     ThreadSafeSharedBase(int initialRefCount = 1)
         : m_refCount(initialRefCount)
index 93ed4668d6d0d7444aae6cc90de20e9bebaedcac..fa9a3933e83a7b163fbb62eda18efa51a11e45f6 100644 (file)
@@ -61,7 +61,8 @@ namespace WTF {
 void ThreadSpecificThreadExit();
 #endif
 
-template<typename T> class ThreadSpecific : public Noncopyable {
+template<typename T> class ThreadSpecific {
+    WTF_MAKE_NONCOPYABLE(ThreadSpecific);
 public:
     ThreadSpecific();
     T* operator->();
@@ -84,7 +85,9 @@ private:
     void static destroy(void* ptr);
 
 #if USE(PTHREADS) || PLATFORM(QT) || PLATFORM(GTK) || OS(WINDOWS)
-    struct Data : Noncopyable {
+    struct Data {
+        WTF_MAKE_NONCOPYABLE(Data);
+    public:
         Data(T* value, ThreadSpecific<T>* owner) : value(value), owner(owner) {}
 #if PLATFORM(QT)
         ~Data() { owner->destroy(this); }
index f2c0cad95766558f0f69e2457490fea8bf558e45..d72996a7a0ca0239a146118d3e05b1e681ad5631 100644 (file)
@@ -21,7 +21,6 @@
 #include "config.h"
 
 #include "ThreadSpecific.h"
-#include <wtf/Noncopyable.h>
 
 #if USE(PTHREADS)
 #error This file should not be compiled by ports that do not use Windows native ThreadSpecific implementation.
index 49de59ec00ae509abaa56b757fdf953532f7697b..f2e0565e996258f7886e03ad44f890d2d7b6ceec 100644 (file)
@@ -30,7 +30,9 @@
 
 namespace WTF {
 
-struct NewThreadContext : FastAllocBase {
+struct NewThreadContext {
+    WTF_MAKE_FAST_ALLOCATED;
+public:
     NewThreadContext(ThreadFunction entryPoint, void* data, const char* name)
         : entryPoint(entryPoint)
         , data(data)
index c11a6cb1b95bd5d3ee40e101f6a61104e6b2d9b1..809c3e2628c3d9ac9889a3601232f31aa170929d 100644 (file)
@@ -34,6 +34,7 @@
 #include "Platform.h"
 
 #include <wtf/Assertions.h>
+#include <wtf/FastAllocBase.h>
 #include <wtf/Locker.h>
 #include <wtf/Noncopyable.h>
 
@@ -96,7 +97,8 @@ typedef void* PlatformReadWriteLock;
 typedef void* PlatformCondition;
 #endif
     
-class Mutex : public Noncopyable {
+class Mutex {
+    WTF_MAKE_NONCOPYABLE(Mutex); WTF_MAKE_FAST_ALLOCATED;
 public:
     Mutex();
     ~Mutex();
@@ -113,7 +115,8 @@ private:
 
 typedef Locker<Mutex> MutexLocker;
 
-class ReadWriteLock : public Noncopyable {
+class ReadWriteLock {
+    WTF_MAKE_NONCOPYABLE(ReadWriteLock);
 public:
     ReadWriteLock();
     ~ReadWriteLock();
@@ -130,7 +133,8 @@ private:
     PlatformReadWriteLock m_readWriteLock;
 };
 
-class ThreadCondition : public Noncopyable {
+class ThreadCondition {
+    WTF_MAKE_NONCOPYABLE(ThreadCondition);
 public:
     ThreadCondition();
     ~ThreadCondition();
index f73793f13709bddd94c90beba66cff94393ed41f..6d8dd4c3a3517b05ea520452ab0d1671c8cdda43 100644 (file)
@@ -277,7 +277,8 @@ namespace WTF {
     };
 
     template<typename T>
-    class VectorBufferBase : public Noncopyable {
+    class VectorBufferBase {
+        WTF_MAKE_NONCOPYABLE(VectorBufferBase);
     public:
         void allocateBuffer(size_t newCapacity)
         {
@@ -488,7 +489,8 @@ namespace WTF {
     };
 
     template<typename T, size_t inlineCapacity = 0>
-    class Vector : public FastAllocBase {
+    class Vector {
+        WTF_MAKE_FAST_ALLOCATED;
     private:
         typedef VectorBuffer<T, inlineCapacity> Buffer;
         typedef VectorTypeOperations<T> TypeOperations;
index 52c267ac3d2c183221df67bb7e0b4add880ff5f7..243aa91aa46f8e9d6ce03495e1996fc857f82b07 100644 (file)
@@ -52,7 +52,8 @@ namespace JSC {
 
 typedef HashMap<const char*, RefPtr<StringImpl>, PtrHash<const char*> > LiteralIdentifierTable;
 
-class IdentifierTable : public FastAllocBase {
+class IdentifierTable {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     ~IdentifierTable();
 
@@ -85,7 +86,8 @@ class AtomicStringTable;
 
 typedef void (*AtomicStringTableDestructor)(AtomicStringTable*);
 
-class WTFThreadData : public Noncopyable {
+class WTFThreadData {
+    WTF_MAKE_NONCOPYABLE(WTFThreadData);
 public:
     WTFThreadData();
     ~WTFThreadData();
index c89c03692faafe3af5a5022c640305a83e2af832..b5b1261123776ce87e20634f27e725ebacd8820c 100644 (file)
@@ -414,7 +414,10 @@ static void mult(BigInt& aRef, const BigInt& bRef)
     aRef = c;
 }
 
-struct P5Node : Noncopyable {
+struct P5Node {
+    WTF_MAKE_NONCOPYABLE(P5Node); WTF_MAKE_FAST_ALLOCATED;
+public:
+    P5Node() { }
     BigInt val;
     P5Node* next;
 };
index cec3e4328dbbaa06ae6fde6f5e4773cb5156b648..4136f288e441217b686c60d4448a7cae693882c7 100644 (file)
@@ -41,7 +41,8 @@ template<> void freeOwnedGPtr<GPatternSpec>(GPatternSpec*);
 template<> void freeOwnedGPtr<GDir>(GDir*);
 template<> void freeOwnedGPtr<GFile>(GFile*);
 
-template <typename T> class GOwnPtr : public Noncopyable {
+template <typename T> class GOwnPtr {
+    WTF_MAKE_NONCOPYABLE(GOwnPtr);
 public:
     explicit GOwnPtr(T* ptr = 0) : m_ptr(ptr) { }
     ~GOwnPtr() { freeOwnedGPtr(m_ptr); }
index a546bf3b4b77bbed7f040156ed87ec50fd5c4cc2..e73d38e56d097c9edc036371d4d43ae283d5c3ee 100644 (file)
 #define StringBuffer_h
 
 #include <wtf/Assertions.h>
-#include <wtf/Noncopyable.h>
 #include <wtf/unicode/Unicode.h>
 #include <limits>
 
 namespace WTF {
 
-class StringBuffer : public Noncopyable {
+class StringBuffer {
+    WTF_MAKE_NONCOPYABLE(StringBuffer);
 public:
     explicit StringBuffer(unsigned length)
         : m_length(length)
index 65676725eb583158a7569d0d1a0bb685b83bd019..26bc1d90ce524e5233f3e47c0e86ccccb1cfbb91 100644 (file)
 #ifndef StringImplBase_h
 #define StringImplBase_h
 
-#include <wtf/Noncopyable.h>
 #include <wtf/unicode/Unicode.h>
 
 namespace WTF {
 
-class StringImplBase : public Noncopyable {
+class StringImplBase {
+    WTF_MAKE_NONCOPYABLE(StringImplBase); WTF_MAKE_FAST_ALLOCATED;
 public:
     bool isStringImpl() { return (m_refCountAndFlags & s_refCountInvalidForStringImpl) != s_refCountInvalidForStringImpl; }
     unsigned length() const { return m_length; }
@@ -45,9 +45,6 @@ protected:
         BufferShared,
     };
 
-    using Noncopyable::operator new;
-    void* operator new(size_t, void* inPlace) { ASSERT(inPlace); return inPlace; }
-
     // For SmallStringStorage, which allocates an array and uses an in-place new.
     StringImplBase() { }
 
index fe6a8096ce6adff570a1f54c6bc3096141f85b3c..00ab16e6a5bdba6ff14b5b371f1c914c1880382f 100644 (file)
@@ -29,6 +29,7 @@
 #ifndef WTF_Collator_h
 #define WTF_Collator_h
 
+#include <wtf/FastAllocBase.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/unicode/Unicode.h>
@@ -39,7 +40,8 @@ struct UCollator;
 
 namespace WTF {
 
-    class Collator : public Noncopyable {
+    class Collator {
+        WTF_MAKE_NONCOPYABLE(Collator); WTF_MAKE_FAST_ALLOCATED;
     public:
         enum Result { Equal = 0, Greater = 1, Less = -1 };
 
index be703a9c888e56f7f90832470d1959dfe0e04d96..eea5266f7d0f9f2ab4d0b32a1c304d4eabda69fb 100644 (file)
@@ -299,7 +299,8 @@ struct ByteTerm {
     }
 };
 
-class ByteDisjunction : public FastAllocBase {
+class ByteDisjunction {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     ByteDisjunction(unsigned numSubpatterns, unsigned frameSize)
         : m_numSubpatterns(numSubpatterns)
@@ -312,7 +313,9 @@ public:
     unsigned m_frameSize;
 };
 
-struct BytecodePattern : FastAllocBase {
+struct BytecodePattern {
+    WTF_MAKE_FAST_ALLOCATED;
+public:
     BytecodePattern(PassOwnPtr<ByteDisjunction> body, Vector<ByteDisjunction*> allParenthesesInfo, YarrPattern& pattern, BumpPointerAllocator* allocator)
         : m_body(body)
         , m_ignoreCase(pattern.m_ignoreCase)
index 2172dda6fda9380394012bcbf46899883addea20..d80f692be8146916094f5f11e67a83d06d6bead5 100644 (file)
@@ -63,7 +63,9 @@ private:
     }
 };
 
-struct CharacterClass : FastAllocBase {
+struct CharacterClass {
+    WTF_MAKE_FAST_ALLOCATED;
+public:
     // All CharacterClass instances have to have the full set of matches and ranges,
     // they may have an optional table for faster lookups (which must match the
     // specified matches and ranges)
@@ -204,7 +206,9 @@ struct PatternTerm {
     }
 };
 
-struct PatternAlternative : FastAllocBase {
+struct PatternAlternative {
+    WTF_MAKE_FAST_ALLOCATED;
+public:
     PatternAlternative(PatternDisjunction* disjunction)
         : m_parent(disjunction)
         , m_onceThrough(false)
@@ -245,7 +249,9 @@ struct PatternAlternative : FastAllocBase {
     bool m_containsBOL : 1;
 };
 
-struct PatternDisjunction : FastAllocBase {
+struct PatternDisjunction {
+    WTF_MAKE_FAST_ALLOCATED;
+public:
     PatternDisjunction(PatternAlternative* parent = 0)
         : m_parent(parent)
         , m_hasFixedSize(false)
index c59834c86b2ee2e2be5bf48d9b597d4fad20e349..e0381ab9c19ff6e075020910f96b1c341938e82a 100644 (file)
@@ -1,3 +1,14 @@
+2011-01-20  Zoltan Horvath  <zoltan@webkit.org>
+
+        Reviewed by Csaba Osztrogonác.
+
+        Refactoring of the custom allocation framework
+        https://bugs.webkit.org/show_bug.cgi?id=49897
+
+        Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
+        The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
+        equivalent macro implementation at the necessary places.
+
 2011-01-20  Mikhail Naganov  <mnaganov@chromium.org>
 
         Reviewed by Pavel Feldman.
index 670d6e0669f97f735e20f3fa596d219c2bbf4018..00e7fbc0a140abb4061f2323843c88048c354e73 100644 (file)
@@ -60,7 +60,8 @@ struct TextMarkerData {
 
 enum PostType { PostSynchronously, PostAsynchronously };
 
-class AXObjectCache : public Noncopyable {
+class AXObjectCache {
+    WTF_MAKE_NONCOPYABLE(AXObjectCache); WTF_MAKE_FAST_ALLOCATED;
 public:
     AXObjectCache(const Document*);
     ~AXObjectCache();
index ea68d10ef28fece4eda61ea996029b785a7a6222..9bae8ca24beebb1cfa38e2490db868d5b09ce266 100644 (file)
@@ -36,6 +36,7 @@
 namespace WebCore {
 
     class CachedScriptSourceProvider : public ScriptSourceProvider, public CachedResourceClient {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         static PassRefPtr<CachedScriptSourceProvider> create(CachedScript* cachedScript) { return adoptRef(new CachedScriptSourceProvider(cachedScript)); }
 
index 4c2540787425e5210a3e69c69ba31aa099be1896..91f1e4c533cf2bd58ae9e87051c36632081b7ee9 100644 (file)
 #ifndef GCController_h
 #define GCController_h
 
-#include <wtf/Noncopyable.h>
 #include "Timer.h"
 
 namespace WebCore {
 
-    class GCController : public Noncopyable {
+    class GCController {
+        WTF_MAKE_NONCOPYABLE(GCController); WTF_MAKE_FAST_ALLOCATED;
         friend GCController& gcController();
 
     public:
index 94b6f78fcf47bc2818d1a37e60b7ee107e0f3d17..e1138eda8fb9d6bd0fe14ea253acde0585e7658f 100644 (file)
@@ -37,7 +37,8 @@ namespace WebCore {
 //     - wrappers being deleted without being removed from the cache
 //     - wrappers being cached twice
 
-class JSDebugWrapperSet : public Noncopyable {
+class JSDebugWrapperSet {
+    WTF_MAKE_NONCOPYABLE(JSDebugWrapperSet);
     friend class WTF::ThreadSpecific<JSDebugWrapperSet>;
 public:
     static JSDebugWrapperSet& shared();
index 8193d7cb5ae8046ad193996908a7cdda023dbe60..349dc14b6ae2fb63e449f6e2775582cacb2cbb71 100644 (file)
 #ifndef NDEBUG
 #include <wtf/MainThread.h>
 #endif
-#include <wtf/Noncopyable.h>
 
 namespace WebCore {
 
-class JSMainThreadExecState : public Noncopyable {
+class JSMainThreadExecState {
+    WTF_MAKE_NONCOPYABLE(JSMainThreadExecState);
 public:
     static JSC::ExecState* currentState()
     { 
index 6c9d0baac69b52905225140e4b4a7c098f48bedc..59ad6fc25b23547ca1f03ea821bf723b34925201 100644 (file)
@@ -41,7 +41,8 @@ namespace WebCore {
     * time interval, either once or repeatedly. Used for window.setTimeout()
     * and window.setInterval()
     */
-    class ScheduledAction : public Noncopyable {
+    class ScheduledAction {
+        WTF_MAKE_NONCOPYABLE(ScheduledAction); WTF_MAKE_FAST_ALLOCATED;
     public:
         static PassOwnPtr<ScheduledAction> create(JSC::ExecState*, DOMWrapperWorld* isolatedWorld);
 
index 15c23c51793bc1b97f2dd0ecf6d625943f7e37a7..5f691d91ffc64cd95b82675b32884020807e8acf 100644 (file)
@@ -40,7 +40,8 @@ namespace WebCore {
     class DOMWindow;
     class DOMWrapperWorld;
 
-    class ScriptCachedFrameData  : public Noncopyable {
+    class ScriptCachedFrameData {
+        WTF_MAKE_NONCOPYABLE(ScriptCachedFrameData); WTF_MAKE_FAST_ALLOCATED;
         typedef HashMap< RefPtr<DOMWrapperWorld>, JSC::ProtectedPtr<JSDOMWindow> > JSDOMWindowSet;
 
     public:
index de274dbae07c08e85eff1ba67f0b119caecd6cda..bde47364346efe163042b0d1cd0dd100b7ac5002 100644 (file)
@@ -56,7 +56,8 @@ class PageGroup;
 class ScriptDebugListener;
 class JavaScriptCallFrame;
 
-class ScriptDebugServer : JSC::Debugger, public Noncopyable {
+class ScriptDebugServer : JSC::Debugger {
+    WTF_MAKE_NONCOPYABLE(ScriptDebugServer); WTF_MAKE_FAST_ALLOCATED;
 public:
     static ScriptDebugServer& shared();
 
index 05e7a25a9aaf95ed20929305e90135b321503ab4..d4dd6068b4b3a57263f96086f9078ada637914e9 100644 (file)
 #include "ScriptProfile.h"
 #include "ScriptState.h"
 
-#include <wtf/Noncopyable.h>
 
 namespace WebCore {
 
-class ScriptProfiler : public Noncopyable {
+class ScriptProfiler {
+    WTF_MAKE_NONCOPYABLE(ScriptProfiler);
 public:
     static void start(ScriptState* state, const String& title);
     static PassRefPtr<ScriptProfile> stop(ScriptState* state, const String& title);
index 0c0861181c96d72917bcd123822053a57cbec05e..e19c0c830ed2113262212816e618c4b48bcf51b1 100644 (file)
@@ -52,7 +52,8 @@ class Page;
 // For now, the separation is purely by convention.
 typedef JSC::ExecState ScriptState;
 
-class ScriptStateProtectedPtr : public Noncopyable {
+class ScriptStateProtectedPtr {
+    WTF_MAKE_NONCOPYABLE(ScriptStateProtectedPtr);
 public:
     explicit ScriptStateProtectedPtr(ScriptState*);
     ~ScriptStateProtectedPtr();
index 5d03328c6730902906563c3d91a99d4574969f2d..6e2d7bed3cb4e5284759a917935599ecb8bf1f58 100644 (file)
 
 #include "DOMWrapperWorld.h"
 #include "DOMObjectHashTableMap.h"
-#include <wtf/Noncopyable.h>
 #include <wtf/HashSet.h>
 #include <wtf/RefPtr.h>
 
 namespace WebCore {
 
-class WebCoreJSClientData : public JSC::JSGlobalData::ClientData, public Noncopyable {
+class WebCoreJSClientData : public JSC::JSGlobalData::ClientData {
+    WTF_MAKE_NONCOPYABLE(WebCoreJSClientData); WTF_MAKE_FAST_ALLOCATED;
     friend class JSGlobalDataWorldIterator;
     friend void initNormalWorldClientData(JSC::JSGlobalData*);
 
 public:
+    WebCoreJSClientData() { }
     virtual ~WebCoreJSClientData()
     {
         ASSERT(m_worldSet.contains(m_normalWorld.get()));
index be7da4d87522ca41a79c09ea49c68af50ad94b23..4578913c95ea5dc0a2936f73b5c9003c464e9020 100644 (file)
@@ -31,7 +31,6 @@
 
 #include <runtime/Protect.h>
 #include <wtf/Forward.h>
-#include <wtf/Noncopyable.h>
 #include <wtf/Threading.h>
 
 namespace JSC {
@@ -45,7 +44,8 @@ namespace WebCore {
     class ScriptValue;
     class WorkerContext;
 
-    class WorkerScriptController : public Noncopyable {
+    class WorkerScriptController {
+        WTF_MAKE_NONCOPYABLE(WorkerScriptController); WTF_MAKE_FAST_ALLOCATED;
     public:
         WorkerScriptController(WorkerContext*);
         ~WorkerScriptController();
index 78edf924bbd458c459b0bd0d9f322b9531d52fdd..b0426068e78b9e228b609c5d3dd5bf80a19716f1 100644 (file)
@@ -43,7 +43,8 @@ namespace WebCore {
     // thread.  The DOMData for the main thread and the DOMData for child threads
     // use different subclasses.
     //
-    class DOMData : public Noncopyable {
+    class DOMData {
+        WTF_MAKE_NONCOPYABLE(DOMData);
     public:
         DOMData();
         virtual ~DOMData();
index cfe220e20192d2f29c9c0b0e4d0861d1008d9cf6..dbead9cba09e5723d4b41ae2a35ded0ff4a83341 100644 (file)
@@ -149,7 +149,8 @@ namespace WebCore {
     // This class doesn't manage the lifetime of the store.  The data store
     // lifetime is managed by subclasses.
     //
-    class DOMDataStore : public Noncopyable {
+    class DOMDataStore {
+        WTF_MAKE_NONCOPYABLE(DOMDataStore);
     public:
         enum DOMWrapperMapType {
             DOMNodeMap,
index 1aa1f62bd8a922e77cb206d2f168b0f0449d3601..376b5f67cda12b4ba5d2e37acece3dbfbfb6edcc 100644 (file)
@@ -60,14 +60,14 @@ public:
 
 #include "OwnHandle.h"
 #include <v8.h>
-#include <wtf/Noncopyable.h>
 
 namespace WebCore {
 
 class Frame;
 class DOMWindow;
 
-class ScriptCachedFrameData  : public Noncopyable {
+class ScriptCachedFrameData  {
+    WTF_MAKE_NONCOPYABLE(ScriptCachedFrameData);
 public:
     ScriptCachedFrameData(Frame*);
     ~ScriptCachedFrameData() { }
index 40dd5fcfe14e62918b77f6f3337b49794b10af99..8fa723f92810df33d82919eb0024b7e1e6125a34 100644 (file)
@@ -48,7 +48,8 @@ namespace WebCore {
 class Page;
 class ScriptDebugListener;
 
-class ScriptDebugServer : public Noncopyable {
+class ScriptDebugServer {
+    WTF_MAKE_NONCOPYABLE(ScriptDebugServer);
 public:
     static ScriptDebugServer& shared();
 
index b75a0545b4144a43de7a5fc33cca3073a8ffa291..e0969e10cac416c0c22f6ba841dc88758389fb78 100644 (file)
 #include "ScriptProfile.h"
 #include "ScriptState.h"
 
-#include <wtf/Noncopyable.h>
 
 namespace WebCore {
 
 class InspectorObject;
 
-class ScriptProfiler : public Noncopyable {
+class ScriptProfiler {
+    WTF_MAKE_NONCOPYABLE(ScriptProfiler);
 public:
     static void start(ScriptState* state, const String& title);
     static PassRefPtr<ScriptProfile> stop(ScriptState* state, const String& title);
index 11813b09ed3a6b04ec844909e09f179d927860fa..0fecee8f4116929dfe819e378f3b1a21bca45dff 100644 (file)
@@ -42,7 +42,8 @@ class Frame;
 class Node;
 class Page;
 
-class ScriptState : public Noncopyable {
+class ScriptState {
+    WTF_MAKE_NONCOPYABLE(ScriptState);
 public:
     bool hadException() { return !m_exception.IsEmpty(); }
     void setException(v8::Local<v8::Value> exception)
@@ -79,7 +80,8 @@ public:
     ~EmptyScriptState() { }
 };
 
-class ScriptStateProtectedPtr : public Noncopyable {
+class ScriptStateProtectedPtr {
+    WTF_MAKE_NONCOPYABLE(ScriptStateProtectedPtr);
 public:
     ScriptStateProtectedPtr() : m_scriptState(0) { }
     ScriptStateProtectedPtr(ScriptState* scriptState) : m_scriptState(scriptState)
index e050bfcc7db3fb96bf6d536c9da0b3f727e69162..666e619bb525f099ff03ac8f9f6d04d26f9a7b8a 100644 (file)
@@ -128,7 +128,8 @@ private:
 
 // Writer is responsible for serializing primitive types and storing
 // information used to reconstruct composite types.
-class Writer : Noncopyable {
+class Writer {
+    WTF_MAKE_NONCOPYABLE(Writer);
 public:
     Writer()
         : m_position(0)
@@ -377,7 +378,8 @@ public:
     }
 
 private:
-    class StateBase : public Noncopyable {
+    class StateBase {
+        WTF_MAKE_NONCOPYABLE(StateBase);
     public:
         virtual ~StateBase() { }
 
index 50efc6464b445c0cf88f9798d77ccddfdbb6118d..00d6f3639403a4ca37c2f2d9955074a7debf744a 100644 (file)
 #define Bridge_h
 
 #include "BridgeJSC.h"
-#include <wtf/Noncopyable.h>
 
 namespace JSC  {
 
 namespace Bindings {
 
-class Method : public Noncopyable {
+class Method {
+    WTF_MAKE_NONCOPYABLE(Method); WTF_MAKE_FAST_ALLOCATED;
 public:
+    Method() { }
     virtual int numParameters() const = 0;
 
     virtual ~Method() { }
index 99bae0b1b95feec02e4bbe57b8a9a322c31d8546..8646e9292cc83692173d4a099386038739ff9066 100644 (file)
@@ -33,7 +33,8 @@
 
 namespace WebCore {
     
-class IdentifierRep : public FastAllocBase {
+class IdentifierRep {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static IdentifierRep* get(int);
     static IdentifierRep* get(const char*);
index 96974d94cefc021e1e352b2467790b280f424e3f..ebcfaad30f70a96e4748d78d7d5e303a0b20bbb4 100644 (file)
@@ -59,8 +59,10 @@ public:
     virtual ~Field() { }
 };
 
-class Class : public Noncopyable {
+class Class {
+    WTF_MAKE_NONCOPYABLE(Class); WTF_MAKE_FAST_ALLOCATED;
 public:
+    Class() { }
     virtual MethodList methodsNamed(const Identifier&, Instance*) const = 0;
     virtual Field* fieldNamed(const Identifier&, Instance*) const = 0;
     virtual JSValue fallbackObject(ExecState*, Instance*, const Identifier&) { return jsUndefined(); }
@@ -125,7 +127,8 @@ private:
     WeakGCPtr<RuntimeObject> m_runtimeObject;
 };
 
-class Array : public Noncopyable {
+class Array {
+    WTF_MAKE_NONCOPYABLE(Array);
 public:
     Array(PassRefPtr<RootObject>);
     virtual ~Array();
index 833d7fee5030606a7558e114551d40bbbe9ec278..174f1ed03ca7b89bfabe7b2218e3c56bb03edf73 100644 (file)
@@ -32,6 +32,7 @@ class StyleCachedImage;
 class StyleImage;
 
 class CSSImageValue : public CSSPrimitiveValue, private CachedResourceClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassRefPtr<CSSImageValue> create() { return adoptRef(new CSSImageValue); }
     static PassRefPtr<CSSImageValue> create(const String& url) { return adoptRef(new CSSImageValue(url)); }
index 10d30268e16b1f457bac5e432923fd329d23daae..ad4e97de67a200d610d7abe2ae8f335076383af7 100644 (file)
@@ -34,6 +34,7 @@ class CachedCSSStyleSheet;
 class MediaList;
 
 class CSSImportRule : public CSSRule, private CachedResourceClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassRefPtr<CSSImportRule> create(CSSStyleSheet* parent, const String& href, PassRefPtr<MediaList> media)
     {
index 6225c36ff4821f40dd6c0c2c0d48b5ed9fbfafa4..92638f20ee0bd54219786353f8f058e078cb7704 100644 (file)
@@ -26,7 +26,9 @@
 
 namespace WebCore {
 
-    struct CSSNamespace : Noncopyable {
+    struct CSSNamespace {
+        WTF_MAKE_NONCOPYABLE(CSSNamespace); WTF_MAKE_FAST_ALLOCATED;
+    public:
         AtomicString prefix;
         AtomicString uri;
         OwnPtr<CSSNamespace> parent;
index 496a21a4a04c13efc9366da9568413b5d04543d8..d32681273e996e02a0131a9130f18abb74f6e26c 100644 (file)
@@ -340,7 +340,8 @@ namespace WebCore {
     int cssPropertyID(const String&);
     int cssValueKeywordID(const CSSParserString&);
 
-    class ShorthandScope : public FastAllocBase {
+    class ShorthandScope {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         ShorthandScope(CSSParser* parser, int propId) : m_parser(parser)
         {
index 993ae2836ad78cc1dcfc54474e7f0350cc6a19e7..996e783501aff9078450336f01bbaca84e577f9a 100644 (file)
@@ -59,7 +59,8 @@ struct CSSParserValue {
     PassRefPtr<CSSValue> createCSSValue();
 };
 
-class CSSParserValueList : public FastAllocBase {
+class CSSParserValueList {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     CSSParserValueList()
         : m_current(0)
@@ -83,7 +84,9 @@ private:
     Vector<CSSParserValue, 4> m_values;
 };
 
-struct CSSParserFunction : FastAllocBase {
+struct CSSParserFunction {
+    WTF_MAKE_FAST_ALLOCATED;
+public:
     CSSParserString name;
     OwnPtr<CSSParserValueList> args;
 };
index 106171d815bedff9b5836e533ef1bf11191841d9..10e593c2a4e03f2c798ecb025f2ae3d5829563f7 100644 (file)
@@ -29,7 +29,8 @@
 
 namespace WebCore {
 
-class CSSProperty : public FastAllocBase {
+class CSSProperty {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     CSSProperty(int propID, PassRefPtr<CSSValue> value, bool important = false, int shorthandID = 0, bool implicit = false)
         : m_id(propID)
index 400dd40bb5ea642e802963ae6db44f8b754bf17f..ca3814a1634086a8f319ee6fa5b87bc2d7f713d0 100644 (file)
@@ -37,8 +37,10 @@ namespace WebCore {
 
 using namespace HTMLNames;
 
-class CSSSelectorBag : public Noncopyable {
+class CSSSelectorBag {
+    WTF_MAKE_NONCOPYABLE(CSSSelectorBag);
 public:
+    CSSSelectorBag() { }
     ~CSSSelectorBag()
     {
         ASSERT(isEmpty());
index 5456be6cb2842a3a8545227daff328b136a1b0a1..b9303536f6bf7b0bdc9465d16863f843ee672c64 100644 (file)
@@ -33,7 +33,8 @@ namespace WebCore {
     class CSSSelectorBag;
 
     // this class represents a selector for a StyleRule
-    class CSSSelector : public Noncopyable {
+    class CSSSelector {
+        WTF_MAKE_NONCOPYABLE(CSSSelector); WTF_MAKE_FAST_ALLOCATED;
     public:
         CSSSelector()
             : m_relation(Descendant)
@@ -306,7 +307,9 @@ namespace WebCore {
         unsigned specificityForPage() const;
         void extractPseudoType() const;
 
-        struct RareData : Noncopyable {
+        struct RareData {
+            WTF_MAKE_NONCOPYABLE(RareData); WTF_MAKE_FAST_ALLOCATED;
+        public:
             RareData(PassOwnPtr<CSSSelector> tagHistory)
                 : m_a(0)
                 , m_b(0)
index 7adc6b9f587d4a71568518edd1fe3dc8d98a0c53..abd9bc882ca28d0de694a1e5842382e64d1e1594 100644 (file)
 #define CSSSelectorList_h
 
 #include "CSSSelector.h"
-#include <wtf/Noncopyable.h>
 
 namespace WebCore {
     
-class CSSSelectorList : public Noncopyable {
+class CSSSelectorList {
+    WTF_MAKE_NONCOPYABLE(CSSSelectorList); WTF_MAKE_FAST_ALLOCATED;
 public:
     CSSSelectorList() : m_selectorArray(0) { }
     ~CSSSelectorList();
index fc0722ad5103221f100d36b4cdd4794453da935d..27b44d20c5ac3fcc550024d1597b4b898e32792d 100644 (file)
@@ -352,7 +352,8 @@ if (id == propID) { \
     return; \
 }
 
-class CSSRuleData : public Noncopyable {
+class CSSRuleData {
+    WTF_MAKE_NONCOPYABLE(CSSRuleData);
 public:
     CSSRuleData(unsigned pos, CSSStyleRule* r, CSSSelector* sel, CSSRuleData* prev = 0)
         : m_position(pos)
@@ -380,7 +381,8 @@ private:
     CSSRuleData* m_next;
 };
 
-class CSSRuleDataList : public Noncopyable {
+class CSSRuleDataList {
+    WTF_MAKE_NONCOPYABLE(CSSRuleDataList);
 public:
     CSSRuleDataList(unsigned pos, CSSStyleRule* rule, CSSSelector* sel)
         : m_first(new CSSRuleData(pos, rule, sel))
@@ -410,7 +412,8 @@ private:
     CSSRuleData* m_last;
 };
 
-class CSSRuleSet : public Noncopyable {
+class CSSRuleSet {
+    WTF_MAKE_NONCOPYABLE(CSSRuleSet);
 public:
     CSSRuleSet();
     ~CSSRuleSet();
index eeace5723ed5bdedbe9aae1b22d7266de6b571fb..e035af2778e5d628f41e3c3496d45a8166ae4d13 100644 (file)
@@ -69,7 +69,8 @@ class StyledElement;
 class WebKitCSSKeyframeRule;
 class WebKitCSSKeyframesRule;
 
-class MediaQueryResult : public Noncopyable {
+class MediaQueryResult {
+    WTF_MAKE_NONCOPYABLE(MediaQueryResult); WTF_MAKE_FAST_ALLOCATED;
 public:
     MediaQueryResult(const MediaQueryExp& expr, bool result)
         : m_expression(expr)
@@ -82,7 +83,8 @@ public:
 };
 
     // This class selects a RenderStyle for a given element based on a collection of stylesheets.
-    class CSSStyleSelector : public Noncopyable {
+    class CSSStyleSelector {
+        WTF_MAKE_NONCOPYABLE(CSSStyleSelector); WTF_MAKE_FAST_ALLOCATED;
     public:
         CSSStyleSelector(Document*, StyleSheetList* authorSheets, CSSStyleSheet* mappedElementSheet,
                          CSSStyleSheet* pageUserSheet, const Vector<RefPtr<CSSStyleSheet> >* pageGroupUserSheets,
@@ -214,7 +216,8 @@ public:
     public:
         static RenderStyle* styleNotYetAvailable() { return s_styleNotYetAvailable; }
 
-        class SelectorChecker : public Noncopyable {
+        class SelectorChecker {
+            WTF_MAKE_NONCOPYABLE(SelectorChecker);
         public:
             SelectorChecker(Document*, bool strictParsing);
 
index 281009b57a0c8a3acb58ee3a3031d9664c9c28f6..a638ac9fc812eb63f59e7a9d7125031b28d96698 100644 (file)
@@ -37,7 +37,8 @@
 namespace WebCore {
 class MediaQueryExp;
 
-class MediaQuery : public Noncopyable {
+class MediaQuery {
+    WTF_MAKE_NONCOPYABLE(MediaQuery); WTF_MAKE_FAST_ALLOCATED;
 public:
     enum Restrictor {
         Only, Not, None
index 00ac394c80746727c626033d7245b1d17a18e33f..07c4d0dc8bd4f3d01587da37b87f361caefe8161 100644 (file)
@@ -49,7 +49,8 @@ class MediaQueryExp;
  * the device characteristics are not known. This can be used to prune the loading
  * of stylesheets to only those which are probable to match.
  */
-class MediaQueryEvaluator : public Noncopyable {
+class MediaQueryEvaluator {
+     WTF_MAKE_NONCOPYABLE(MediaQueryEvaluator); WTF_MAKE_FAST_ALLOCATED;
 public:
     /** Creates evaluator which evaluates only simple media queries
      *  Evaluator returns true for "all", and returns value of \mediaFeatureResult
index 72d3fffc0eaf4c5e7643b931f625bef6dd5117d2..7e4d477ff688bb07ff26dc3d3469f1cd26aac5dd 100644 (file)
@@ -38,7 +38,8 @@
 namespace WebCore {
 class CSSParserValueList;
 
-class MediaQueryExp : public FastAllocBase {
+class MediaQueryExp {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassOwnPtr<MediaQueryExp> create(const AtomicString& mediaFeature, CSSParserValueList* values);
     ~MediaQueryExp();
index 2326f67dafb82a8f06ed19f1d3856584672f73fa..6a75323237f0da39297aecc1616dcbab9da6b71b 100644 (file)
@@ -39,7 +39,8 @@ class Document;
 class PendingScript;
 class ScriptElement;
     
-class AsyncScriptRunner : public Noncopyable {
+class AsyncScriptRunner {
+    WTF_MAKE_NONCOPYABLE(AsyncScriptRunner); WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassOwnPtr<AsyncScriptRunner> create(Document* document) { return new AsyncScriptRunner(document); }
     ~AsyncScriptRunner();
index 86a22b0fde77ac67ed29342ad6a576c68ad5c04e..772a700f09b0bf5afd1022a6f9950ea0e2e6597b 100644 (file)
@@ -35,7 +35,8 @@ namespace WebCore {
 class Element;
 typedef int ExceptionCode;
 
-class DOMStringMap : public Noncopyable {
+class DOMStringMap {
+    WTF_MAKE_NONCOPYABLE(DOMStringMap); WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~DOMStringMap();
 
index 0bb025ae477c542ab04eb5592a4acb05b89560c4..15b097c9c307fe1e50b8b0ce6bcba2d4d84e8656 100644 (file)
@@ -4691,7 +4691,9 @@ void Document::addMessage(MessageSource source, MessageType type, MessageLevel l
         window->console()->addMessage(source, type, level, message, lineNumber, sourceURL, callStack);
 }
 
-struct PerformTaskContext : Noncopyable {
+struct PerformTaskContext {
+    WTF_MAKE_NONCOPYABLE(PerformTaskContext); WTF_MAKE_FAST_ALLOCATED;
+public:
     PerformTaskContext(PassRefPtr<DocumentWeakReference> documentReference, PassOwnPtr<ScriptExecutionContext::Task> task)
         : documentReference(documentReference)
         , task(task)
index 83177fcf8806d7b6ea8a0517184a00ccc073d81d..2dc2b9e3952011aea61e638950823723920b8e49 100644 (file)
@@ -38,8 +38,10 @@ class IntRect;
 class Node;
 class Range;
 
-class DocumentMarkerController : public Noncopyable {
+class DocumentMarkerController {
+    WTF_MAKE_NONCOPYABLE(DocumentMarkerController); WTF_MAKE_FAST_ALLOCATED;
 public:
+    DocumentMarkerController() { }
     ~DocumentMarkerController() { detach(); }
 
     void detach();
index f629241586d3b7a51f12de1470751aa84cdd63f9..45b879da788379359b6d894ea6674e39ec11cbb8 100644 (file)
 #ifndef Event_h
 #define Event_h
 
+#include "Clipboard.h"
 #include "DOMTimeStamp.h"
 #include <wtf/RefCounted.h>
 #include <wtf/text/AtomicString.h>
 
 namespace WebCore {
 
-    class Clipboard;
     class EventTarget;
 
     class Event : public RefCounted<Event> {
index 72768d23821a57fd4c4fd495636654a440519a38..439e9d8b558b6e5b22c764307550077363631dd1 100644 (file)
@@ -180,7 +180,8 @@ namespace WebCore {
     \
 // end of DOM_EVENT_NAMES_FOR_EACH
 
-    class EventNames : public Noncopyable {
+    class EventNames {
+        WTF_MAKE_NONCOPYABLE(EventNames); WTF_MAKE_FAST_ALLOCATED;
         int dummy; // Needed to make initialization macro work.
         // Private to prevent accidental call to EventNames() instead of eventNames()
         EventNames();
index ddcb663d4551c48d0f613844d3001ba659a5dfd9..81eeb7fc2df91630316eb329adc473dd683f00de 100644 (file)
@@ -83,7 +83,9 @@ namespace WebCore {
     typedef Vector<RegisteredEventListener, 1> EventListenerVector;
     typedef HashMap<AtomicString, EventListenerVector*> EventListenerMap;
 
-    struct EventTargetData : Noncopyable {
+    struct EventTargetData {
+        WTF_MAKE_NONCOPYABLE(EventTargetData); WTF_MAKE_FAST_ALLOCATED;
+    public:
         EventTargetData();
         ~EventTargetData();
 
index 9d1835a30d9965d7d593b51d9103d09d850b079a..26f7fd08db4cfb932c1f96f56b8fdad63ba20683 100644 (file)
 #define IgnoreDestructiveWriteCountIncrementer_h
 
 #include "Document.h"
-#include <wtf/Noncopyable.h>
 
 namespace WebCore {
 
-class IgnoreDestructiveWriteCountIncrementer : public Noncopyable {
+class IgnoreDestructiveWriteCountIncrementer {
+    WTF_MAKE_NONCOPYABLE(IgnoreDestructiveWriteCountIncrementer);
 public:
     explicit IgnoreDestructiveWriteCountIncrementer(Document* document)
         : m_count(document ? &document->m_ignoreDestructiveWriteCount : 0)
index f308a29dcadae2dee7b885bac679c549a128058e..07668a4e2284e5597e16a381704a5878dff262d3 100644 (file)
@@ -55,7 +55,8 @@ namespace WebCore {
 
     // MessagePortChannel is a platform-independent interface to the remote side of a message channel.
     // It acts as a wrapper around the platform-dependent PlatformMessagePortChannel implementation which ensures that the platform-dependent close() method is invoked before destruction.
-    class MessagePortChannel : public Noncopyable {
+    class MessagePortChannel {
+        WTF_MAKE_NONCOPYABLE(MessagePortChannel); WTF_MAKE_FAST_ALLOCATED;
     public:
         static void createChannel(PassRefPtr<MessagePort>, PassRefPtr<MessagePort>);
 
@@ -78,7 +79,8 @@ namespace WebCore {
         // Returns true if the proxy currently contains messages for this port.
         bool hasPendingActivity();
 
-        class EventData : public Noncopyable {
+        class EventData {
+            WTF_MAKE_NONCOPYABLE(EventData); WTF_MAKE_FAST_ALLOCATED;
         public:
             static PassOwnPtr<EventData> create(PassRefPtr<SerializedScriptValue>, PassOwnPtr<MessagePortChannelArray>);
 
index ab208d22af8d0c8c7ad315de487a73a8074fbc5c..7350f803911c2ca71fbe46ecc6f4bdd4d9fc969b 100644 (file)
@@ -34,7 +34,9 @@
 
 namespace WebCore {
 
-struct NodeListsNodeData : Noncopyable {
+struct NodeListsNodeData {
+    WTF_MAKE_NONCOPYABLE(NodeListsNodeData); WTF_MAKE_FAST_ALLOCATED;
+public:
     typedef HashSet<DynamicNodeList*> NodeListSet;
     NodeListSet m_listsWithCaches;
     
@@ -67,7 +69,8 @@ private:
     }
 };
     
-class NodeRareData : public Noncopyable {
+class NodeRareData {
+    WTF_MAKE_NONCOPYABLE(NodeRareData); WTF_MAKE_FAST_ALLOCATED;
 public:    
     NodeRareData()
         : m_tabIndex(0)
index 34fc069d8433379ea0209be77a1ea073b8314c15..cb95f205e437adbbd570a29ef904956cf087d94a 100644 (file)
@@ -32,7 +32,8 @@ struct QualifiedNameComponents {
     StringImpl* m_namespace;
 };
 
-class QualifiedName : public FastAllocBase {
+class QualifiedName {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     class QualifiedNameImpl : public RefCounted<QualifiedNameImpl> {
     public:
index 07c59db85179968ba0a6cae1aabebf2dd60e7b3d..5250f3e3354990928f575601d01223f40c651607 100644 (file)
@@ -32,6 +32,7 @@ class ScriptElement;
 class ScriptSourceCode;
 
 class ScriptElement : private CachedResourceClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     ScriptElement(Element*, bool createdByParser, bool isEvaluated);
     virtual ~ScriptElement();
index f498be005034d12cbbd5b8a70f49e15eb043e48c..9fdf85e49098ec6758692a177a8d568456833181 100644 (file)
@@ -66,7 +66,8 @@ public:
     }
 };
 
-class ScriptExecutionContext::PendingException : public Noncopyable {
+class ScriptExecutionContext::PendingException {
+    WTF_MAKE_NONCOPYABLE(PendingException);
 public:
     PendingException(const String& errorMessage, int lineNumber, const String& sourceURL, PassRefPtr<ScriptCallStack> callStack)
         : m_errorMessage(errorMessage)
index fbb96ec651fb5047d0240d56a489b67f4eee4b28..b57b75a00bf01a194148c301296013a322fc33fb 100644 (file)
@@ -33,6 +33,7 @@
 #include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/HashSet.h>
+#include <wtf/Noncopyable.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/PassRefPtr.h>
@@ -114,8 +115,10 @@ namespace WebCore {
         void ref() { refScriptExecutionContext(); }
         void deref() { derefScriptExecutionContext(); }
 
-        class Task : public Noncopyable {
+        class Task {
+            WTF_MAKE_NONCOPYABLE(Task); WTF_MAKE_FAST_ALLOCATED;
         public:
+            Task() { }
             virtual ~Task();
             virtual void performTask(ScriptExecutionContext*) = 0;
             // Certain tasks get marked specially so that they aren't discarded, and are executed, when the context is shutting down its message queue.
index 826e6bd037898e40772da4073d7bbf552a1eace5..6eb893c3b7c0be18475d03ee8ad6c75f360506c2 100644 (file)
@@ -28,7 +28,8 @@
 
 namespace WebCore {
 
-    class SpaceSplitStringData : public Noncopyable {
+    class SpaceSplitStringData {
+        WTF_MAKE_NONCOPYABLE(SpaceSplitStringData); WTF_MAKE_FAST_ALLOCATED;
     public:
         SpaceSplitStringData(const String& string, bool shouldFoldCase)
             : m_string(string), m_shouldFoldCase(shouldFoldCase), m_createdVector(false)
index f97afcf070c22fcbd14775f6605ee0850019417b..63dc78ae40a1bc869d6ef5e6ba641406abeda5c2 100644 (file)
@@ -33,7 +33,8 @@ namespace WebCore {
     typedef void* PlatformTransformSource;
 #endif
 
-    class TransformSource : public Noncopyable {
+    class TransformSource {
+        WTF_MAKE_NONCOPYABLE(TransformSource); WTF_MAKE_FAST_ALLOCATED;
     public:
         TransformSource(const PlatformTransformSource& source);
         ~TransformSource();
index 17ea319e21890ce986c06ffbb2943ff628deb38a..b1ed96b82386317098db06ad8c44ff78d814eca2 100644 (file)
@@ -36,7 +36,8 @@ enum ProcessingUserGestureState {
     DefinitelyNotProcessingUserGesture
 };
 
-class UserGestureIndicator : public Noncopyable {
+class UserGestureIndicator {
+    WTF_MAKE_NONCOPYABLE(UserGestureIndicator);
 public:
     static bool processingUserGesture() { return s_processingUserGesture == DefinitelyProcessingUserGesture; }
     static ProcessingUserGestureState getUserGestureState() { return s_processingUserGesture; }
index 6c710794102caf6a1c7a428e27b69910dffab199..21f4c7eddf04d0533776c2ceac9d17989165ca9b 100644 (file)
@@ -34,7 +34,8 @@ namespace WebCore {
 class Frame;
 class Node;
 
-class UserTypingGestureIndicator : public Noncopyable {
+class UserTypingGestureIndicator {
+    WTF_MAKE_NONCOPYABLE(UserTypingGestureIndicator);
 public:
     static bool processingUserTypingGesture();
     static Node* focusedElementAtGestureStart();
index 7533c5b303c2f6c6a71dcadca5c73c4162b68aef..1aad9b3ad323d0214f0841740e646117e2f3da37 100644 (file)
@@ -71,6 +71,7 @@ namespace WebCore {
 #endif
 
     class XMLDocumentParser : public ScriptableDocumentParser, public CachedResourceClient {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         static PassRefPtr<XMLDocumentParser> create(Document* document, FrameView* view)
         {
index 0f6b4b49a2e97d0e9b31256c630fd5ead018b14b..10d6e0de523b15d18b27518dd7419db34f8ae2fc 100644 (file)
@@ -75,8 +75,10 @@ using namespace std;
 
 namespace WebCore {
 
-class PendingCallbacks : public Noncopyable {
+class PendingCallbacks {
+    WTF_MAKE_NONCOPYABLE(PendingCallbacks);
 public:
+    PendingCallbacks() { }
     ~PendingCallbacks()
     {
         deleteAllValues(m_callbacks);
index 58e8a6b31ed9f3557d42a274c4e68a2411cf350b..f60471bb7816322ac97dfe2a81a4907901aa43e9 100644 (file)
@@ -36,7 +36,8 @@ namespace WebCore {
 
     class CachedResourceLoader;
 
-    class XMLDocumentParserScope : public Noncopyable {
+    class XMLDocumentParserScope {
+        WTF_MAKE_NONCOPYABLE(XMLDocumentParserScope);
     public:
         XMLDocumentParserScope(CachedResourceLoader* cachedResourceLoader);
         ~XMLDocumentParserScope();
index 1286c075a596b632427d2e543d3b8e5169636c40..4d928c77c7019423ab672e5e9e13838cd1ab1d41 100644 (file)
@@ -36,7 +36,8 @@ class HTMLElement;
 class RenderObject;
 class VisibleSelection;
 
-class DeleteButtonController : public Noncopyable {
+class DeleteButtonController {
+    WTF_MAKE_NONCOPYABLE(DeleteButtonController); WTF_MAKE_FAST_ALLOCATED;
 public:
     DeleteButtonController(Frame*);
 
index 24cfa412ff41239913b02c2f65f87f68e690464f..f47cb4e94be181f83d9b5525d3ec1d8a8a5557a7 100644 (file)
@@ -62,7 +62,8 @@ enum EFragmentType { EmptyFragment, SingleTextNodeFragment, TreeFragment };
 
 // --- ReplacementFragment helper class
 
-class ReplacementFragment : public Noncopyable {
+class ReplacementFragment {
+    WTF_MAKE_NONCOPYABLE(ReplacementFragment);
 public:
     ReplacementFragment(Document*, DocumentFragment*, bool matchStyle, const VisibleSelection&);
 
index ee521877aad26762c6ada9fb7b9383d410c39410..3f805d3ea8155764481741e615abcf4f0994a0c4 100644 (file)
@@ -48,7 +48,8 @@ class VisiblePosition;
 
 enum DirectionalityPolicy { MakeNonDirectionalSelection, MakeDirectionalSelection };
 
-class SelectionController : public Noncopyable {
+class SelectionController {
+    WTF_MAKE_NONCOPYABLE(SelectionController); WTF_MAKE_FAST_ALLOCATED;
 public:
     enum EAlteration { AlterationMove, AlterationExtend };
     enum CursorAlignOnScroll { AlignCursorOnScrollIfNeeded,
index f6215d25b43d6a8fb9cd98988fd7e83774e1e416..81bb519bfc1790477a5abf13c6c57c77e0126c8b 100644 (file)
@@ -54,7 +54,8 @@ private:
     int m_length;
 };
 
-class SpellChecker : public Noncopyable {
+class SpellChecker {
+    WTF_MAKE_NONCOPYABLE(SpellChecker);
 public:
     explicit SpellChecker(Frame*, EditorClient*);
     ~SpellChecker();
index 227530f8dd8c03150df8fa9669fc9e990cc4e904..8b5c6910528f4051a3ad856c6b6caa194f792fe2 100644 (file)
@@ -72,7 +72,8 @@ private:
     mutable int m_checkingLength;
 };
 
-class TextCheckingHelper : public Noncopyable {
+class TextCheckingHelper {
+    WTF_MAKE_NONCOPYABLE(TextCheckingHelper);
 public:
     TextCheckingHelper(EditorClient*, PassRefPtr<Range>);
     ~TextCheckingHelper();
index c24bcb242615e14ea9ae4f804bef41f254a6a611..1fc7606079aa523ea2af4dbb5fd46750dcf9a490 100644 (file)
@@ -61,7 +61,8 @@ using namespace HTMLNames;
 // Case folding is also done if the CaseInsensitive option is specified.
 // Matches are further filtered if the AtWordStarts option is specified, although some
 // matches inside a word are permitted if TreatMedialCapitalAsWordStart is specified as well.
-class SearchBuffer : public Noncopyable {
+class SearchBuffer {
+    WTF_MAKE_NONCOPYABLE(SearchBuffer);
 public:
     SearchBuffer(const String& target, FindOptions);
     ~SearchBuffer();
index d7aabf7eb9222e96bd6c4742a4861b8941747b91..45205c43f47ea9fb0620357d6e1d420d706462e7 100644 (file)
@@ -54,7 +54,8 @@ public:
     bool start();
     void stop();
 
-    class Task : public Noncopyable {
+    class Task {
+        WTF_MAKE_NONCOPYABLE(Task);
     public:
         virtual ~Task() { }
         virtual void performTask() = 0;
index b779a5f7917b850a17ba010b311feee1d6307669..12a7012d3465b987ce8d9a78f646fc2761fcc4b6 100644 (file)
@@ -45,7 +45,8 @@ class FileSystemCallback;
 class ScriptExecutionContext;
 
 // Keeps per-process information and provides an entry point to open a file system.
-class LocalFileSystem : public Noncopyable {
+class LocalFileSystem {
+    WTF_MAKE_NONCOPYABLE(LocalFileSystem);
 public:
     // Returns a per-process instance of LocalFileSystem.
     // Note that LocalFileSystem::initializeLocalFileSystem must be called before
index 25e6739b7ea1ef44f88ad68a7905d3b8177d4c7a..020ac497c9c97dc7b71e50a0bbd917aa84056ecc 100644 (file)
@@ -58,7 +58,8 @@ class FileEntrySync;
 
 // A helper template for FileSystemSync implementation.
 template <typename SuccessCallback, typename ObserverType, typename CallbackArg, typename ResultType>
-class SyncCallbackHelper : public Noncopyable {
+class SyncCallbackHelper {
+    WTF_MAKE_NONCOPYABLE(SyncCallbackHelper);
 public:
     typedef SyncCallbackHelper<SuccessCallback, ObserverType, CallbackArg, ResultType> HelperType;
     SyncCallbackHelper(ObserverType* observer = 0)
index e89e32bb575fccfa5fbf8c17e6bcd83f9bfc3a89..12884eaeed823693444cce995b764b0ab7c1d443 100644 (file)
@@ -36,7 +36,8 @@ class BackForwardList;
 class HistoryItem;
 class Page;
 
-class BackForwardController : public Noncopyable {
+class BackForwardController {
+    WTF_MAKE_NONCOPYABLE(BackForwardController); WTF_MAKE_FAST_ALLOCATED;
 public:
     BackForwardController(Page*, PassRefPtr<BackForwardList>);
     ~BackForwardController();
index 71ae5adf6c4d4ba9c819e07569af7987e01428c3..912bd653d34010f9a2e42885ca9b102a658e8aaf 100644 (file)
@@ -39,7 +39,8 @@ namespace WebCore {
     class HistoryItem;
     class Page;
     
-    class PageCache : public Noncopyable {
+    class PageCache {
+        WTF_MAKE_NONCOPYABLE(PageCache); WTF_MAKE_FAST_ALLOCATED;
     public:
         friend PageCache* pageCache();
         
index df1d1fa524c6762b8b86613e92f9674bec7963e7..8e4a0669e274fd4f47668381209b88fa047c0f28 100644 (file)
@@ -29,7 +29,9 @@ namespace WebCore {
 
 class Element;
 
-struct CollectionCache : FastAllocBase {
+struct CollectionCache {
+    WTF_MAKE_FAST_ALLOCATED;
+public:
     CollectionCache();
     CollectionCache(const CollectionCache&);
     CollectionCache& operator=(const CollectionCache& other)
index 2b711b4a2464eaa6061051e3a11f42653fd5fdc1..8f6fd4e78907082fde4d027b03f8394f33d65cc4 100644 (file)
@@ -35,6 +35,7 @@
 namespace WebCore {
 
 class DOMSettableTokenList : public DOMTokenList, public RefCounted<DOMSettableTokenList> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassRefPtr<DOMSettableTokenList> create()
     {
index 5df2ede0586733aa3ac7fa75cac30fb8c1dc3da0..0b75b6622d4b72c69401e82502305cc15274baeb 100644 (file)
 
 #include "ExceptionCode.h"
 #include <wtf/text/AtomicString.h>
-#include <wtf/Noncopyable.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
 
 class Element;
 
-class DOMTokenList : public Noncopyable {
+class DOMTokenList {
+    WTF_MAKE_NONCOPYABLE(DOMTokenList); WTF_MAKE_FAST_ALLOCATED;
 public:
+    DOMTokenList() { }
     virtual ~DOMTokenList() {};
 
     virtual void ref() = 0;
index 50de71013a637a8214be740a2b20a167cf5687b5..3bf22a4dda927d7dd68bf3c6e53d8c74ca235664 100644 (file)
 #define HTMLParserQuirks_h
 
 #include <wtf/Forward.h>
-#include <wtf/Noncopyable.h>
 
 namespace WebCore {
 
 class Node;
 
-class HTMLParserQuirks : public Noncopyable {
+class HTMLParserQuirks {
+    WTF_MAKE_NONCOPYABLE(HTMLParserQuirks);
 public:
     HTMLParserQuirks() { }
     virtual ~HTMLParserQuirks() { }
index ea4541f7f86c1884101cad20cf047b3f37d0fc36..e6ceb96f080e4d95d03f0060bf7a7012a1326aa2 100644 (file)
@@ -33,6 +33,7 @@
 #define InputType_h
 
 #include <wtf/Forward.h>
+#include <wtf/FastAllocBase.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/RefPtr.h>
 #include <wtf/Vector.h>
@@ -56,17 +57,18 @@ class WheelEvent;
 typedef int ExceptionCode;
 
 struct ClickHandlingState {
+    WTF_MAKE_FAST_ALLOCATED;
+public:
     bool checked;
     bool indeterminate;
     RefPtr<HTMLInputElement> checkedRadioButton;
-
-    WTF_MAKE_FAST_ALLOCATED
 };
 
 // An InputType object represents the type-specific part of an HTMLInputElement.
 // Do not expose instances of InputType and classes derived from it to classes
 // other than HTMLInputElement.
-class InputType : public Noncopyable {
+class InputType {
+    WTF_MAKE_NONCOPYABLE(InputType); WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassOwnPtr<InputType> create(HTMLInputElement*, const String&);
     static PassOwnPtr<InputType> createText(HTMLInputElement*);
index ce044ea4946a91b44cde03e3760ab674f58742f6..2fa1393c552ae1002e74441d6fad12dee4cbdbc6 100644 (file)
@@ -28,7 +28,8 @@ namespace WebCore {
 
 class HTMLInputElement;
 
-class StepRange : public Noncopyable {
+class StepRange {
+    WTF_MAKE_NONCOPYABLE(StepRange);
 public:
     bool hasStep;
     double step;
index 5fa1f96f68aad5c7ed1f210df3ef9439b76b418c..7cd0cbb9990d0f8ef7327cd9443b731ca05d938e 100644 (file)
@@ -42,7 +42,8 @@ namespace WebCore {
 class FormAssociatedElement;
 class HTMLElement;
 
-class ValidationMessage : public Noncopyable {
+class ValidationMessage {
+    WTF_MAKE_NONCOPYABLE(ValidationMessage);
 public:
     static PassOwnPtr<ValidationMessage> create(FormAssociatedElement*);
     ~ValidationMessage();
index e140c49646f5b9884ded31683c8a11ce403e213b..4a96488bd5568f13e9a0849a3e0b223c51d4f60e 100644 (file)
@@ -29,7 +29,8 @@
 
 namespace WebCore {
 
-class ValidityState : public Noncopyable {
+class ValidityState {
+    WTF_MAKE_NONCOPYABLE(ValidityState); WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassOwnPtr<ValidityState> create(FormAssociatedElement* control)
     {
index a25e8a1a1c8d14e5033071a7b937cf82d4b77150..a143596bb5c29d8830421677bd031030c0489d97 100644 (file)
@@ -41,7 +41,8 @@ class HTMLVideoElement;
 class KURL;
 class WebGLObject;
 
-class CanvasRenderingContext : public Noncopyable {
+class CanvasRenderingContext {
+    WTF_MAKE_NONCOPYABLE(CanvasRenderingContext); WTF_MAKE_FAST_ALLOCATED;
 public:
     CanvasRenderingContext(HTMLCanvasElement*);
     virtual ~CanvasRenderingContext() { }
index 7ac282f454d0b93f3dd86ad8aaf1bb526305cda0..fae95a14e8be9b45a00caaf66bd3d2e6a1e1515e 100644 (file)
@@ -35,7 +35,8 @@ namespace WebCore {
 class Document;
 class HTMLToken;
 
-class CSSPreloadScanner : public Noncopyable {
+class CSSPreloadScanner {
+    WTF_MAKE_NONCOPYABLE(CSSPreloadScanner);
 public:
     CSSPreloadScanner(Document*);
 
index 8b09bf56840b987babaa387de48497cba1b0a9af..5a4a65d8a5585d05847339f08764c24f27a46f28 100644 (file)
@@ -40,7 +40,8 @@ class AtomicHTMLToken;
 class Document;
 class Element;
 
-class HTMLConstructionSite : public Noncopyable {
+class HTMLConstructionSite {
+    WTF_MAKE_NONCOPYABLE(HTMLConstructionSite);
 public:
     HTMLConstructionSite(Document*, FragmentScriptingPermission, bool isParsingFragment);
     ~HTMLConstructionSite();
@@ -89,7 +90,8 @@ public:
     HTMLFormElement* form() const { return m_form.get(); }
     PassRefPtr<HTMLFormElement> takeForm();
 
-    class RedirectToFosterParentGuard : public Noncopyable {
+    class RedirectToFosterParentGuard {
+        WTF_MAKE_NONCOPYABLE(RedirectToFosterParentGuard);
     public:
         RedirectToFosterParentGuard(HTMLConstructionSite& tree)
             : m_tree(tree)
index 80ca72736d623b1fa16d681ee25a2f219a0a2498..f92526992ad2c509b80914510fd5ba4c579d3c62 100644 (file)
@@ -50,6 +50,7 @@ class ScriptController;
 class ScriptSourceCode;
 
 class HTMLDocumentParser :  public ScriptableDocumentParser, HTMLScriptRunnerHost, CachedResourceClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassRefPtr<HTMLDocumentParser> create(HTMLDocument* document, bool reportErrors)
     {
index 8a8e160000a481918673b93fe5054cf27d8e252d..ad8b94194cf05c36d55123aa73851db041af2114 100644 (file)
@@ -39,12 +39,14 @@ class QualifiedName;
 
 // NOTE: The HTML5 spec uses a backwards (grows downward) stack.  We're using
 // more standard (grows upwards) stack terminology here.
-class HTMLElementStack : public Noncopyable {
+class HTMLElementStack {
+    WTF_MAKE_NONCOPYABLE(HTMLElementStack); WTF_MAKE_FAST_ALLOCATED;
 public:
     HTMLElementStack();
     ~HTMLElementStack();
 
-    class ElementRecord : public Noncopyable {
+    class ElementRecord {
+        WTF_MAKE_NONCOPYABLE(ElementRecord);
     public:
         ~ElementRecord(); // Public for ~PassOwnPtr()
     
index aca05bbc8800a364a7f4ef4719bbe6331351d549..f75fa50ed856d3a2e9e71ba28681c0da1ab6ec8d 100644 (file)
@@ -35,7 +35,8 @@ namespace WebCore {
 class Element;
 
 // This may end up merged into HTMLElementStack.
-class HTMLFormattingElementList : public Noncopyable {
+class HTMLFormattingElementList {
+    WTF_MAKE_NONCOPYABLE(HTMLFormattingElementList);
 public:
     HTMLFormattingElementList();
     ~HTMLFormattingElementList();
index 1bfbaf9303c0887132d947c332bba0214cba0566..d95ec3166dfb2efa0ad95e701b5616830ecb7105 100644 (file)
@@ -47,7 +47,8 @@ namespace WebCore {
 // m_last is a pointer to the last of the afterInsertionPoint strings.
 // The network adds data at the end of the InputStream, which appends
 // them to the "last" string.
-class HTMLInputStream : public Noncopyable {
+class HTMLInputStream {
+    WTF_MAKE_NONCOPYABLE(HTMLInputStream);
 public:
     HTMLInputStream()
         : m_last(&m_first)
@@ -129,7 +130,8 @@ private:
     SegmentedString* m_last;
 };
 
-class InsertionPointRecord : public Noncopyable {
+class InsertionPointRecord {
+    WTF_MAKE_NONCOPYABLE(InsertionPointRecord);
 public:
     explicit InsertionPointRecord(HTMLInputStream& inputStream)
         : m_inputStream(&inputStream)
index c3136f52e2a4e9828c03b4a081040901f1c18e76..45fbaf7ab9be495a78624cf0f20b85724016088a 100644 (file)
@@ -36,7 +36,8 @@ namespace WebCore {
 class HTMLTokenizer;
 class TextCodec;
 
-class HTMLMetaCharsetParser : public Noncopyable {
+class HTMLMetaCharsetParser {
+    WTF_MAKE_NONCOPYABLE(HTMLMetaCharsetParser);
 public:
     static PassOwnPtr<HTMLMetaCharsetParser> create() { return adoptPtr(new HTMLMetaCharsetParser()); }
 
index 3a20b2b0795c85a7a9e9fd31cd4054c735152dc5..c415c621ab98905860adbc162ab08cb473340699 100644 (file)
 
 #include "Timer.h"
 #include <wtf/CurrentTime.h>
-#include <wtf/Noncopyable.h>
 #include <wtf/PassOwnPtr.h>
 
 namespace WebCore {
 
 class HTMLDocumentParser;
 
-class HTMLParserScheduler :  public Noncopyable {
+class HTMLParserScheduler {
+    WTF_MAKE_NONCOPYABLE(HTMLParserScheduler); WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassOwnPtr<HTMLParserScheduler> create(HTMLDocumentParser* parser)
     {
index 94a90e6127c69ebee0cb5275740da57f578e5af4..bed77fe5b4198e77a8d4781a7f73f7f1ce66114b 100644 (file)
@@ -30,7 +30,6 @@
 #include "CSSPreloadScanner.h"
 #include "HTMLToken.h"
 #include "SegmentedString.h"
-#include <wtf/Noncopyable.h>
 
 namespace WebCore {
 
@@ -39,7 +38,8 @@ class HTMLToken;
 class HTMLTokenizer;
 class SegmentedString;
 
-class HTMLPreloadScanner : public Noncopyable {
+class HTMLPreloadScanner {
+    WTF_MAKE_NONCOPYABLE(HTMLPreloadScanner); WTF_MAKE_FAST_ALLOCATED;
 public:
     HTMLPreloadScanner(Document*);
 
index 6cf74d885bdb2ca3d701a87a3a559d3138b09501..986f7bd3be2bb502f1b6b2a0e4b33ad45b5c0d87 100644 (file)
@@ -29,7 +29,6 @@
 #include "PendingScript.h"
 #include <wtf/Deque.h>
 #include <wtf/text/TextPosition.h>
-#include <wtf/Noncopyable.h>
 #include <wtf/PassRefPtr.h>
 
 namespace WebCore {
@@ -42,7 +41,8 @@ class Frame;
 class HTMLScriptRunnerHost;
 class ScriptSourceCode;
 
-class HTMLScriptRunner : public Noncopyable {
+class HTMLScriptRunner {
+    WTF_MAKE_NONCOPYABLE(HTMLScriptRunner); WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassOwnPtr<HTMLScriptRunner> create(Document* document, HTMLScriptRunnerHost* host)
     {
index 42cddb8ba01e98e6c0e762f195046281d2ef3716..1cbc1513e1807d92a9298948968114780da2ca8b 100644 (file)
 #define HTMLToken_h
 
 #include "NamedNodeMap.h"
-#include <wtf/Noncopyable.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
 
-class HTMLToken : public Noncopyable {
+class HTMLToken {
+    WTF_MAKE_NONCOPYABLE(HTMLToken); WTF_MAKE_FAST_ALLOCATED;
 public:
     enum Type {
         Uninitialized,
@@ -313,7 +313,8 @@ private:
     // want to end up with a cleaner interface between the two classes.
     friend class AtomicHTMLToken;
 
-    class DoctypeData : public Noncopyable {
+    class DoctypeData {
+        WTF_MAKE_NONCOPYABLE(DoctypeData);
     public:
         DoctypeData()
             : m_hasPublicIdentifier(false)
@@ -352,7 +353,8 @@ private:
 
 // FIXME: This class should eventually be named HTMLToken once we move the
 // exiting HTMLToken to be internal to the HTMLTokenizer.
-class AtomicHTMLToken : public Noncopyable {
+class AtomicHTMLToken {
+    WTF_MAKE_NONCOPYABLE(AtomicHTMLToken);
 public:
     AtomicHTMLToken(HTMLToken& token)
         : m_type(token.type())
index f16b049dc64a9a697e9ba76f6602bb60c6d2e93c..fa45cb24311158e9dfff94eb7b542ba80db13fce 100644 (file)
@@ -39,7 +39,8 @@ class Element;
 class Frame;
 class HTMLToken;
 
-class HTMLTokenizer : public Noncopyable {
+class HTMLTokenizer {
+    WTF_MAKE_NONCOPYABLE(HTMLTokenizer); WTF_MAKE_FAST_ALLOCATED;
 public:
     enum State {
         DataState,
@@ -172,7 +173,8 @@ public:
 
 private:
     // http://www.whatwg.org/specs/web-apps/current-work/#preprocessing-the-input-stream
-    class InputStreamPreprocessor : public Noncopyable {
+    class InputStreamPreprocessor {
+        WTF_MAKE_NONCOPYABLE(InputStreamPreprocessor);
     public:
         InputStreamPreprocessor(HTMLTokenizer* tokenizer)
             : m_tokenizer(tokenizer)
index 02713e57de53c695184ea7fe212255118b13b456..97cee13ab2fed9fac1ab9ea584926b1e8c3be167 100644 (file)
@@ -241,7 +241,8 @@ HTMLFormElement* closestFormAncestor(Element* element)
 
 } // namespace
 
-class HTMLTreeBuilder::ExternalCharacterTokenBuffer : public Noncopyable {
+class HTMLTreeBuilder::ExternalCharacterTokenBuffer {
+    WTF_MAKE_NONCOPYABLE(ExternalCharacterTokenBuffer);
 public:
     explicit ExternalCharacterTokenBuffer(AtomicHTMLToken& token)
         : m_current(token.characters().data())
@@ -2342,7 +2343,8 @@ void HTMLTreeBuilder::reprocessEndTag(AtomicHTMLToken& token)
     processEndTag(token);
 }
 
-class HTMLTreeBuilder::FakeInsertionMode : public Noncopyable {
+class HTMLTreeBuilder::FakeInsertionMode {
+    WTF_MAKE_NONCOPYABLE(FakeInsertionMode);
 public:
     FakeInsertionMode(HTMLTreeBuilder* treeBuilder, InsertionMode mode)
         : m_treeBuilder(treeBuilder)
index 17b77b75f0402677ca1fb8f664af0312c5b56355..309ac6f43b061f3c0edca77108a0ab53ecd352dd 100644 (file)
@@ -51,7 +51,8 @@ class HTMLDocument;
 class Node;
 class HTMLDocumentParser;
 
-class HTMLTreeBuilder : public Noncopyable {
+class HTMLTreeBuilder {
+    WTF_MAKE_NONCOPYABLE(HTMLTreeBuilder); WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassOwnPtr<HTMLTreeBuilder> create(HTMLDocumentParser* parser, HTMLDocument* document, bool reportErrors, bool usePreHTML5ParserQuirks)
     {
@@ -204,7 +205,8 @@ private:
     void processForeignContentUsingInBodyModeAndResetMode(AtomicHTMLToken& token);
     void resetForeignInsertionMode();
 
-    class FragmentParsingContext : public Noncopyable {
+    class FragmentParsingContext {
+        WTF_MAKE_NONCOPYABLE(FragmentParsingContext);
     public:
         FragmentParsingContext();
         FragmentParsingContext(DocumentFragment*, Element* contextElement, FragmentScriptingPermission);
index c5978765cbe490ed61dfcac55919a82df78dfdf7..8155635cca24646291c9af997ffadb34e619db3e 100644 (file)
@@ -28,7 +28,8 @@
 
 namespace WebCore {
 
-class NestingLevelIncrementer : public Noncopyable {
+class NestingLevelIncrementer {
+    WTF_MAKE_NONCOPYABLE(NestingLevelIncrementer);
 public:
     explicit NestingLevelIncrementer(unsigned& nestingLevel)
         : m_nestingLevel(&nestingLevel)
index 310aa8ebce0858a9a3034d0114d986fc6cd28e4f..7c3348b9638c861f636e9e2eb7ec29846b14b86b 100644 (file)
@@ -46,7 +46,8 @@ class ScriptCallFrame;
 class ScriptCallStack;
 class ScriptValue;
 
-class ConsoleMessage : public Noncopyable {
+class ConsoleMessage {
+    WTF_MAKE_NONCOPYABLE(ConsoleMessage); WTF_MAKE_FAST_ALLOCATED;
 public:
     ConsoleMessage(MessageSource, MessageType, MessageLevel, const String& m, unsigned li, const String& u);
     ConsoleMessage(MessageSource, MessageType, MessageLevel, const String& m, PassRefPtr<ScriptArguments>, PassRefPtr<ScriptCallStack>);
index 3d9e49404f2dbb9b95e779c26bef69edea8b73e3..ac0acbf3d8889bfe511250b3f1351ae3f3d173c5 100644 (file)
@@ -41,7 +41,8 @@ class InspectorObject;
 class InspectorValue;
 class ResourceResponse;
 
-class InspectorApplicationCacheAgent : public Noncopyable {
+class InspectorApplicationCacheAgent {
+    WTF_MAKE_NONCOPYABLE(InspectorApplicationCacheAgent); WTF_MAKE_FAST_ALLOCATED;
 public:
     InspectorApplicationCacheAgent(InspectorController* inspectorController, InspectorFrontend* frontend);
     ~InspectorApplicationCacheAgent() { }
index 537bda1844c4f7b95c3ce6c62cfeacb5e7a16472..6af31e8a11d88e0d4733574b0cddb6e53ce11d60 100644 (file)
@@ -48,7 +48,8 @@ class InspectorController;
 class InspectorObject;
 class Node;
 
-class InspectorBrowserDebuggerAgent : public Noncopyable {
+class InspectorBrowserDebuggerAgent {
+    WTF_MAKE_NONCOPYABLE(InspectorBrowserDebuggerAgent);
 public:
     static PassOwnPtr<InspectorBrowserDebuggerAgent> create(InspectorController* inspectorController)
     {
index 3a05eec1c25022a0ee221d7a09871a24c51bff80..411f7097e6bd4cb4cecffb883abe269ba7376ff9 100644 (file)
@@ -46,7 +46,8 @@ class ScriptArguments;
 class ScriptCallStack;
 class ScriptProfile;
 
-class InspectorConsoleAgent : public Noncopyable {
+class InspectorConsoleAgent {
+    WTF_MAKE_NONCOPYABLE(InspectorConsoleAgent);
 public:
     InspectorConsoleAgent(InspectorController*);
     ~InspectorConsoleAgent();
index 7ff88f3976492742a82a2c688266d380cdfcdc2f..b450f5f45538062bec6aec530f569197ca77159f 100644 (file)
@@ -105,7 +105,8 @@ class WebSocketHandshakeRequest;
 class WebSocketHandshakeResponse;
 #endif
 
-class InspectorController : public Noncopyable {
+class InspectorController {
+    WTF_MAKE_NONCOPYABLE(InspectorController); WTF_MAKE_FAST_ALLOCATED;
 public:
     static const char* const ConsolePanel;
     static const char* const ElementsPanel;
index 98ac1f9a272e3703f83856dad767312748a2ddcc..4cb9f9cb916c8011405fcdf607153a2204e9a268 100644 (file)
@@ -53,7 +53,8 @@ enum DebuggerEventType {
     NativeBreakpointDebuggerEventType
 };
 
-class InspectorDebuggerAgent : public ScriptDebugListener, public Noncopyable {
+class InspectorDebuggerAgent : public ScriptDebugListener {
+    WTF_MAKE_NONCOPYABLE(InspectorDebuggerAgent); WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassOwnPtr<InspectorDebuggerAgent> create(InspectorController*, InspectorFrontend*);
     virtual ~InspectorDebuggerAgent();
index 9dcaa5a7d1b8c6256b26e18f0337f2529cddfbb3..19f6ad1b37720e4cde52cb4c819972cbfe5244b4 100644 (file)
@@ -41,7 +41,8 @@ class InspectorController;
 class InspectorFrontendHost;
 class Page;
 
-class InspectorFrontendClientLocal : public InspectorFrontendClient, public Noncopyable {
+class InspectorFrontendClientLocal : public InspectorFrontendClient {
+    WTF_MAKE_NONCOPYABLE(InspectorFrontendClientLocal); WTF_MAKE_FAST_ALLOCATED;
 public:
     InspectorFrontendClientLocal(InspectorController*, Page*);
     virtual ~InspectorFrontendClientLocal();
index 7806bfb2af2c8d514465b42ba3f8e386d1f07031..436ae51883265db006c67e996faf946ae28a1c1b 100644 (file)
@@ -47,7 +47,8 @@ class InspectorObject;
 class ScriptHeapSnapshot;
 class ScriptProfile;
 
-class InspectorProfilerAgent : public Noncopyable {
+class InspectorProfilerAgent {
+    WTF_MAKE_NONCOPYABLE(InspectorProfilerAgent); WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassOwnPtr<InspectorProfilerAgent> create(InspectorController*);
     virtual ~InspectorProfilerAgent();
index 3f1be420d1a32c840be62727cbeacc6ca44b68f2..3ac2eed9786d3cc20cc502b80011064e1022150c 100644 (file)
@@ -46,7 +46,8 @@ class InjectedScriptHost;
 class InspectorObject;
 class InspectorValue;
 
-class InspectorRuntimeAgent : public Noncopyable {
+class InspectorRuntimeAgent {
+    WTF_MAKE_NONCOPYABLE(InspectorRuntimeAgent);
 public:
     static PassOwnPtr<InspectorRuntimeAgent> create(InjectedScriptHost* injectedScriptHost)
     {
index 33e2737fc629932e52270c105aed0f3048392fc4..cae5aad3a46ddddec18ac5c3856a126167ce2bdc 100644 (file)
@@ -70,7 +70,8 @@ enum TimelineRecordType {
     ScheduleResourceRequestTimelineRecordType = 20
 };
 
-class InspectorTimelineAgent : ScriptGCEventListener, public Noncopyable {
+class InspectorTimelineAgent : ScriptGCEventListener {
+    WTF_MAKE_NONCOPYABLE(InspectorTimelineAgent); WTF_MAKE_FAST_ALLOCATED;
 public:
     InspectorTimelineAgent(InspectorFrontend* frontend);
     ~InspectorTimelineAgent();
index 1016aed8a8a435c2d5389694180b62d7526048fa..ddd507093ecf2cb54369fdfbd211faedb9320344 100644 (file)
@@ -38,7 +38,8 @@ namespace WebCore {
     class HTTPHeaderMap;
     class ResourceResponse;
 
-    class CrossOriginPreflightResultCacheItem : public Noncopyable {
+    class CrossOriginPreflightResultCacheItem {
+        WTF_MAKE_NONCOPYABLE(CrossOriginPreflightResultCacheItem); WTF_MAKE_FAST_ALLOCATED;
     public:
         CrossOriginPreflightResultCacheItem(bool credentials)
             : m_absoluteExpiryTime(0)
@@ -63,7 +64,8 @@ namespace WebCore {
         HeadersSet m_headers;
     };
 
-    class CrossOriginPreflightResultCache : public Noncopyable {
+    class CrossOriginPreflightResultCache {
+        WTF_MAKE_NONCOPYABLE(CrossOriginPreflightResultCache); WTF_MAKE_FAST_ALLOCATED;
     public:
         static CrossOriginPreflightResultCache& shared();
 
index ebf3a25b12906df6768a1b68af294703825d5894..3a3cc64be13b51a05f945c61445795f74b19135f 100644 (file)
@@ -47,6 +47,7 @@ namespace WebCore {
     class ThreadableLoaderClient;
 
     class DocumentThreadableLoader : public RefCounted<DocumentThreadableLoader>, public ThreadableLoader, private SubresourceLoaderClient  {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         static void loadResourceSynchronously(Document*, const ResourceRequest&, ThreadableLoaderClient&, const ThreadableLoaderOptions&);
         static PassRefPtr<DocumentThreadableLoader> create(Document*, ThreadableLoaderClient*, const ResourceRequest&, const ThreadableLoaderOptions&);
index 5fb3dc136647d0f6fd757536535734e2fcea95ee..fb936062b6178f5b6995a8c9ac4d69346006779e 100644 (file)
@@ -39,7 +39,8 @@ class Frame;
 class SecurityOrigin;
 class TextResourceDecoder;
 
-class DocumentWriter : public Noncopyable {
+class DocumentWriter {
+    WTF_MAKE_NONCOPYABLE(DocumentWriter);
 public:
     DocumentWriter(Frame*);
 
index e4cefc54aa0776b976fa61c34a00a5b6505272f9..f670024295a6e225f464ea0390ebb0624eabfbc7 100644 (file)
@@ -214,8 +214,10 @@ public:
 #endif
 };
 
-class EmptyFrameLoaderClient : public FrameLoaderClient, public Noncopyable {
+class EmptyFrameLoaderClient : public FrameLoaderClient {
+    WTF_MAKE_NONCOPYABLE(EmptyFrameLoaderClient); WTF_MAKE_FAST_ALLOCATED;
 public:
+    EmptyFrameLoaderClient() { }
     virtual ~EmptyFrameLoaderClient() {  }
     virtual void frameLoaderDestroyed() { }
 
@@ -387,8 +389,10 @@ public:
     virtual PassRefPtr<FrameNetworkingContext> createNetworkingContext() { return PassRefPtr<FrameNetworkingContext>(); }
 };
 
-class EmptyEditorClient : public EditorClient, public Noncopyable {
+class EmptyEditorClient : public EditorClient {
+    WTF_MAKE_NONCOPYABLE(EmptyEditorClient); WTF_MAKE_FAST_ALLOCATED;
 public:
+    EmptyEditorClient() { }
     virtual ~EmptyEditorClient() { }
     virtual void pageDestroyed() { }
 
@@ -501,8 +505,10 @@ public:
 };
 
 #if ENABLE(CONTEXT_MENUS)
-class EmptyContextMenuClient : public ContextMenuClient, public Noncopyable {
+class EmptyContextMenuClient : public ContextMenuClient {
+    WTF_MAKE_NONCOPYABLE(EmptyContextMenuClient); WTF_MAKE_FAST_ALLOCATED;
 public:
+    EmptyContextMenuClient() { }
     virtual ~EmptyContextMenuClient() {  }
     virtual void contextMenuDestroyed() { }
 
@@ -528,8 +534,10 @@ public:
 #endif // ENABLE(CONTEXT_MENUS)
 
 #if ENABLE(DRAG_SUPPORT)
-class EmptyDragClient : public DragClient, public Noncopyable {
+class EmptyDragClient : public DragClient {
+    WTF_MAKE_NONCOPYABLE(EmptyDragClient); WTF_MAKE_FAST_ALLOCATED;
 public:
+    EmptyDragClient() { }
     virtual ~EmptyDragClient() {}
     virtual void willPerformDragDestinationAction(DragDestinationAction, DragData*) { }
     virtual void willPerformDragSourceAction(DragSourceAction, const IntPoint&, Clipboard*) { }
@@ -541,8 +549,10 @@ public:
 };
 #endif // ENABLE(DRAG_SUPPORT)
 
-class EmptyInspectorClient : public InspectorClient, public Noncopyable {
+class EmptyInspectorClient : public InspectorClient {
+    WTF_MAKE_NONCOPYABLE(EmptyInspectorClient); WTF_MAKE_FAST_ALLOCATED;
 public:
+    EmptyInspectorClient() { }
     virtual ~EmptyInspectorClient() { }
 
     virtual void inspectorDestroyed() { }
index d72483577cd2de242bf7cb4bd3f5918e7916b2e8..7f58f9190485175bfe450497ba26d5e3cf112986 100644 (file)
@@ -47,7 +47,8 @@ class FormSubmission : public RefCounted<FormSubmission> {
 public:
     enum Method { GetMethod, PostMethod };
 
-    class Attributes : public Noncopyable {
+    class Attributes {
+        WTF_MAKE_NONCOPYABLE(Attributes);
     public:
         Attributes()
             : m_method(GetMethod)
index 7ff5dbd0856a443b65e91dde56a81b292e67b79f..af97fb3d8227e98ec0ea4a0f15ae52375bda40a7 100644 (file)
@@ -86,7 +86,8 @@ struct WindowFeatures;
 
 bool isBackForwardLoadType(FrameLoadType);
 
-class FrameLoader : public Noncopyable {
+class FrameLoader {
+    WTF_MAKE_NONCOPYABLE(FrameLoader);
 public:
     FrameLoader(Frame*, FrameLoaderClient*);
     ~FrameLoader();
index c3408c227a058ea3d5feed2cad6dd863ba41352c..fe37ece9c5406d9762f33536bcc1b9a9ed8e5218 100644 (file)
@@ -35,7 +35,8 @@ namespace WebCore {
 
 // Encapsulates a state machine for FrameLoader. Note that this is different from FrameState,
 // which stores the state of the current load that FrameLoader is executing.
-class FrameLoaderStateMachine : public Noncopyable {
+class FrameLoaderStateMachine {
+    WTF_MAKE_NONCOPYABLE(FrameLoaderStateMachine);
 public:
     FrameLoaderStateMachine();
 
index 17f80eb4cd189f7673a2d80501ac3afed9003f34..061f2356585e7098f5da915eb20cc77f116100d9 100644 (file)
@@ -41,7 +41,8 @@ class Frame;
 class HistoryItem;
 class SerializedScriptValue;
 
-class HistoryController : public Noncopyable {
+class HistoryController {
+    WTF_MAKE_NONCOPYABLE(HistoryController);
 public:
     enum HistoryUpdateType { UpdateAll, UpdateAllExceptBackForwardList };
 
index a77e8c06a5b24b85494a5c385139332c27fd50d1..069b40ed40c10f992b212d04e1a6e0c881b31f95 100644 (file)
@@ -57,7 +57,8 @@ template<> struct ValueCheck<WebCore::ImageLoader*> {
 
 namespace WebCore {
 
-class ImageEventSender : public Noncopyable {
+class ImageEventSender {
+    WTF_MAKE_NONCOPYABLE(ImageEventSender); WTF_MAKE_FAST_ALLOCATED;
 public:
     ImageEventSender(const AtomicString& eventType);
 
index 175219c29fd6d240db1f9e401859982248fd20e1..d51575bcc731242d01a33d122dbe264afd56f20a 100644 (file)
@@ -53,7 +53,8 @@ namespace WebCore {
 
 unsigned NavigationDisablerForBeforeUnload::s_navigationDisableCount = 0;
 
-class ScheduledNavigation : public Noncopyable {
+class ScheduledNavigation {
+    WTF_MAKE_NONCOPYABLE(ScheduledNavigation); WTF_MAKE_FAST_ALLOCATED;
 public:
     ScheduledNavigation(double delay, bool lockHistory, bool lockBackForwardList, bool wasDuringLoad, bool isLocationChange)
         : m_delay(delay)
index 3a076fb9a286cf03974b848483fa451f2bb71dd0..5988b602bea51b6fd468ce67efe6ba3e44fdda62 100644 (file)
@@ -50,7 +50,8 @@ class ResourceResponse;
 // to allow the load to live long enough to ensure the message was actually sent.
 // Therefore, as soon as a callback is received from the ResourceHandle, this class 
 // will cancel the load and delete itself.
-class PingLoader : private ResourceHandleClient, public Noncopyable {
+class PingLoader : private ResourceHandleClient {
+    WTF_MAKE_NONCOPYABLE(PingLoader); WTF_MAKE_FAST_ALLOCATED;
 public:
     static void loadImage(Frame*, const KURL& url);
     static void sendPing(Frame*, const KURL& pingURL, const KURL& destinationURL);
index 541729c36e68afce272cf62a67d71668888fdcb9..3118dae395e131af5c19ec803f9db6cb31f0278b 100644 (file)
@@ -45,7 +45,8 @@ class NavigationAction;
 class ResourceError;
 class ResourceResponse;
 
-class PolicyChecker : public Noncopyable {
+class PolicyChecker {
+    WTF_MAKE_NONCOPYABLE(PolicyChecker);
 public:
     PolicyChecker(Frame*);
 
index cd154336e7c3064eb776627ea926e8c36de117f8..65dd1c5866351690977efbc473110b39b1811eca 100644 (file)
@@ -50,7 +50,9 @@ static const double finalProgressValue = 0.9; // 1.0 - initialProgressValue
 
 static const int progressItemDefaultEstimatedLength = 1024 * 16;
 
-struct ProgressItem : Noncopyable {
+struct ProgressItem {
+    WTF_MAKE_NONCOPYABLE(ProgressItem); WTF_MAKE_FAST_ALLOCATED;
+public:
     ProgressItem(long long length) 
         : bytesReceived(0)
         , estimatedLength(length) { }
index 5d5b6b2ed01214694dcbfa563a0b3e7c1ffc332e..ea5f7f9f8fa8fe6d2dcbd1149ea979a7de75525b 100644 (file)
@@ -36,7 +36,8 @@ class Frame;
 class ResourceResponse;
 struct ProgressItem;
 
-class ProgressTracker : public Noncopyable {
+class ProgressTracker {
+    WTF_MAKE_NONCOPYABLE(ProgressTracker); WTF_MAKE_FAST_ALLOCATED;
 public:
     ProgressTracker();
     ~ProgressTracker();
index 2f1085658c99e14af993d3e4d2e683ce97fe7d60..a6d92fb7dd4c2e855247525c38755bac010e3194 100644 (file)
@@ -43,7 +43,8 @@ class ResourceLoader;
 class ResourceResponse;
 class ResourceRequest;
 
-class ResourceLoadNotifier : public Noncopyable {
+class ResourceLoadNotifier {
+    WTF_MAKE_NONCOPYABLE(ResourceLoadNotifier);
 public:
     ResourceLoadNotifier(Frame*);
 
index 163b67e5ea43a1c8f885133621dc87924766347d..f2e627f03bcc3c1ac12be5adad276b32cb2ce735 100644 (file)
@@ -44,7 +44,8 @@ class ResourceRequest;
 class SubresourceLoader;
 class SubresourceLoaderClient;
 
-class ResourceLoadScheduler : public Noncopyable {
+class ResourceLoadScheduler {
+    WTF_MAKE_NONCOPYABLE(ResourceLoadScheduler);
 public:
     friend ResourceLoadScheduler* resourceLoadScheduler();
 
@@ -69,7 +70,8 @@ private:
     void scheduleServePendingRequests();
     void requestTimerFired(Timer<ResourceLoadScheduler>*);
 
-    class HostInformation : public Noncopyable {
+    class HostInformation {
+        WTF_MAKE_NONCOPYABLE(HostInformation);
     public:
         HostInformation(const String&, unsigned);
         ~HostInformation();
index a5730454c3f2a0a96025211918394e879e2ac97d..ba63a5cf7900fdd17a3b1613d20344758e038207 100644 (file)
@@ -54,7 +54,8 @@ class Node;
 class Widget;
 
 // This is a slight misnomer. It handles the higher level logic of loading both subframes and plugins.
-class SubframeLoader : public Noncopyable {
+class SubframeLoader {
+    WTF_MAKE_NONCOPYABLE(SubframeLoader);
 public:
     SubframeLoader(Frame*);
 
index f41a774cef42217f17f178220dcd15b779671279..f574c94516229444fa9236b09fd62f55bfa8a7b2 100644 (file)
@@ -65,7 +65,8 @@ namespace WebCore {
 
     // Useful for doing loader operations from any thread (not threadsafe, 
     // just able to run on threads other than the main thread).
-    class ThreadableLoader : public Noncopyable {
+    class ThreadableLoader {
+        WTF_MAKE_NONCOPYABLE(ThreadableLoader);
     public:
         static void loadResourceSynchronously(ScriptExecutionContext*, const ResourceRequest&, ThreadableLoaderClient&, const ThreadableLoaderOptions&);
         static PassRefPtr<ThreadableLoader> create(ScriptExecutionContext*, ThreadableLoaderClient*, const ResourceRequest&, const ThreadableLoaderOptions&);
@@ -75,6 +76,7 @@ namespace WebCore {
         void deref() { derefThreadableLoader(); }
 
     protected:
+        ThreadableLoader() { }
         virtual ~ThreadableLoader() { }
         virtual void refThreadableLoader() = 0;
         virtual void derefThreadableLoader() = 0;
index bcf68beedb78a01f95d4e242f9a19247589b7df3..cea8b0f5e99d53c4cdf170d169a491a8a9615820 100644 (file)
 #ifndef ThreadableLoaderClient_h
 #define ThreadableLoaderClient_h
 
-#include <wtf/Noncopyable.h>
 
 namespace WebCore {
 
     class ResourceError;
     class ResourceResponse;
 
-    class ThreadableLoaderClient : public Noncopyable {
+    class ThreadableLoaderClient {
+        WTF_MAKE_NONCOPYABLE(ThreadableLoaderClient); WTF_MAKE_FAST_ALLOCATED;
     public:
         virtual void didSendData(unsigned long long /*bytesSent*/, unsigned long long /*totalBytesToBeSent*/) { }
 
@@ -51,6 +51,7 @@ namespace WebCore {
         virtual void didReceiveAuthenticationCancellation(const ResourceResponse&) { }
 
     protected:
+        ThreadableLoaderClient() { }
         virtual ~ThreadableLoaderClient() { }
     };
 
index 81da2e07de38a3a3129d356de7481b38497a9ab2..65cc637fc576f729d0974677de07fd22d6c60c89 100644 (file)
@@ -54,6 +54,7 @@ namespace WebCore {
     struct CrossThreadResourceRequestData;
 
     class WorkerThreadableLoader : public RefCounted<WorkerThreadableLoader>, public ThreadableLoader {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         static void loadResourceSynchronously(WorkerContext*, const ResourceRequest&, ThreadableLoaderClient&, const ThreadableLoaderOptions&);
         static PassRefPtr<WorkerThreadableLoader> create(WorkerContext* workerContext, ThreadableLoaderClient* client, const String& taskMode, const ResourceRequest& request, const ThreadableLoaderOptions& options)
index 2d8b83e1c748a09d015897946992679357ce33b3..f3a117e24a7ad85cd665e94195834b40fd962b8d 100644 (file)
@@ -53,7 +53,8 @@ enum ApplicationCacheUpdateOption {
     ApplicationCacheUpdateWithoutBrowsingContext
 };
 
-class ApplicationCacheGroup : public Noncopyable, ResourceHandleClient {
+class ApplicationCacheGroup : ResourceHandleClient {
+    WTF_MAKE_NONCOPYABLE(ApplicationCacheGroup); WTF_MAKE_FAST_ALLOCATED;
 public:
     ApplicationCacheGroup(const KURL& manifestURL, bool isCopy = false);    
     ~ApplicationCacheGroup();
index 8ac53573cc9ab02de1f20c6905210fe98e84c240..a1f2841c30d751c4af83df133aa92d08ddc2b76a 100644 (file)
@@ -58,7 +58,8 @@ namespace WebCore {
     class ApplicationCacheStorage;
 #endif
 
-    class ApplicationCacheHost : public Noncopyable {
+    class ApplicationCacheHost {
+        WTF_MAKE_NONCOPYABLE(ApplicationCacheHost); WTF_MAKE_FAST_ALLOCATED;
     public:
         // The Status numeric values are specified in the HTML5 spec.
         enum Status {
index 7db34e60abcfd20597b154d7a9a241b3a4233241..8bfdf13f6bc6ff0227386d90bc59a05492e51144 100644 (file)
@@ -44,7 +44,8 @@ template <class T>
 class StorageIDJournal;
 class SecurityOrigin;
 
-class ApplicationCacheStorage : public Noncopyable {
+class ApplicationCacheStorage {
+    WTF_MAKE_NONCOPYABLE(ApplicationCacheStorage); WTF_MAKE_FAST_ALLOCATED;
 public:
     enum FailureReason {
         OriginQuotaReached,
index 9d630d1b2895000c6fd29897de02c3f0cf72fdf8..fd2ddbf87ac9fa5825584602b4152c7e060ee3cc 100644 (file)
@@ -39,7 +39,8 @@
 
 namespace WebCore {
 
-class ArchiveResourceCollection : public Noncopyable {
+class ArchiveResourceCollection {
+    WTF_MAKE_NONCOPYABLE(ArchiveResourceCollection); WTF_MAKE_FAST_ALLOCATED;
 public:
     ArchiveResourceCollection();
 
index 3600a024baeacb747f7971405dfb4fd6fcbd28f5..5c8b38f1aba55e530e937d92325a202eed8e4e6d 100644 (file)
@@ -50,7 +50,8 @@ class PurgeableBuffer;
 // A resource that is held in the cache. Classes who want to use this object should derive
 // from CachedResourceClient, to get the function calls in case the requested data has arrived.
 // This class also does the actual communication with the loader to obtain the resource from the network.
-class CachedResource : public Noncopyable {
+class CachedResource {
+    WTF_MAKE_NONCOPYABLE(CachedResource); WTF_MAKE_FAST_ALLOCATED;
     friend class MemoryCache;
     friend class InspectorResource;
     
index 275d331d8e9ad05fc6d659573626e34935efbece..1c56f13460174b1f0d3ce16a19e57961d30c5627 100644 (file)
@@ -45,8 +45,8 @@ namespace WebCore {
      * inherit from this class and overload one of the 3 functions
      *
      */
-    class CachedResourceClient : public FastAllocBase
-    {
+    class CachedResourceClient {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         virtual ~CachedResourceClient() { }
 
index 34ef700b3996c3bd7cfa0fc3e59e401663e44a98..a540a413d57fc3d84620b1260d972b7f357190b4 100644 (file)
@@ -49,7 +49,8 @@ class ImageLoader;
 class KURL;
 
 // The CachedResourceLoader manages the loading of scripts/images/stylesheets for a single document.
-class CachedResourceLoader : public Noncopyable {
+class CachedResourceLoader {
+    WTF_MAKE_NONCOPYABLE(CachedResourceLoader); WTF_MAKE_FAST_ALLOCATED;
 friend class ImageLoader;
 
 public:
index e926d7cbeff5c3f08382cdd85d59627f5ce91c87..dd8b8433c21255dddd7be38226166a8fbd348d2b 100644 (file)
@@ -70,7 +70,8 @@ class KURL;
 // its member variables) are allocated in non-purgeable TC-malloc'd memory so we would see slightly
 // more memory use due to this.
 
-class MemoryCache : public Noncopyable {
+class MemoryCache {
+    WTF_MAKE_NONCOPYABLE(MemoryCache); WTF_MAKE_FAST_ALLOCATED;
 public:
     friend MemoryCache* memoryCache();
 
index 6146aa6343581fbfcc1fa14df95a4a157394b837..e08dcd46680b606a53ba1fbafa09f39cc6d4a574 100644 (file)
@@ -62,8 +62,8 @@ enum IconLoadDecision {
     IconLoadUnknown
 };
 
-class IconDatabase : public Noncopyable {
-
+class IconDatabase {
+    WTF_MAKE_NONCOPYABLE(IconDatabase); WTF_MAKE_FAST_ALLOCATED;
 // *** Main Thread Only ***
 public:
     void setClient(IconDatabaseClient*);
index c210d7d8ae8a8218b4f0e2bb72629abd8a609329..f97a2a849e22dd679e5b86c6db99b9c30ab42e94 100644 (file)
@@ -29,6 +29,7 @@
 #ifndef IconDatabaseClient_h
 #define IconDatabaseClient_h
 
+#include <wtf/FastAllocBase.h>
 #include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
  
 namespace WebCore {
 
-class IconDatabaseClient : public Noncopyable {
+class IconDatabaseClient {
+    WTF_MAKE_NONCOPYABLE(IconDatabaseClient); WTF_MAKE_FAST_ALLOCATED;
 public:
+    IconDatabaseClient() { }
     virtual ~IconDatabaseClient() { }
     virtual bool performImport() { return true; }
     virtual void dispatchDidRemoveAllIcons() { }
index 1ebac48972b118ffbfcb0585cf735e2c22d68628..2985393b6a6526b3ff2cbf1d9282ab7b924bbd92 100644 (file)
@@ -37,7 +37,8 @@ class Frame;
 class KURL;
 class SharedBuffer;
 
-class IconLoader : private SubresourceLoaderClient, public Noncopyable {
+class IconLoader : private SubresourceLoaderClient {
+    WTF_MAKE_NONCOPYABLE(IconLoader); WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassOwnPtr<IconLoader> create(Frame*);
     ~IconLoader();
index f7ccb8fd05061df5918ff20e1e0aa473b6347f99..7935dc9e4cb37c4b77a0951a6723d2bce4e22bcf 100644 (file)
@@ -51,7 +51,8 @@ public:
     String iconURL;
 };
 
-class PageURLRecord : public Noncopyable {
+class PageURLRecord {
+    WTF_MAKE_NONCOPYABLE(PageURLRecord); WTF_MAKE_FAST_ALLOCATED;
 public:
     PageURLRecord(const String& pageURL);
     ~PageURLRecord();
index f14a30206c96fa47bacbda3e3724c33d01b9a9fb..73131e50db7025f74a5f1f9ac915a44c791e7668 100644 (file)
@@ -59,6 +59,7 @@ namespace WebCore {
     class WorkerContext;
 
     class Notification : public RefCounted<Notification>, public ActiveDOMObject, public ThreadableLoaderClient, public EventTarget {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         static PassRefPtr<Notification> create(const KURL& url, ScriptExecutionContext* context, ExceptionCode& ec, PassRefPtr<NotificationCenter> provider);
         static PassRefPtr<Notification> create(const NotificationContents& contents, ScriptExecutionContext* context, ExceptionCode& ec, PassRefPtr<NotificationCenter> provider);
index ab927963f00f83d95be523ef904131a776a0aa15..e6a0a004190a02cf9dda69eb0d162cd7382dbb66 100644 (file)
@@ -41,7 +41,8 @@ namespace WebCore {
     class Event;
     class Page;
 
-    class ContextMenuController : public Noncopyable {
+    class ContextMenuController {
+        WTF_MAKE_NONCOPYABLE(ContextMenuController); WTF_MAKE_FAST_ALLOCATED;
     public:
         ContextMenuController(Page*, ContextMenuClient*);
         ~ContextMenuController();
index 10bb5f8dd4a5c38c1fbd86ee419652afbeca9fce..0f176b1a9019fb0310d5b8d3c358411591008cbf 100644 (file)
@@ -47,7 +47,8 @@ namespace WebCore {
     class Range;
     class SelectionController;
     
-    class DragController : public Noncopyable {
+    class DragController {
+        WTF_MAKE_NONCOPYABLE(DragController); WTF_MAKE_FAST_ALLOCATED;
     public:
         DragController(Page*, DragClient*);
         ~DragController();
index 0c1845056a18509be3d7f90ad72f73e4009566f9..d12a56e4dd1dfc5196943e3fb04797e26380889d 100644 (file)
@@ -81,7 +81,8 @@ extern const int GeneralDragHysteresis;
 
 enum HitTestScrollbars { ShouldHitTestScrollbars, DontHitTestScrollbars };
 
-class EventHandler : public Noncopyable {
+class EventHandler {
+    WTF_MAKE_NONCOPYABLE(EventHandler);
 public:
     EventHandler(Frame*);
     ~EventHandler();
@@ -224,7 +225,10 @@ private:
         PerformDragAndDrop
     };
 
-    struct EventHandlerDragState : Noncopyable {
+    struct EventHandlerDragState {
+        WTF_MAKE_NONCOPYABLE(EventHandlerDragState); WTF_MAKE_FAST_ALLOCATED;
+    public:
+        EventHandlerDragState() { }
         RefPtr<Node> m_dragSrc; // element that may be a drag source, for the current mouse gesture
         bool m_dragSrcIsLink;
         bool m_dragSrcIsImage;
index ffed5927947d8389e4d15698d6eace55e7f0322d..10ad6ba4a1021648c0e6f3655a2f6e60f8d8e382 100644 (file)
@@ -51,6 +51,7 @@ namespace WebCore {
     class ThreadableLoader;
 
     class EventSource : public RefCounted<EventSource>, public EventTarget, private ThreadableLoaderClient, public ActiveDOMObject {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         static PassRefPtr<EventSource> create(const String& url, ScriptExecutionContext*, ExceptionCode&);
         virtual ~EventSource();
index be51c775d47bde188f9b98a3db4b63d6a1755157..50fa2ea39ee563dbf8f476dbea3269eaaa4f33c4 100644 (file)
@@ -40,7 +40,8 @@ class KeyboardEvent;
 class Node;
 class Page;
 
-class FocusController : public Noncopyable {
+class FocusController {
+    WTF_MAKE_NONCOPYABLE(FocusController); WTF_MAKE_FAST_ALLOCATED;
 public:
     FocusController(Page*);
 
index 94b8d16c307174fb0272709ae01cd191fbd4ddc2..bac5475029982477782de63f8d70a2a0da9b9057 100644 (file)
@@ -26,7 +26,8 @@ namespace WebCore {
 
     class Frame;
 
-    class FrameTree : public Noncopyable {
+    class FrameTree {
+        WTF_MAKE_NONCOPYABLE(FrameTree);
     public:
         FrameTree(Frame* thisFrame, Frame* parentFrame) 
             : m_thisFrame(thisFrame)
index bcc8b9f11f50b9af74ae4c06d80dee0bc63d25c8..e03ef6932ce411b91b4e1b5fd5476eea28099818 100644 (file)
@@ -108,7 +108,10 @@ double FrameView::s_deferredRepaintDelayIncrementDuringLoading = 0;
 // The maximum number of updateWidgets iterations that should be done before returning.
 static const unsigned maxUpdateWidgetsIterations = 2;
 
-struct ScheduledEvent : Noncopyable {
+struct ScheduledEvent {
+    WTF_MAKE_NONCOPYABLE(ScheduledEvent); WTF_MAKE_FAST_ALLOCATED;
+public:
+    ScheduledEvent() { }
     RefPtr<Event> m_event;
     RefPtr<Node> m_eventTarget;
 };
index 7db195139e617eed1b022907bf439963620d590a..1a2ce692171b4929aa080bfe503a8b51e419feef 100644 (file)
@@ -40,7 +40,8 @@ class GeolocationError;
 class GeolocationPosition;
 class Page;
 
-class GeolocationController : public Noncopyable {
+class GeolocationController {
+    WTF_MAKE_NONCOPYABLE(GeolocationController);
 public:
     GeolocationController(Page*, GeolocationClient*);
     ~GeolocationController();
index fb6f6b5305cf81fd56ae44cd585c05dc06f6d7e5..1bbad2b5584bf7195e18752182af143d0915118b 100644 (file)
@@ -33,7 +33,8 @@ namespace WebCore {
 
 class PageGroup;
 
-class GroupSettings : public Noncopyable {
+class GroupSettings {
+    WTF_MAKE_NONCOPYABLE(GroupSettings); WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassOwnPtr<GroupSettings> create()
     {
index 7413bb699df1f70dea545f55a8f79bf9a1c560b9..071b1427d6d77cf90bff5c004cd829fe33300a32 100644 (file)
@@ -90,12 +90,15 @@ namespace WebCore {
 
     enum FindDirection { FindDirectionForward, FindDirectionBackward };
 
-    class Page : public Noncopyable {
+    class Page {
+        WTF_MAKE_NONCOPYABLE(Page);
     public:
         static void scheduleForcedStyleRecalcForAllPages();
 
         // It is up to the platform to ensure that non-null clients are provided where required.
-        struct PageClients : Noncopyable {
+        struct PageClients {
+            WTF_MAKE_NONCOPYABLE(PageClients); WTF_MAKE_FAST_ALLOCATED;
+        public:
             PageClients();
             ~PageClients();
 
index cc47fbab87e2af733ebd15a41dde7dc63053b255..643c5e632d2d69cc7d9d54fec43bd0c90869b66a 100644 (file)
@@ -41,7 +41,8 @@ namespace WebCore {
     class Page;
     class StorageNamespace;
 
-    class PageGroup : public Noncopyable {
+    class PageGroup {
+        WTF_MAKE_NONCOPYABLE(PageGroup); WTF_MAKE_FAST_ALLOCATED;
     public:
         PageGroup(const String& name);
         PageGroup(Page*);
index d443ebdd5f5f262219c4aa859669e38d7d980c9a..f7956c438e3217078406041e8480cc3ad5041583 100644 (file)
@@ -28,7 +28,8 @@ namespace WebCore {
     class Frame;
     class Page;
 
-    class PageGroupLoadDeferrer : public Noncopyable {
+    class PageGroupLoadDeferrer {
+        WTF_MAKE_NONCOPYABLE(PageGroupLoadDeferrer);
     public:
         PageGroupLoadDeferrer(Page*, bool deferSelf);
         ~PageGroupLoadDeferrer();
index af8b31ea69124c914ac5b442ed13e0320474b896..5b96d19eadce69fb17605496050d903a2289ab06 100644 (file)
@@ -35,7 +35,8 @@ namespace WebCore {
 
 class HaltablePlugin;
 
-class PluginHalter : public Noncopyable {
+class PluginHalter {
+    WTF_MAKE_NONCOPYABLE(PluginHalter); WTF_MAKE_FAST_ALLOCATED;
 public:
     PluginHalter(PluginHalterClient*);
 
index f4630de4a942d1f53612232f6d3066a9a2714f6c..420daccaa5e206baaea9226de9c1177b91e5ddd1 100644 (file)
@@ -50,7 +50,8 @@ namespace WebCore {
         TextDirectionSubmenuAlwaysIncluded
     };
 
-    class Settings : public Noncopyable {
+    class Settings {
+        WTF_MAKE_NONCOPYABLE(Settings); WTF_MAKE_FAST_ALLOCATED;
     public:
         Settings(Page*);
 
index 270f500407ae5f8cd96e0f0612f79c4acd88b663..52d6c0356f9bfd6d38cc4997b97888c5d78b9c73 100644 (file)
@@ -36,7 +36,6 @@
 #include "SpeechInputListener.h"
 #include <wtf/Forward.h>
 #include <wtf/HashMap.h>
-#include <wtf/Noncopyable.h>
 
 namespace WebCore {
 
@@ -48,7 +47,8 @@ class SpeechInputListener;
 // This class connects the input elements requiring speech input with the platform specific
 // speech recognition engine. It provides methods for the input elements to activate speech
 // recognition and methods for the speech recognition engine to return back the results.
-class SpeechInput : public Noncopyable, public SpeechInputListener {
+class SpeechInput : public SpeechInputListener {
+    WTF_MAKE_NONCOPYABLE(SpeechInput);
 public:
     SpeechInput(SpeechInputClient*);
     virtual ~SpeechInput();
index 0652439e2f4103e5ae6198bafbcad42010b717d8..0514090387948a8eecfa6f00260e6e8eea16ab22 100644 (file)
@@ -35,7 +35,8 @@
 
 namespace WebCore {
 
-class UserScript : public Noncopyable {
+class UserScript {
+    WTF_MAKE_NONCOPYABLE(UserScript); WTF_MAKE_FAST_ALLOCATED;
 public:
     UserScript(const String& source, const KURL& url,
                PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist,
index fa42e2c67b59e9ce9a3ecacc7259349bea5062d3..068df1ef67d64cf63d9ae346043465ce4e7cbe43 100644 (file)
@@ -35,7 +35,8 @@
 
 namespace WebCore {
 
-class UserStyleSheet : public Noncopyable {
+class UserStyleSheet {
+    WTF_MAKE_NONCOPYABLE(UserStyleSheet); WTF_MAKE_FAST_ALLOCATED;
 public:
     UserStyleSheet(const String& source, const KURL& url,
                    PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist,
index 2b781f12b129c55fae34a8e0140e8ef6a6f84330..5beed612cc270d6f4f2b2d8271a2a19b35a53ccf 100644 (file)
@@ -69,7 +69,8 @@ namespace WebCore {
     // * HTMLDocumentParser::shouldLoadExternalScriptFromSrc - used to load external JavaScript scripts.
     // * SubframeLoader::requestObject - used to load <object>/<embed> elements.
     //
-    class XSSAuditor : public Noncopyable {
+    class XSSAuditor {
+        WTF_MAKE_NONCOPYABLE(XSSAuditor); WTF_MAKE_FAST_ALLOCATED;
     public:
         XSSAuditor(Frame*);
         ~XSSAuditor();
index 14a44d2e4a77a113bdf5791cf27186a5ed0f285b..9a906e28d153d5a0fcca187c0416c74960c7f8ec 100644 (file)
@@ -223,7 +223,8 @@ class PropertyWrapperBase;
 static void addShorthandProperties();
 static PropertyWrapperBase* wrapperForProperty(int propertyID);
 
-class PropertyWrapperBase : public Noncopyable {
+class PropertyWrapperBase {
+    WTF_MAKE_NONCOPYABLE(PropertyWrapperBase); WTF_MAKE_FAST_ALLOCATED;
 public:
     PropertyWrapperBase(int prop)
         : m_prop(prop)
@@ -446,7 +447,8 @@ public:
 };
 
 template <typename T>
-class FillLayerPropertyWrapperGetter : public FillLayerPropertyWrapperBase, public Noncopyable {
+class FillLayerPropertyWrapperGetter : public FillLayerPropertyWrapperBase {
+    WTF_MAKE_NONCOPYABLE(FillLayerPropertyWrapperGetter);
 public:
     FillLayerPropertyWrapperGetter(T (FillLayer::*getter)() const)
         : m_getter(getter)
index 6812e09fcdeeecf11b08f36a2f48024493d5bcc6..186dd7db3fad06c72bf5f5830114f799aabe6e91 100644 (file)
@@ -49,7 +49,8 @@ class Node;
 class RenderObject;
 class RenderStyle;
 
-class AnimationControllerPrivate : public Noncopyable {
+class AnimationControllerPrivate {
+    WTF_MAKE_NONCOPYABLE(AnimationControllerPrivate); WTF_MAKE_FAST_ALLOCATED;
 public:
     AnimationControllerPrivate(Frame*);
     ~AnimationControllerPrivate();
index 2d4d86b690a81b9d07627ce4f975c22b73483dd5..60118590a5bd06f67fc806d743b4895c3f151f8e 100644 (file)
@@ -77,7 +77,8 @@ NSEvent *EventHandler::currentNSEvent()
     return currentNSEventSlot().get();
 }
 
-class CurrentEventScope : public Noncopyable {
+class CurrentEventScope {
+     WTF_MAKE_NONCOPYABLE(CurrentEventScope);
 public:
     CurrentEventScope(NSEvent *);
     ~CurrentEventScope();
index d96c1ad40ad29a6583f2028e556e04d322e8edae..c34a644d5dd2c3fb069b43e63c93b1b97fc4b52a 100644 (file)
@@ -44,7 +44,8 @@ class AsyncFileSystemCallbacks;
 class AsyncFileWriterClient;
 
 // This class provides async interface for platform-specific file system implementation.  Note that all the methods take platform paths.
-class AsyncFileSystem : public Noncopyable {
+class AsyncFileSystem {
+    WTF_MAKE_NONCOPYABLE(AsyncFileSystem);
 public:
     virtual ~AsyncFileSystem() { }
 
index 290a669ff235939587b45eae787b26505d83e634..cee8d90d03738fea1a67ee0e61347bf6ae272557 100644 (file)
@@ -41,8 +41,11 @@ class AsyncFileSystem;
 class AsyncFileWriter;
 struct FileMetadata;
 
-class AsyncFileSystemCallbacks : public Noncopyable {
+class AsyncFileSystemCallbacks {
+    WTF_MAKE_NONCOPYABLE(AsyncFileSystemCallbacks);
 public:
+    AsyncFileSystemCallbacks() { }    
+
     // Called when a requested operation is completed successfully.
     virtual void didSucceed() = 0;
 
index d44ee1eaa74642ea77491db978df446d008251b1..f03ec812e1c02e19a2877469f5f507dfe021f66f 100644 (file)
@@ -39,7 +39,8 @@ class NSAutoreleasePool;
 
 namespace WebCore {
 
-class AutodrainedPool : public Noncopyable {
+class AutodrainedPool {
+    WTF_MAKE_NONCOPYABLE(AutodrainedPool);
 public:
     AutodrainedPool(int iterationLimit = 1);
     ~AutodrainedPool();
index 575c86dd27da292fe938e8c980b5a47bae5ed218..29777492f6c9f34c626c88e0c9df65da9b3a9a22 100644 (file)
@@ -41,8 +41,8 @@ namespace WebCore {
 
     class ContextMenuController;
 
-    class ContextMenu : public Noncopyable
-    {
+    class ContextMenu {
+        WTF_MAKE_NONCOPYABLE(ContextMenu); WTF_MAKE_FAST_ALLOCATED;
     public:
         ContextMenu();
 
index 145d7953543b6b197cc14556d02ea4fb24c58b6e..6e841310850306b11094aca1a99d4cce4d94e58d 100644 (file)
@@ -223,7 +223,8 @@ namespace WebCore {
     typedef void* PlatformMenuItemDescription;
 #endif
 
-    class ContextMenuItem : public FastAllocBase {
+    class ContextMenuItem {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         ContextMenuItem(ContextMenuItemType, ContextMenuAction, const String&, ContextMenu* subMenu = 0);
         ContextMenuItem(ContextMenuItemType, ContextMenuAction, const String&, bool enabled, bool checked);
index 47cd5383b8717658094206ff158958099bcc3c8a..c07d173977a1582a1c531cf273c2b1b97e9019c2 100644 (file)
@@ -33,7 +33,8 @@ namespace WebCore {
 
 template <class T> class DeprecatedPtrListIterator;
 
-template <class T> class DeprecatedPtrList : public FastAllocBase {
+template <class T> class DeprecatedPtrList {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     DeprecatedPtrList() : impl(deleteFunc), del_item(false) { }
     ~DeprecatedPtrList() { impl.clear(del_item); }
index 96fd51383feca42ed83e82a1b8d7f3f5fc21a8ad..c633741eaf96b871e0286704a2427eb2c1bd8eb9 100644 (file)
 #include <cstddef>
 #include <algorithm>
 #include <wtf/Assertions.h>
+#include <wtf/FastAllocBase.h>
 #include <wtf/Noncopyable.h>
 
 namespace WebCore {
 
-class DeprecatedListNode : public Noncopyable
-{
+class DeprecatedListNode {
+    WTF_MAKE_NONCOPYABLE(DeprecatedListNode); WTF_MAKE_FAST_ALLOCATED;
 public:
     DeprecatedListNode(void *d) : data(d), next(0), prev(0) { }
 
index b0507f729321c50422ca1e7cd287b7b628aaa0af..128e92bc0251ea5f644a99f55f23fc2cf43866ad 100644 (file)
@@ -30,7 +30,8 @@
 
 namespace WebCore {
 
-    class EventLoop : public Noncopyable {
+    class EventLoop {
+        WTF_MAKE_NONCOPYABLE(EventLoop);
     public:
         EventLoop()
             : m_ended(false)
index 1585f65e4af1c5c474cd016617d4c39ec5d548fa..9211f8d1deb56b4c6dda2d70194f59fb52455f67 100644 (file)
@@ -42,7 +42,8 @@ public:
     virtual void geolocationServiceErrorOccurred(GeolocationService*) = 0;
 };
 
-class GeolocationService : public Noncopyable {
+class GeolocationService {
+    WTF_MAKE_NONCOPYABLE(GeolocationService);
 public:
     static GeolocationService* create(GeolocationServiceClient*);
     virtual ~GeolocationService() { }
index 7882d48fb4c291bb234f47a8184ce0aaf8f19d5a..225884b1fb209ebd1cd2ce2268df0fb02ca5926a 100644 (file)
 #ifndef HostWindow_h
 #define HostWindow_h
 
-#include <wtf/Noncopyable.h>
 #include "Widget.h"
 
 namespace WebCore {
 
 class Cursor;
 
-class HostWindow : public Noncopyable {
+class HostWindow {
+    WTF_MAKE_NONCOPYABLE(HostWindow); WTF_MAKE_FAST_ALLOCATED;
 public:
+    HostWindow() { }
     virtual ~HostWindow() { }
 
     // Requests the host invalidate the window, not the contents.  If immediate is true do so synchronously, otherwise async.
index 8e2735038cf22aa867ee0f4dffa3433f1ff32185..b6872742e5f5700385feb209d956fd59bf04ac51 100644 (file)
@@ -31,6 +31,7 @@
 namespace WebCore {
 
 class KillRing {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     void append(const String&);
     void prepend(const String&);
index 7dd875ea159424389078b6c6d26062f7fdc1cfe9..9da71c7aa4ebee298210a75da8beb5b4a9bee48b 100644 (file)
@@ -35,7 +35,9 @@ const int intMinForLength = (-0x7ffffff - 1); // min value for a 28-bit int
 
 enum LengthType { Auto, Relative, Percent, Fixed, Static, Intrinsic, MinIntrinsic };
 
-struct Length : FastAllocBase {
+struct Length {
+    WTF_MAKE_FAST_ALLOCATED;
+public:
     Length()
         : m_value(0)
     {
index 78a40b3c698e331bdb4a498544dd2c314afc9883..50a9cb6f2ef40120ec4baa8cafbec129e1595766 100644 (file)
@@ -81,7 +81,8 @@ class Node;
 class Range;
 class ArchiveResource;
     
-class Pasteboard : public Noncopyable {
+class Pasteboard {
+    WTF_MAKE_NONCOPYABLE(Pasteboard); WTF_MAKE_FAST_ALLOCATED;
 public:
 #if PLATFORM(MAC)
     //Helper functions to allow Clipboard to share code
index bc28e84cdb6afc328db71deebf02844b48040317..aee95b4755c8f7a96d20b6e29daf776956c32938 100644 (file)
@@ -75,7 +75,8 @@ typedef unsigned long int uint32;
 
 namespace WebCore {
 
-    class PlatformKeyboardEvent : public FastAllocBase {
+    class PlatformKeyboardEvent {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         enum Type {
             // KeyDown is sent by platforms such as Mac OS X, gtk and Qt, and has information about both physical pressed key, and its translation.
index 9bda2d5d290e241bac63fa480a358134dc6de867..44136c2f2294edbe2c2f70a69fec0f2b580e1314 100644 (file)
 #define PurgeableBuffer_h
 
 #include "PurgePriority.h"
-#include <wtf/Noncopyable.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
     
-    class PurgeableBuffer : public Noncopyable {
+    class PurgeableBuffer {
+        WTF_MAKE_NONCOPYABLE(PurgeableBuffer);
     public:
         static PassOwnPtr<PurgeableBuffer> create(const char* data, size_t);
         
index 65f253e7d27a4a2fd22fbe370c2baa75c08de528..f8c529fceb2d17030b26a369c0b3134144b056a0 100644 (file)
 #define RunLoopTimer_h
 
 #include "SchedulePair.h"
-#include <wtf/Noncopyable.h>
 #include <wtf/RetainPtr.h>
 
 namespace WebCore {
 
 // Time intervals are all in seconds.
 
-class RunLoopTimerBase : public Noncopyable {
+class RunLoopTimerBase {
+    WTF_MAKE_NONCOPYABLE(RunLoopTimerBase);
 public:
+    RunLoopTimerBase() { }
     virtual ~RunLoopTimerBase();
 
     void schedule(const SchedulePair*);
index 4e9e24bb6dd49ac59b9dac5769f4885b691447bd..ef52b0d6e894d329676bdc6174e17774663cc0f5 100644 (file)
@@ -36,8 +36,10 @@ class PlatformMouseEvent;
 class Scrollbar;
 class ScrollView;
 
-class ScrollbarTheme : public Noncopyable {
+class ScrollbarTheme {
+    WTF_MAKE_NONCOPYABLE(ScrollbarTheme); WTF_MAKE_FAST_ALLOCATED;
 public:
+    ScrollbarTheme() { }
     virtual ~ScrollbarTheme() {};
 
     virtual bool paint(Scrollbar*, GraphicsContext*, const IntRect& /*damageRect*/) { return false; }
index 5b5cd1487e3ca3a66a69c3171193f4d611e13a77..16e0d0b42f8da851fa8eab96dc1aacbe720e7a3c 100644 (file)
@@ -26,6 +26,7 @@
 #ifndef SharedTimer_h
 #define SharedTimer_h
 
+#include <wtf/FastAllocBase.h>
 #include <wtf/Noncopyable.h>
 
 namespace WebCore {
@@ -33,8 +34,10 @@ namespace WebCore {
     // Each thread has its own single instance of shared timer, which implements this interface.
     // This instance is shared by all timers in the thread.
     // Not intended to be used directly; use the Timer class instead.
-    class SharedTimer : public Noncopyable {
+    class SharedTimer {
+        WTF_MAKE_NONCOPYABLE(SharedTimer); WTF_MAKE_FAST_ALLOCATED;
     public:
+        SharedTimer() { }
         virtual ~SharedTimer() {}
         virtual void setFiredFunction(void (*)()) = 0;
 
index 9f57f001def6764a74b13bb832c599933f362da2..76377b49e090b9ae70775419848f2145cfe0f766 100644 (file)
@@ -45,7 +45,8 @@ namespace WebCore {
     struct TECConverterWrapper;
     class ThreadTimers;
 
-    class ThreadGlobalData : public Noncopyable {
+    class ThreadGlobalData {
+        WTF_MAKE_NONCOPYABLE(ThreadGlobalData);
     public:
         ThreadGlobalData();
         ~ThreadGlobalData();
index ab42598f64a98990449dfb1b130956f40c5d9883..3d7b5f907dbc13b236699d003e230e9899ec0f8c 100644 (file)
@@ -37,7 +37,8 @@ namespace WebCore {
     class TimerBase;
 
     // A collection of timers per thread. Kept in ThreadGlobalData.
-    class ThreadTimers : public Noncopyable {
+    class ThreadTimers {
+        WTF_MAKE_NONCOPYABLE(ThreadTimers); WTF_MAKE_FAST_ALLOCATED;
     public:
         ThreadTimers();
 
index c4443da4937c1b7868aaa0236e8332b3208b22ff..c331e3db54808f7569378f8a923ebc3f270cfa46 100644 (file)
@@ -35,7 +35,8 @@ namespace WebCore {
 
 class TimerHeapElement;
 
-class TimerBase : public Noncopyable {
+class TimerBase {
+    WTF_MAKE_NONCOPYABLE(TimerBase); WTF_MAKE_FAST_ALLOCATED;
 public:
     TimerBase();
     virtual ~TimerBase();
index 9d9ac1f69cdbc3ede477d94b3578d6d42924db9d..9e27c5e1627bea24f9f0fbf2c846693c8847cbd3 100644 (file)
@@ -32,7 +32,8 @@ template<typename T> class TreeShared;
 template<typename T> void adopted(TreeShared<T>*);
 #endif
 
-template<typename T> class TreeShared : public Noncopyable {
+template<typename T> class TreeShared {
+    WTF_MAKE_NONCOPYABLE(TreeShared);
 public:
     TreeShared()
         : m_refCount(1)
index 9a334ca218110519ee68e95b1acb6b02ff2159fb..bf8ff9f1e826359fad092d5fac6ffccf91fd289b 100644 (file)
@@ -31,7 +31,8 @@
 
 namespace WebCore {
 
-class AnimationList : public FastAllocBase {
+class AnimationList {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     AnimationList() { }
     AnimationList(const AnimationList&);
index 4318b8186046147d4fb6d9f33dd801add9f88d5f..888f6bf89acee077971eb7e1f254c34d1bde6ed7 100644 (file)
@@ -39,7 +39,8 @@ namespace WebCore {
 // An AudioBus represents a collection of one or more AudioChannels.
 // The data layout is "planar" as opposed to "interleaved".
 // An AudioBus with one channel is mono, an AudioBus with two channels is stereo, etc.
-class AudioBus  : public Noncopyable {
+class AudioBus {
+    WTF_MAKE_NONCOPYABLE(AudioBus);
 public:
     enum {
         ChannelLeft = 0,
index 681683074f65dfeae60e846f5c964effb6426518..7325e9f38bb43ebbfdb0d69dda75da64239fd7e6 100644 (file)
 #define AudioChannel_h
 
 #include "AudioArray.h"
-#include <wtf/Noncopyable.h>
 #include <wtf/PassOwnPtr.h>
 
 namespace WebCore {
 
 // An AudioChannel represents a buffer of non-interleaved floating-point audio samples.
 // The PCM samples are normally assumed to be in a nominal range -1.0 -> +1.0
-class AudioChannel : public Noncopyable {
+class AudioChannel {
+    WTF_MAKE_NONCOPYABLE(AudioChannel);
 public:
     // Memory can be externally referenced, or can be internally allocated with an AudioFloatArray.
 
index c33b38fbeaa31aad91a959d6468afaa2b804b334..bf13a3a2230956abcd6b9eed5172926d75a71a18 100644 (file)
@@ -43,7 +43,8 @@ namespace WebCore {
 
 class HRTFKernel;
 
-class HRTFDatabase : public Noncopyable {
+class HRTFDatabase {
+    WTF_MAKE_NONCOPYABLE(HRTFDatabase);
 public:
     static PassOwnPtr<HRTFDatabase> create(double sampleRate);
 
index b388b342304bd5aef245d6a598bacd787c1a2a4b..24b7822886deda109544cf072b11340fd29148bb 100644 (file)
@@ -43,7 +43,8 @@ namespace WebCore {
 
 // HRTFElevation contains all of the HRTFKernels (one left ear and one right ear per azimuth angle) for a particular elevation.
 
-class HRTFElevation : public Noncopyable {
+class HRTFElevation {
+    WTF_MAKE_NONCOPYABLE(HRTFElevation);
 public:
     // Loads and returns an HRTFElevation with the given HRTF database subject name and elevation from browser (or WebKit.framework) resources.
     // Normally, there will only be a single HRTF database set, but this API supports the possibility of multiple ones with different names.