mirror of
https://github.com/usatiuk/ficus.git
synced 2025-10-29 08:37:51 +01:00
One less leak in tasks (VMA)
This commit is contained in:
@@ -96,10 +96,13 @@ Task::Task(Task::TaskMode mode, void (*entrypoint)(), const char *name) {
|
||||
|
||||
for (int i = 0; i < 512; i++) _fxsave->_fxsave[i] = 0;
|
||||
|
||||
_frame.flags = flags();
|
||||
_frame.guard = IDT_GUARD;
|
||||
_addressSpace = mode == TaskMode::TASKMODE_KERN ? KERN_AddressSpace : new AddressSpace();
|
||||
_vma = new VMA(_addressSpace);
|
||||
_frame.flags = flags();
|
||||
_frame.guard = IDT_GUARD;
|
||||
if (mode == TaskMode::TASKMODE_USER) {
|
||||
_ownAddressSpace = UniquePtr(new AddressSpace());
|
||||
_vma = UniquePtr<VMA>(new VMA(_ownAddressSpace.get()));
|
||||
}
|
||||
_addressSpace = mode == TaskMode::TASKMODE_KERN ? KERN_AddressSpace : _ownAddressSpace.get();
|
||||
_state = TaskState::TS_BLOCKED;
|
||||
_mode = mode;
|
||||
_pid = max_pid.fetch_add(1);
|
||||
|
||||
Reference in New Issue
Block a user