Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | | - |
11 | | - |
12 | | - |
13 | | - |
14 | | - |
15 | | - |
16 | | - |
17 | | - |
18 | | - |
19 | | - |
20 | | - |
21 | | - |
22 | | - |
23 | | - |
24 | | - |
25 | | - |
26 | #include "config.h" | - |
27 | #include "OSAllocator.h" | - |
28 | | - |
29 | #if OS(UNIX) | - |
30 | | - |
31 | #include <cstdlib> | - |
32 | | - |
33 | #include "PageAllocation.h" | - |
34 | #include <dlfcn.h> | - |
35 | #include <errno.h> | - |
36 | #include <sys/mman.h> | - |
37 | #include <wtf/Assertions.h> | - |
38 | #include <wtf/UnusedParam.h> | - |
39 | | - |
40 | #if OS(LINUX) | - |
41 | #include <sys/syscall.h> | - |
42 | #ifndef MFD_CLOEXEC | - |
43 | #define MFD_CLOEXEC 0x0001U | - |
44 | #endif | - |
45 | #endif | - |
46 | | - |
47 | #if defined(__ANDROID__) && defined(SYS_memfd_create) | - |
48 | | - |
49 | | - |
50 | | - |
51 | # undef SYS_memfd_create | - |
52 | #endif | - |
53 | | - |
54 | namespace WTF { | - |
55 | | - |
56 | #ifdef SYS_memfd_create | - |
57 | static int memfdForUsage(size_t bytes, OSAllocator::Usage usage) | - |
58 | { | - |
59 | const char *type = "unknown-usage:"; | - |
60 | switch (usage) { | - |
61 | case OSAllocator::UnknownUsage:executed 179298 times by 153 tests: case OSAllocator::UnknownUsage: Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 179298 |
62 | break;executed 179299 times by 153 tests: break; Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 179299 |
63 | case OSAllocator::FastMallocPages: never executed: case OSAllocator::FastMallocPages: | 0 |
64 | type = "fastmalloc:"; | - |
65 | break; never executed: break; | 0 |
66 | case OSAllocator::JSGCHeapPages:executed 99082 times by 153 tests: case OSAllocator::JSGCHeapPages: Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 99082 |
67 | type = "JSGCHeap:"; | - |
68 | break;executed 99180 times by 153 tests: break; Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 99180 |
69 | case OSAllocator::JSVMStackPages:executed 198409 times by 153 tests: case OSAllocator::JSVMStackPages: Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 198409 |
70 | type = "JSVMStack:"; | - |
71 | break;executed 198400 times by 153 tests: break; Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 198400 |
72 | case OSAllocator::JSJITCodePages:executed 127271 times by 153 tests: case OSAllocator::JSJITCodePages: Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 127271 |
73 | type = "JITCode:"; | - |
74 | break;executed 127794 times by 153 tests: break; Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 127794 |
75 | } | - |
76 | | - |
77 | | - |
78 | | - |
79 | static const char *libname = [=]() { | - |
80 | Dl_info info; | - |
81 | if (dladdr(type, &info) == 0) | - |
82 | info.dli_fname = nullptr; | - |
83 | return info.dli_fname; | - |
84 | }(); | - |
85 | | - |
86 | char buf[PATH_MAX]; | - |
87 | strcpy(buf, type); | - |
88 | if (libname)TRUE | evaluated 605244 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| FALSE | never evaluated |
| 0-605244 |
89 | strcat(buf, libname);executed 605259 times by 153 tests: strcat(buf, libname); Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 605259 |
90 | else | - |
91 | strcat(buf, "QtQml"); never executed: strcat(buf, "QtQml"); | 0 |
92 | | - |
93 | int fd = syscall(SYS_memfd_create, buf, MFD_CLOEXEC); | - |
94 | if (fd != -1) {TRUE | evaluated 605346 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| FALSE | never evaluated |
| 0-605346 |
95 | if (ftruncate(fd, bytes) == 0)TRUE | evaluated 605357 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| FALSE | never evaluated |
| 0-605357 |
96 | return fd;executed 605202 times by 153 tests: return fd; Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 605202 |
97 | } never executed: end of block | 0 |
98 | close(fd); | - |
99 | return -1; never executed: return -1; | 0 |
100 | } | - |
101 | #elif OS(LINUX) | - |
102 | static int memfdForUsage(size_t bytes, OSAllocator::Usage usage) | - |
103 | { | - |
104 | UNUSED_PARAM(bytes); | - |
105 | UNUSED_PARAM(usage); | - |
106 | return -1; | - |
107 | } | - |
108 | #endif | - |
109 | | - |
110 | void* OSAllocator::reserveUncommitted(size_t bytes, Usage usage, bool writable, bool executable) | - |
111 | { | - |
112 | #if OS(QNX) | - |
113 | | - |
114 | void* result = mmap(0, bytes, PROT_NONE, MAP_LAZY | MAP_PRIVATE | MAP_ANON, -1, 0); | - |
115 | if (result == MAP_FAILED) | - |
116 | CRASH(); | - |
117 | #elif OS(LINUX) | - |
118 | UNUSED_PARAM(writable); | - |
119 | UNUSED_PARAM(executable); | - |
120 | int fd = memfdForUsage(bytes, usage); | - |
121 | | - |
122 | void* result = mmap(0, bytes, PROT_NONE, MAP_NORESERVE | MAP_PRIVATE | | - |
123 | (fd == -1 ? MAP_ANON : 0), fd, 0); | - |
124 | if (result == MAP_FAILED)TRUE | never evaluated | FALSE | evaluated 99260 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
|
| 0-99260 |
125 | CRASH(); never executed: (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap()); | 0 |
126 | madvise(result, bytes, MADV_DONTNEED); | - |
127 | | - |
128 | if (fd != -1)TRUE | evaluated 99261 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| FALSE | never evaluated |
| 0-99261 |
129 | close(fd);executed 99258 times by 153 tests: close(fd); Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 99258 |
130 | #else | - |
131 | void* result = reserveAndCommit(bytes, usage, writable, executable); | - |
132 | #if HAVE(MADV_FREE_REUSE) | - |
133 | | - |
134 | while (madvise(result, bytes, MADV_FREE_REUSABLE) == -1 && errno == EAGAIN) { } | - |
135 | #endif | - |
136 | | - |
137 | #endif // OS(QNX) | - |
138 | | - |
139 | return result;executed 99270 times by 153 tests: return result; Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 99270 |
140 | } | - |
141 | | - |
142 | void* OSAllocator::reserveAndCommit(size_t bytes, Usage usage, bool writable, bool executable, bool includesGuardPages) | - |
143 | { | - |
144 | | - |
145 | int protection = PROT_READ; | - |
146 | if (writable)TRUE | evaluated 505035 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| FALSE | never evaluated |
| 0-505035 |
147 | protection |= PROT_WRITE;executed 505022 times by 153 tests: protection |= 0x2 ; Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 505022 |
148 | if (executable)TRUE | never evaluated | FALSE | evaluated 505037 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
|
| 0-505037 |
149 | protection |= PROT_EXEC; never executed: protection |= 0x4 ; | 0 |
150 | | - |
151 | int flags = MAP_PRIVATE | MAP_ANON; | - |
152 | #if PLATFORM(IOS) | - |
153 | if (executable) | - |
154 | flags |= MAP_JIT; | - |
155 | #endif | - |
156 | | - |
157 | #if OS(DARWIN) | - |
158 | int fd = usage; | - |
159 | #elif OS(LINUX) | - |
160 | int fd = memfdForUsage(bytes, usage); | - |
161 | if (fd != -1)TRUE | evaluated 506337 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| FALSE | never evaluated |
| 0-506337 |
162 | flags &= ~MAP_ANON;executed 506333 times by 153 tests: flags &= ~ 0x20 ; Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 506333 |
163 | #else | - |
164 | UNUSED_PARAM(usage); | - |
165 | int fd = -1; | - |
166 | #endif | - |
167 | | - |
168 | void* result = 0; | - |
169 | #if (OS(DARWIN) && CPU(X86_64)) | - |
170 | if (executable) { | - |
171 | ASSERT(includesGuardPages); | - |
172 | | - |
173 | | - |
174 | | - |
175 | | - |
176 | | - |
177 | | - |
178 | | - |
179 | | - |
180 | | - |
181 | intptr_t randomLocation = 0; | - |
182 | randomLocation = arc4random() & ((1 << 25) - 1); | - |
183 | randomLocation += (1 << 24); | - |
184 | randomLocation <<= 21; | - |
185 | result = reinterpret_cast<void*>(randomLocation); | - |
186 | } | - |
187 | #endif | - |
188 | | - |
189 | result = mmap(result, bytes, protection, flags, fd, 0); | - |
190 | if (result == MAP_FAILED) {TRUE | never evaluated | FALSE | evaluated 506350 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
|
| 0-506350 |
191 | #if ENABLE(LLINT) | - |
192 | if (executable) | - |
193 | result = 0; | - |
194 | else | - |
195 | #endif | - |
196 | CRASH(); | - |
197 | } never executed: end of block | 0 |
198 | if (result && includesGuardPages) {TRUE | evaluated 506339 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| FALSE | never evaluated |
TRUE | evaluated 198413 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| FALSE | evaluated 307964 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
|
| 0-506339 |
199 | | - |
200 | | - |
201 | | - |
202 | | - |
203 | mmap(result, pageSize(), PROT_NONE, MAP_FIXED | MAP_PRIVATE | MAP_ANON, fd, 0); | - |
204 | mmap(static_cast<char*>(result) + bytes - pageSize(), pageSize(), PROT_NONE, MAP_FIXED | MAP_PRIVATE | MAP_ANON, fd, 0); | - |
205 | }executed 198415 times by 153 tests: end of block Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 198415 |
206 | | - |
207 | #if OS(LINUX) | - |
208 | if (fd != -1)TRUE | evaluated 506371 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| FALSE | never evaluated |
| 0-506371 |
209 | close(fd);executed 506372 times by 153 tests: close(fd); Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 506372 |
210 | #endif | - |
211 | | - |
212 | return result;executed 506380 times by 153 tests: return result; Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 506380 |
213 | } | - |
214 | | - |
215 | void OSAllocator::commit(void* address, size_t bytes, bool writable, bool executable) | - |
216 | { | - |
217 | #if OS(QNX) | - |
218 | int protection = PROT_READ; | - |
219 | if (writable) | - |
220 | protection |= PROT_WRITE; | - |
221 | if (executable) | - |
222 | protection |= PROT_EXEC; | - |
223 | if (MAP_FAILED == mmap(address, bytes, protection, MAP_FIXED | MAP_PRIVATE | MAP_ANON, -1, 0)) | - |
224 | CRASH(); | - |
225 | #elif OS(LINUX) | - |
226 | int protection = PROT_READ; | - |
227 | if (writable)TRUE | evaluated 496051 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| FALSE | never evaluated |
| 0-496051 |
228 | protection |= PROT_WRITE;executed 496019 times by 153 tests: protection |= 0x2 ; Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 496019 |
229 | if (executable)TRUE | never evaluated | FALSE | evaluated 495879 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
|
| 0-495879 |
230 | protection |= PROT_EXEC; never executed: protection |= 0x4 ; | 0 |
231 | if (mprotect(address, bytes, protection))TRUE | never evaluated | FALSE | evaluated 499047 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
|
| 0-499047 |
232 | CRASH(); never executed: (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap()); | 0 |
233 | madvise(address, bytes, MADV_WILLNEED); | - |
234 | #elif HAVE(MADV_FREE_REUSE) | - |
235 | UNUSED_PARAM(writable); | - |
236 | UNUSED_PARAM(executable); | - |
237 | while (madvise(address, bytes, MADV_FREE_REUSE) == -1 && errno == EAGAIN) { } | - |
238 | #else | - |
239 | | - |
240 | UNUSED_PARAM(address); | - |
241 | UNUSED_PARAM(bytes); | - |
242 | UNUSED_PARAM(writable); | - |
243 | UNUSED_PARAM(executable); | - |
244 | #endif | - |
245 | }executed 499045 times by 153 tests: end of block Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 499045 |
246 | | - |
247 | void OSAllocator::decommit(void* address, size_t bytes) | - |
248 | { | - |
249 | #if OS(QNX) | - |
250 | | - |
251 | mmap(address, bytes, PROT_NONE, MAP_FIXED | MAP_LAZY | MAP_PRIVATE | MAP_ANON, -1, 0); | - |
252 | #elif OS(LINUX) | - |
253 | madvise(address, bytes, MADV_DONTNEED); | - |
254 | if (mprotect(address, bytes, PROT_NONE))TRUE | never evaluated | FALSE | evaluated 498967 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
|
| 0-498967 |
255 | CRASH(); never executed: (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap()); | 0 |
256 | #elif HAVE(MADV_FREE_REUSE) | - |
257 | while (madvise(address, bytes, MADV_FREE_REUSABLE) == -1 && errno == EAGAIN) { } | - |
258 | #elif HAVE(MADV_FREE) | - |
259 | while (madvise(address, bytes, MADV_FREE) == -1 && errno == EAGAIN) { } | - |
260 | #elif HAVE(MADV_DONTNEED) | - |
261 | while (madvise(address, bytes, MADV_DONTNEED) == -1 && errno == EAGAIN) { } | - |
262 | #else | - |
263 | UNUSED_PARAM(address); | - |
264 | UNUSED_PARAM(bytes); | - |
265 | #endif | - |
266 | }executed 498969 times by 153 tests: end of block Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 498969 |
267 | | - |
268 | void OSAllocator::releaseDecommitted(void* address, size_t bytes) | - |
269 | { | - |
270 | int result = munmap(address, bytes); | - |
271 | if (result == -1)TRUE | never evaluated | FALSE | evaluated 605059 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
|
| 0-605059 |
272 | CRASH(); never executed: (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap()); | 0 |
273 | }executed 605060 times by 153 tests: end of block Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 605060 |
274 | | - |
275 | bool OSAllocator::canAllocateExecutableMemory() | - |
276 | { | - |
277 | int flags = MAP_PRIVATE | MAP_ANON; | - |
278 | #if PLATFORM(IOS) | - |
279 | if (executable) | - |
280 | flags |= MAP_JIT; | - |
281 | #endif | - |
282 | const auto size = pageSize(); | - |
283 | void *testPage = mmap(nullptr, size, PROT_READ | PROT_WRITE | PROT_EXEC, flags, -1, 0); | - |
284 | if (testPage == MAP_FAILED)TRUE | never evaluated | FALSE | evaluated 99205 times by 153 testsEvaluated by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
|
| 0-99205 |
285 | return false; never executed: return false; | 0 |
286 | munmap(testPage, size); | - |
287 | return true;executed 99207 times by 153 tests: return true; Executed by:- tst_bindingdependencyapi
- tst_drawingmodes
- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_parserstress
- tst_qjsengine
- tst_qjsonbinding
- tst_qjsvalue
- tst_qjsvalueiterator
- tst_qmlcachegen
- tst_qmldiskcache
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmldebugclient
- tst_qqmldebugjs
- tst_qqmldebuglocal
- tst_qqmldebugservice
- tst_qqmlecmascript
- tst_qqmlenginecleanup
- ...
| 99207 |
288 | } | - |
289 | | - |
290 | } | - |
291 | | - |
292 | #endif // OS(UNIX) | - |
| | |