Commit ffe4765
committed
Add exception handling for new operator
The new operator in the snmalloc did not throw exceptions in the case of
allocation failure. Moreover, it was not possible to override the
behaviour of the failure of the new operator using the
std::set_new_handler function.
This commit adds the necessary code to the snmalloc new operator to
throw std::bad_alloc when the allocation fails. It also allows the
std::set_new_handler function to be used to set a custom handler for
allocation failures.1 parent d4c7e01 commit ffe4765
File tree
3 files changed
+102
-18
lines changed- src
- snmalloc/override
- test/func/miracle_ptr
3 files changed
+102
-18
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
379 | 379 | | |
380 | 380 | | |
381 | 381 | | |
382 | | - | |
| 382 | + | |
383 | 383 | | |
384 | 384 | | |
385 | 385 | | |
| |||
540 | 540 | | |
541 | 541 | | |
542 | 542 | | |
543 | | - | |
544 | | - | |
545 | | - | |
546 | | - | |
547 | | - | |
548 | | - | |
549 | | - | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
550 | 550 | | |
551 | 551 | | |
552 | 552 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
23 | 89 | | |
24 | 90 | | |
25 | | - | |
| 91 | + | |
26 | 92 | | |
27 | 93 | | |
28 | 94 | | |
29 | 95 | | |
30 | | - | |
| 96 | + | |
31 | 97 | | |
32 | 98 | | |
33 | 99 | | |
34 | 100 | | |
35 | | - | |
| 101 | + | |
36 | 102 | | |
37 | 103 | | |
38 | 104 | | |
39 | 105 | | |
40 | | - | |
| 106 | + | |
41 | 107 | | |
42 | 108 | | |
43 | 109 | | |
| |||
73 | 139 | | |
74 | 140 | | |
75 | 141 | | |
76 | | - | |
| 142 | + | |
77 | 143 | | |
78 | 144 | | |
79 | 145 | | |
80 | 146 | | |
81 | 147 | | |
82 | | - | |
| 148 | + | |
83 | 149 | | |
84 | 150 | | |
85 | 151 | | |
86 | 152 | | |
87 | 153 | | |
88 | | - | |
| 154 | + | |
89 | 155 | | |
90 | 156 | | |
91 | 157 | | |
92 | 158 | | |
93 | 159 | | |
94 | | - | |
| 160 | + | |
95 | 161 | | |
96 | 162 | | |
97 | 163 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
24 | 42 | | |
25 | 43 | | |
26 | 44 | | |
| |||
170 | 188 | | |
171 | 189 | | |
172 | 190 | | |
173 | | - | |
| 191 | + | |
174 | 192 | | |
175 | 193 | | |
176 | 194 | | |
177 | 195 | | |
178 | | - | |
| 196 | + | |
179 | 197 | | |
180 | 198 | | |
181 | 199 | | |
| |||
0 commit comments