|
2 | 2 | #ifndef MEMORY_H
|
3 | 3 | #define MEMORY_H
|
4 | 4 |
|
5 |
| -inline void *operator new(size_t size, void *mem) { |
6 |
| - return mem; |
| 5 | +#if 0 |
| 6 | +inline void operator delete(void *mem, rust_task *task) { |
| 7 | + task->free(mem); |
| 8 | + return; |
7 | 9 | }
|
| 10 | +#endif |
8 | 11 |
|
9 |
| -inline void *operator new(size_t size, rust_kernel *kernel) { |
10 |
| - return kernel->malloc(size); |
| 12 | +// FIXME: It would be really nice to be able to get rid of this. |
| 13 | +inline void *operator new[](size_t size, rust_task *task) { |
| 14 | + return task->malloc(size); |
11 | 15 | }
|
12 | 16 |
|
13 |
| -inline void *operator new(size_t size, rust_task *task) { |
| 17 | +template <typename T> |
| 18 | +inline void *task_owned<T>::operator new(size_t size, rust_task *task) { |
14 | 19 | return task->malloc(size);
|
15 | 20 | }
|
16 | 21 |
|
17 |
| -inline void *operator new[](size_t size, rust_task *task) { |
| 22 | +template <typename T> |
| 23 | +inline void *task_owned<T>::operator new[](size_t size, rust_task *task) { |
18 | 24 | return task->malloc(size);
|
19 | 25 | }
|
20 | 26 |
|
21 |
| -inline void *operator new(size_t size, rust_task &task) { |
| 27 | +template <typename T> |
| 28 | +inline void *task_owned<T>::operator new(size_t size, rust_task &task) { |
22 | 29 | return task.malloc(size);
|
23 | 30 | }
|
24 | 31 |
|
25 |
| -inline void *operator new[](size_t size, rust_task &task) { |
| 32 | +template <typename T> |
| 33 | +inline void *task_owned<T>::operator new[](size_t size, rust_task &task) { |
26 | 34 | return task.malloc(size);
|
27 | 35 | }
|
28 | 36 |
|
29 |
| -inline void operator delete(void *mem, rust_task *task) { |
30 |
| - task->free(mem); |
31 |
| - return; |
| 37 | +template <typename T> |
| 38 | +inline void *kernel_owned<T>::operator new(size_t size, rust_kernel *kernel) { |
| 39 | + return kernel->malloc(size); |
32 | 40 | }
|
33 | 41 |
|
| 42 | + |
34 | 43 | #endif /* MEMORY_H */
|
0 commit comments