From 801039b1d70b07425f5a6c8e48460392683b6067 Mon Sep 17 00:00:00 2001 From: Pavel <68122101+red-prig@users.noreply.github.com> Date: Fri, 12 Jan 2024 16:22:53 +0300 Subject: [PATCH] + --- sys/vm/vm_file.pas | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/sys/vm/vm_file.pas b/sys/vm/vm_file.pas index 947af885..f7433db6 100644 --- a/sys/vm/vm_file.pas +++ b/sys/vm/vm_file.pas @@ -458,7 +458,11 @@ begin end; size:=size-offset; - obj^.protect(m_start,m___end,obj^.base+offset,size,prot); + obj^.protect(m_start, + m___end, + obj^.base+offset, + size, + prot); end; current:=current^.next; @@ -474,7 +478,9 @@ var entry :p_vm_file_entry; first_entry:p_vm_file_entry; next :p_vm_file_entry; - obj:p_vm_file_obj; + obj :p_vm_file_obj; + offset :QWORD; + size :QWORD; begin if (start=__end) then begin @@ -500,10 +506,19 @@ begin if (obj^.remove<>nil) then begin + offset:=entry^.offset; + + size:=(entry^.__end-entry^.start)+offset; + if (size>obj^.size) then + begin + size:=obj^.size; + end; + size:=size-offset; + obj^.remove(entry^.start, entry^.__end, - obj^.base+entry^.offset, - obj^.size-entry^.offset + obj^.base+offset, + size ); end;