|
@@ -16,8 +16,6 @@
|
|
**********************************************************************}
|
|
**********************************************************************}
|
|
unit cmem;
|
|
unit cmem;
|
|
|
|
|
|
-{$mode objfpc}
|
|
|
|
-
|
|
|
|
interface
|
|
interface
|
|
|
|
|
|
Const
|
|
Const
|
|
@@ -44,24 +42,24 @@ type
|
|
Function CGetMem (Size : ptrint) : Pointer;
|
|
Function CGetMem (Size : ptrint) : Pointer;
|
|
|
|
|
|
begin
|
|
begin
|
|
- result:=Malloc(Size+sizeof(ptrint));
|
|
|
|
- if (result <> nil) then
|
|
|
|
|
|
+ CGetMem:=Malloc(Size+sizeof(ptrint));
|
|
|
|
+ if (CGetMem <> nil) then
|
|
begin
|
|
begin
|
|
- pptrint(result)^ := size;
|
|
|
|
- inc(result,sizeof(ptrint));
|
|
|
|
|
|
+ pptrint(CGetMem)^ := size;
|
|
|
|
+ inc(CGetMem,sizeof(ptrint));
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
-Function CFreeMem ({$ifdef VER1_0}var{$endif} P : pointer) : ptrint;
|
|
|
|
|
|
+Function CFreeMem (P : pointer) : ptrint;
|
|
|
|
|
|
begin
|
|
begin
|
|
if (p <> nil) then
|
|
if (p <> nil) then
|
|
dec(p,sizeof(ptrint));
|
|
dec(p,sizeof(ptrint));
|
|
Free(P);
|
|
Free(P);
|
|
- Result:=0;
|
|
|
|
|
|
+ CFreeMem:=0;
|
|
end;
|
|
end;
|
|
|
|
|
|
-Function CFreeMemSize({$ifdef VER1_0}var{$endif} p:pointer;Size:ptrint):ptrint;
|
|
|
|
|
|
+Function CFreeMemSize(p:pointer;Size:ptrint):ptrint;
|
|
|
|
|
|
begin
|
|
begin
|
|
if (p <> nil) then
|
|
if (p <> nil) then
|
|
@@ -69,17 +67,17 @@ begin
|
|
if (size <> pptrint(p-sizeof(ptrint))^) then
|
|
if (size <> pptrint(p-sizeof(ptrint))^) then
|
|
runerror(204);
|
|
runerror(204);
|
|
end;
|
|
end;
|
|
- Result:=CFreeMem(P);
|
|
|
|
|
|
+ CFreeMemSize:=CFreeMem(P);
|
|
end;
|
|
end;
|
|
|
|
|
|
Function CAllocMem(Size : ptrint) : Pointer;
|
|
Function CAllocMem(Size : ptrint) : Pointer;
|
|
|
|
|
|
begin
|
|
begin
|
|
- Result:=calloc(Size+sizeof(ptrint),1);
|
|
|
|
- if (result <> nil) then
|
|
|
|
|
|
+ CAllocMem:=calloc(Size+sizeof(ptrint),1);
|
|
|
|
+ if (CAllocMem <> nil) then
|
|
begin
|
|
begin
|
|
- pptrint(result)^ := size;
|
|
|
|
- inc(result,sizeof(ptrint));
|
|
|
|
|
|
+ pptrint(CAllocMem)^ := size;
|
|
|
|
+ inc(CAllocMem,sizeof(ptrint));
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -92,7 +90,7 @@ begin
|
|
begin
|
|
begin
|
|
free(p);
|
|
free(p);
|
|
p:=nil;
|
|
p:=nil;
|
|
- end;
|
|
|
|
|
|
+ end;
|
|
end
|
|
end
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
@@ -103,56 +101,54 @@ begin
|
|
begin
|
|
begin
|
|
dec(p,sizeof(ptrint));
|
|
dec(p,sizeof(ptrint));
|
|
p:=realloc(p,size);
|
|
p:=realloc(p,size);
|
|
- end;
|
|
|
|
|
|
+ end;
|
|
if (p <> nil) then
|
|
if (p <> nil) then
|
|
begin
|
|
begin
|
|
pptrint(p)^ := size-sizeof(ptrint);
|
|
pptrint(p)^ := size-sizeof(ptrint);
|
|
inc(p,sizeof(ptrint));
|
|
inc(p,sizeof(ptrint));
|
|
end;
|
|
end;
|
|
- end;
|
|
|
|
- Result:=p;
|
|
|
|
|
|
+ end;
|
|
|
|
+ CReAllocMem:=p;
|
|
end;
|
|
end;
|
|
|
|
|
|
Function CMemSize (p:pointer): ptrint;
|
|
Function CMemSize (p:pointer): ptrint;
|
|
|
|
|
|
begin
|
|
begin
|
|
- Result:=pptrint(p-sizeof(ptrint))^;
|
|
|
|
|
|
+ CMemSize:=pptrint(p-sizeof(ptrint))^;
|
|
end;
|
|
end;
|
|
|
|
|
|
Function CMemAvail : ptrint;
|
|
Function CMemAvail : ptrint;
|
|
|
|
|
|
begin
|
|
begin
|
|
- Result:=0;
|
|
|
|
|
|
+ CMemAvail:=0;
|
|
end;
|
|
end;
|
|
|
|
|
|
Function CMaxAvail: ptrint;
|
|
Function CMaxAvail: ptrint;
|
|
|
|
|
|
begin
|
|
begin
|
|
- Result:=0;
|
|
|
|
|
|
+ CMaxAvail:=0;
|
|
end;
|
|
end;
|
|
|
|
|
|
Function CHeapSize : ptrint;
|
|
Function CHeapSize : ptrint;
|
|
|
|
|
|
begin
|
|
begin
|
|
- Result:=0;
|
|
|
|
|
|
+ CHeapSize:=0;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
Const
|
|
Const
|
|
CMemoryManager : TMemoryManager =
|
|
CMemoryManager : TMemoryManager =
|
|
(
|
|
(
|
|
-{$ifndef VER1_0}
|
|
|
|
NeedLock : false;
|
|
NeedLock : false;
|
|
-{$endif VER1_0}
|
|
|
|
- GetMem : {$ifdef fpc}@{$endif}CGetmem;
|
|
|
|
- FreeMem : {$ifdef fpc}@{$endif}CFreeMem;
|
|
|
|
- FreememSize : {$ifdef fpc}@{$endif}CFreememSize;
|
|
|
|
- AllocMem : {$ifdef fpc}@{$endif}CAllocMem;
|
|
|
|
- ReallocMem : {$ifdef fpc}@{$endif}CReAllocMem;
|
|
|
|
- MemSize : {$ifdef fpc}@{$endif}CMemSize;
|
|
|
|
- MemAvail : {$ifdef fpc}@{$endif fpc}CMemAvail;
|
|
|
|
- MaxAvail : {$ifdef fpc}@{$endif}MaxAvail;
|
|
|
|
- HeapSize : {$ifdef fpc}@{$endif}CHeapSize;
|
|
|
|
|
|
+ GetMem : @CGetmem;
|
|
|
|
+ FreeMem : @CFreeMem;
|
|
|
|
+ FreememSize : @CFreememSize;
|
|
|
|
+ AllocMem : @CAllocMem;
|
|
|
|
+ ReallocMem : @CReAllocMem;
|
|
|
|
+ MemSize : @CMemSize;
|
|
|
|
+ MemAvail : @CMemAvail;
|
|
|
|
+ MaxAvail : @MaxAvail;
|
|
|
|
+ HeapSize : @CHeapSize;
|
|
);
|
|
);
|
|
|
|
|
|
Var
|
|
Var
|
|
@@ -168,7 +164,10 @@ end.
|
|
|
|
|
|
{
|
|
{
|
|
$Log$
|
|
$Log$
|
|
- Revision 1.1 2004-03-15 21:48:26 peter
|
|
|
|
|
|
+ Revision 1.2 2004-03-16 15:25:16 peter
|
|
|
|
+ * adaption to compile with 1.0.x in new rtl
|
|
|
|
+
|
|
|
|
+ Revision 1.1 2004/03/15 21:48:26 peter
|
|
* cmem moved to rtl
|
|
* cmem moved to rtl
|
|
* longint replaced with ptrint in heapmanagers
|
|
* longint replaced with ptrint in heapmanagers
|
|
|
|
|