Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/src/3rdparty/masm/wtf/OSAllocator.h |
Switch to Source code | Preprocessed file |
Line | Source | Count |
---|---|---|
1 | - | |
2 | namespace WTF { | - |
3 | - | |
4 | class OSAllocator { | - |
5 | public: | - |
6 | enum Usage { | - |
7 | UnknownUsage = -1, | - |
8 | FastMallocPages = 0, | - |
9 | JSGCHeapPages = 1, | - |
10 | JSVMStackPages = 3, | - |
11 | JSJITCodePages = 2, | - |
12 | }; | - |
13 | - | |
14 | - | |
15 | - | |
16 | - | |
17 | static void* reserveUncommitted(size_t, Usage = UnknownUsage, bool writable = true, bool executable = false); | - |
18 | static void releaseDecommitted(void*, size_t); | - |
19 | - | |
20 | - | |
21 | - | |
22 | - | |
23 | static void commit(void*, size_t, bool writable, bool executable); | - |
24 | static void decommit(void*, size_t); | - |
25 | - | |
26 | - | |
27 | - | |
28 | - | |
29 | static void* reserveAndCommit(size_t, Usage = UnknownUsage, bool writable = true, bool executable = false, bool includesGuardPages = false); | - |
30 | static void decommitAndRelease(void* base, size_t size); | - |
31 | - | |
32 | - | |
33 | - | |
34 | - | |
35 | static void* reserveAndCommit(size_t reserveSize, size_t commitSize, Usage = UnknownUsage, bool writable = true, bool executable = false); | - |
36 | static void decommitAndRelease(void* releaseBase, size_t releaseSize, void* decommitBase, size_t decommitSize); | - |
37 | - | |
38 | - | |
39 | - | |
40 | - | |
41 | template<typename T> | - |
42 | static T* reallocateCommitted(T*, size_t oldSize, size_t newSize, Usage = UnknownUsage, bool writable = true, bool executable = false); | - |
43 | - | |
44 | static bool canAllocateExecutableMemory(); | - |
45 | - | |
46 | - | |
47 | - | |
48 | - | |
49 | }; | - |
50 | - | |
51 | inline void* OSAllocator::reserveAndCommit(size_t reserveSize, size_t commitSize, Usage usage, bool writable, bool executable) | - |
52 | { | - |
53 | void* base = reserveUncommitted(reserveSize, usage, writable, executable); | - |
54 | commit(base, commitSize, writable, executable); | - |
55 | return never executed: base;return base; never executed: return base; | 0 |
56 | } | - |
57 | - | |
58 | inline void OSAllocator::decommitAndRelease(void* releaseBase, size_t releaseSize, void* decommitBase, size_t decommitSize) | - |
59 | { | - |
60 | (!(decommitBase >= releaseBase && (static_cast<char*>(decommitBase) + decommitSize) <= (static_cast<char*>(releaseBase) + releaseSize)) ? (qmlWTFReportAssertionFailure(__FILE__, 91, __PRETTY_FUNCTION__, "decommitBase >= releaseBase && (static_cast<char*>(decommitBase) + decommitSize) <= (static_cast<char*>(releaseBase) + releaseSize)"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - |
61 | - | |
62 | - | |
63 | - | |
64 | - | |
65 | - | |
66 | (void)decommitBase;; | - |
67 | (void)decommitSize;; | - |
68 | - | |
69 | releaseDecommitted(releaseBase, releaseSize); | - |
70 | } executed 505812 times by 153 tests: end of block Executed by:
| 505812 |
71 | - | |
72 | inline void OSAllocator::decommitAndRelease(void* base, size_t size) | - |
73 | { | - |
74 | decommitAndRelease(base, size, base, size); | - |
75 | } executed 505820 times by 153 tests: end of block Executed by:
| 505820 |
76 | - | |
77 | template<typename T> | - |
78 | inline T* OSAllocator::reallocateCommitted(T* oldBase, size_t oldSize, size_t newSize, Usage usage, bool writable, bool executable) | - |
79 | { | - |
80 | void* newBase = reserveAndCommit(newSize, usage, writable, executable); | - |
81 | memcpy(newBase, oldBase, std::min(oldSize, newSize)); | - |
82 | decommitAndRelease(oldBase, oldSize); | - |
83 | return never executed: static_cast<T*>(newBase);return static_cast<T*>(newBase); never executed: return static_cast<T*>(newBase); | 0 |
84 | } | - |
85 | - | |
86 | } | - |
87 | - | |
88 | using WTF::OSAllocator; | - |
Switch to Source code | Preprocessed file |