diff --git a/rtl/win16/glbheap.inc b/rtl/win16/glbheap.inc index 3b85180861..29dddcc9af 100644 --- a/rtl/win16/glbheap.inc +++ b/rtl/win16/glbheap.inc @@ -215,20 +215,19 @@ circular linked list. begin PrevSubBlock:=nil; CurSubBlock:=Ptr(CurBlock,CurBlockP^.FirstFreeOfs); - while Ofs(CurSubBlock^)0) and (Ofs(CurSubBlock^)0) and ((Ofs(PrevSubBlock^)+PrevSubBlock^.Size)=Ofs(CurSubBlock^)) then begin Inc(PrevSubBlock^.Size,CurSubBlock^.Size); PrevSubBlock^.Next:=CurSubBlock^.Next; @@ -237,7 +236,7 @@ circular linked list. else begin PrevSubBlock^.Next:=Ofs(Addr^); - if (Ofs(Addr^)+ASize)=Ofs(CurSubBlock^) then + if (Ofs(CurSubBlock^)<>0) and ((Ofs(Addr^)+ASize)=Ofs(CurSubBlock^)) then with PFreeSubBlock(Addr)^ do begin Next:=CurSubBlock^.Next;