Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(588)

Side by Side Diff: Source/heap/ThreadState.h

Issue 78053006: [oilpan] Move IDBDatabase, IDBDatabaseCallbacks, IDBDatabaseBackendInterface and other related clas… (Closed) Base URL: svn://svn.chromium.org/blink/branches/oilpan
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/bindings/scripts/CodeGeneratorV8.pm ('k') | Source/heap/Visitor.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 57
58 // Marks specified class as requiring thread safe handles which can be used from any thread. 58 // Marks specified class as requiring thread safe handles which can be used from any thread.
59 // Notice that marking base class does not automatically mark its descendants an d they 59 // Notice that marking base class does not automatically mark its descendants an d they
60 // have to be explicitly marked. 60 // have to be explicitly marked.
61 #define REQUIRE_THREADSAFE_HANDLES(Class) \ 61 #define REQUIRE_THREADSAFE_HANDLES(Class) \
62 class Class; \ 62 class Class; \
63 template<> struct ThreadingTrait<Class> { \ 63 template<> struct ThreadingTrait<Class> { \
64 static const ThreadAffinity Affinity = AnyThread; \ 64 static const ThreadAffinity Affinity = AnyThread; \
65 } 65 }
66 66
67 #define REQUIRE_THREADSAFE_HANDLES_NS(Namespace, Class) \ 67 #define REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(Namespace, Class) \
68 namespace Namespace { \ 68 namespace Namespace { \
69 class Class; \ 69 class Class; \
70 } \ 70 } \
71 namespace WebCore { \ 71 namespace WebCore { \
72 template<> struct ThreadingTrait<Namespace::Class> { \ 72 template<> struct ThreadingTrait<Namespace::Class> { \
73 static const ThreadAffinity Affinity = AnyThread; \ 73 static const ThreadAffinity Affinity = AnyThread; \
74 }; \ 74 }; \
75 } 75 }
76 76
77
78 template<typename U> class ThreadingTrait<const U> : public ThreadingTrait<U> { }; 77 template<typename U> class ThreadingTrait<const U> : public ThreadingTrait<U> { };
79 78
80 class HeapObjectHeader; 79 class HeapObjectHeader;
81 class FinalizedHeapObjectHeader; 80 class FinalizedHeapObjectHeader;
82 template<typename Header> class ThreadHeap; 81 template<typename Header> class ThreadHeap;
83 82
84 // To create a new typed heap add a H(<ClassName>) to the for FOR_EACH_TYPED_HEA P macro below. 83 // To create a new typed heap add a H(<ClassName>) to the for FOR_EACH_TYPED_HEA P macro below.
85 #define FOR_EACH_TYPED_HEAP(H) \ 84 #define FOR_EACH_TYPED_HEAP(H) \
86 H(Node) 85 H(Node)
87 86
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 public: 317 public:
319 static ThreadState* State() { return ThreadState::MainThreadState(); } 318 static ThreadState* State() { return ThreadState::MainThreadState(); }
320 }; 319 };
321 320
322 template<> class ThreadStateFor<AnyThread> { 321 template<> class ThreadStateFor<AnyThread> {
323 public: 322 public:
324 static ThreadState* State() { return ThreadState::Current(); } 323 static ThreadState* State() { return ThreadState::Current(); }
325 }; 324 };
326 325
327 // FIXME(oilpan): find a better place for this. 326 // FIXME(oilpan): find a better place for this.
328 REQUIRE_THREADSAFE_HANDLES(ScriptExecutionContext); 327 REQUIRE_THREADSAFE_HANDLES(Blob);
328 REQUIRE_THREADSAFE_HANDLES(DOMCoreException);
329 REQUIRE_THREADSAFE_HANDLES(DOMFileSystem);
330 REQUIRE_THREADSAFE_HANDLES(DOMFileSystemSync);
331 REQUIRE_THREADSAFE_HANDLES(DOMURL);
332 REQUIRE_THREADSAFE_HANDLES(DataView);
333 REQUIRE_THREADSAFE_HANDLES(DedicatedWorkerContext);
334 REQUIRE_THREADSAFE_HANDLES(DirectoryEntry);
335 REQUIRE_THREADSAFE_HANDLES(DirectoryEntrySync);
336 REQUIRE_THREADSAFE_HANDLES(DirectoryReder);
337 REQUIRE_THREADSAFE_HANDLES(DirectoryRederSync);
329 REQUIRE_THREADSAFE_HANDLES(Document); 338 REQUIRE_THREADSAFE_HANDLES(Document);
330 REQUIRE_THREADSAFE_HANDLES(WorkerContext); 339 REQUIRE_THREADSAFE_HANDLES(Entry);
331 REQUIRE_THREADSAFE_HANDLES(DedicatedWorkerContext); 340 REQUIRE_THREADSAFE_HANDLES(EntryArray);
332 REQUIRE_THREADSAFE_HANDLES(SharedWorkerContext); 341 REQUIRE_THREADSAFE_HANDLES(EntryArraySync);
342 REQUIRE_THREADSAFE_HANDLES(EntrySync);
343 REQUIRE_THREADSAFE_HANDLES(Event);
344 REQUIRE_THREADSAFE_HANDLES(EventSource);
333 REQUIRE_THREADSAFE_HANDLES(EventTarget); 345 REQUIRE_THREADSAFE_HANDLES(EventTarget);
334 REQUIRE_THREADSAFE_HANDLES(MessagePort); 346 REQUIRE_THREADSAFE_HANDLES(File);
347 REQUIRE_THREADSAFE_HANDLES(FileEntry);
348 REQUIRE_THREADSAFE_HANDLES(FileEntrySync);
349 REQUIRE_THREADSAFE_HANDLES(FileError);
350 REQUIRE_THREADSAFE_HANDLES(FileException);
335 REQUIRE_THREADSAFE_HANDLES(FileReader); 351 REQUIRE_THREADSAFE_HANDLES(FileReader);
336 REQUIRE_THREADSAFE_HANDLES(FileReaderSync); 352 REQUIRE_THREADSAFE_HANDLES(FileReaderSync);
337 REQUIRE_THREADSAFE_HANDLES(ProgressEvent); 353 REQUIRE_THREADSAFE_HANDLES(FileWriter);
338 REQUIRE_THREADSAFE_HANDLES(Event);
339 REQUIRE_THREADSAFE_HANDLES(FileError);
340 REQUIRE_THREADSAFE_HANDLES(FileException);
341 REQUIRE_THREADSAFE_HANDLES(DataView);
342 REQUIRE_THREADSAFE_HANDLES(DOMCoreException);
343 REQUIRE_THREADSAFE_HANDLES(DOMURL);
344 REQUIRE_THREADSAFE_HANDLES(XMLHttpRequest);
345 REQUIRE_THREADSAFE_HANDLES(XMLHttpRequestException);
346 REQUIRE_THREADSAFE_HANDLES(Blob);
347 REQUIRE_THREADSAFE_HANDLES(DOMFileSystem);
348 REQUIRE_THREADSAFE_HANDLES(Entry);
349 REQUIRE_THREADSAFE_HANDLES(FileEntry);
350 REQUIRE_THREADSAFE_HANDLES(DirectoryEntry);
351 REQUIRE_THREADSAFE_HANDLES(DirectoryReder);
352 REQUIRE_THREADSAFE_HANDLES(DOMFileSystemSync);
353 REQUIRE_THREADSAFE_HANDLES(EntrySync);
354 REQUIRE_THREADSAFE_HANDLES(FileEntrySync);
355 REQUIRE_THREADSAFE_HANDLES(DirectoryEntrySync);
356 REQUIRE_THREADSAFE_HANDLES(DirectoryRederSync);
357 REQUIRE_THREADSAFE_HANDLES(EntryArray);
358 REQUIRE_THREADSAFE_HANDLES(EntryArraySync);
359 REQUIRE_THREADSAFE_HANDLES(FileWriterBase); 354 REQUIRE_THREADSAFE_HANDLES(FileWriterBase);
360 REQUIRE_THREADSAFE_HANDLES(FileWriter);
361 REQUIRE_THREADSAFE_HANDLES(FileWriterSync); 355 REQUIRE_THREADSAFE_HANDLES(FileWriterSync);
362 REQUIRE_THREADSAFE_HANDLES(File);
363 REQUIRE_THREADSAFE_HANDLES(WebSocket);
364 REQUIRE_THREADSAFE_HANDLES(EventSource);
365
366 REQUIRE_THREADSAFE_HANDLES(IDBAny); 356 REQUIRE_THREADSAFE_HANDLES(IDBAny);
367 REQUIRE_THREADSAFE_HANDLES(IDBCallbacks); 357 REQUIRE_THREADSAFE_HANDLES(IDBCallbacks);
368 REQUIRE_THREADSAFE_HANDLES(IDBCursor); 358 REQUIRE_THREADSAFE_HANDLES(IDBCursor);
369 REQUIRE_THREADSAFE_HANDLES(IDBCursorWithValue); 359 REQUIRE_THREADSAFE_HANDLES(IDBCursorWithValue);
370 REQUIRE_THREADSAFE_HANDLES(IDBDatabase); 360 REQUIRE_THREADSAFE_HANDLES(IDBDatabase);
361 REQUIRE_THREADSAFE_HANDLES(IDBDatabaseBackendImpl);
362 REQUIRE_THREADSAFE_HANDLES(IDBDatabaseBackendInterface);
363 REQUIRE_THREADSAFE_HANDLES(IDBDatabaseCallbacks);
364 REQUIRE_THREADSAFE_HANDLES(IDBDatabaseCallbacksImpl);
371 REQUIRE_THREADSAFE_HANDLES(IDBFactory); 365 REQUIRE_THREADSAFE_HANDLES(IDBFactory);
372 REQUIRE_THREADSAFE_HANDLES(IDBFactoryBackendImpl); 366 REQUIRE_THREADSAFE_HANDLES(IDBFactoryBackendImpl);
373 REQUIRE_THREADSAFE_HANDLES(IDBFactoryBackendInterface); 367 REQUIRE_THREADSAFE_HANDLES(IDBFactoryBackendInterface);
374 REQUIRE_THREADSAFE_HANDLES(IDBIndex); 368 REQUIRE_THREADSAFE_HANDLES(IDBIndex);
375 REQUIRE_THREADSAFE_HANDLES(IDBKeyRange); 369 REQUIRE_THREADSAFE_HANDLES(IDBKeyRange);
376 REQUIRE_THREADSAFE_HANDLES(IDBObjectStore); 370 REQUIRE_THREADSAFE_HANDLES(IDBObjectStore);
377 REQUIRE_THREADSAFE_HANDLES(IDBOpenDBRequest); 371 REQUIRE_THREADSAFE_HANDLES(IDBOpenDBRequest);
372 REQUIRE_THREADSAFE_HANDLES(IDBRequest);
378 REQUIRE_THREADSAFE_HANDLES(IDBTransaction); 373 REQUIRE_THREADSAFE_HANDLES(IDBTransaction);
379 REQUIRE_THREADSAFE_HANDLES(IDBVersionChangeEvent); 374 REQUIRE_THREADSAFE_HANDLES(IDBVersionChangeEvent);
380 REQUIRE_THREADSAFE_HANDLES(IDBRequest); 375 REQUIRE_THREADSAFE_HANDLES(MessagePort);
376 REQUIRE_THREADSAFE_HANDLES(ProgressEvent);
377 REQUIRE_THREADSAFE_HANDLES(ScriptExecutionContext);
378 REQUIRE_THREADSAFE_HANDLES(SharedWorkerContext);
379 REQUIRE_THREADSAFE_HANDLES(WebSocket);
380 REQUIRE_THREADSAFE_HANDLES(WorkerContext);
381 REQUIRE_THREADSAFE_HANDLES(XMLHttpRequest);
382 REQUIRE_THREADSAFE_HANDLES(XMLHttpRequestException);
381 383
382 } 384 }
383 385
384 REQUIRE_THREADSAFE_HANDLES_NS(WTF, ArrayBuffer); 386 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, ArrayBuffer);
385 REQUIRE_THREADSAFE_HANDLES_NS(WTF, ArrayBufferView); 387 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, ArrayBufferView);
386 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Int8Array); 388 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Int8Array);
387 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Uint8ClampedArray); 389 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Uint8ClampedArray);
388 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Uint8Array); 390 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Uint8Array);
389 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Int16Array); 391 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Int16Array);
390 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Uint16Array); 392 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Uint16Array);
391 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Int32Array); 393 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Int32Array);
392 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Uint32Array); 394 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Uint32Array);
393 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Float32Array); 395 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Float32Array);
394 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Float64Array); 396 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Float64Array);
397 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WebKit, IDBCallbacksProxy);
398 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WebKit, IDBDatabaseBackendProxy);
399 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WebKit, IDBDatabaseCallbacksProxy);
400 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WebKit, IDBFactoryBackendProxy);
395 401
396 #endif 402 #endif
OLDNEW
« no previous file with comments | « Source/bindings/scripts/CodeGeneratorV8.pm ('k') | Source/heap/Visitor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698