System.TMemoryManagerEx

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

  TMemoryManagerEx = record
    {The basic (required) memory manager functionality}
    GetMem: function(Size: NativeInt): Pointer;
    FreeMem: function(P: Pointer): Integer;
    ReallocMem: function(P: Pointer; Size: NativeInt): Pointer;
    {Extended (optional) functionality.}
    AllocMem: function(Size: NativeInt): Pointer;
    RegisterExpectedMemoryLeak: function(P: Pointer): Boolean;
    UnregisterExpectedMemoryLeak: function(P: Pointer): Boolean;
  end;

C++

struct DECLSPEC_DRECORD TMemoryManagerEx
{
public:
    void * __fastcall (*GetMem)(NativeInt Size);
    int __fastcall (*FreeMem)(void * P);
    void * __fastcall (*ReallocMem)(void * P, NativeInt Size);
    void * __fastcall (*AllocMem)(NativeInt Size);
    bool __fastcall (*RegisterExpectedMemoryLeak)(void * P);
    bool __fastcall (*UnregisterExpectedMemoryLeak)(void * P);
};

Propriétés

Type Visibilité  Source Unité  Parent
record
struct
public
System.pas
System.hpp
System System

Description

TMemoryManagerEx définit les points d'entrée des blocs de mémoire étendue.

Le type TMemoryManagerEx est utilisée par les procédures GetMemoryManager et SetMemoryManager. Il définit les routines allouant et libérant la mémoire.

Le tableau suivant liste les champs de ce type et leur signification.



Champ Signification

GetMem

Spécifie une fonction allouant le nombre donné d'octets et renvoie un pointeur sur le bloc nouvellement alloué, comme invoqué par la routine GetMemory. Le paramètre Size transmis à la fonction GetMem ne sera jamais zéro. Si la fonction GetMem ne peut pas allouer un bloc de la taille donnée, elle doit renvoyer nil (Delphi) ou NULL (C++).

FreeMem

Spécifie une fonction qui désalloue le bloc spécifié. Le paramètre pointeur transmis à la fonction FreeMem ne sera jamais nil (Delphi) ou NULL (C++). Si la fonction FreeMem désalloue avec succès le bloc spécifié, elle doit renvoyer zéro. Sinon, elle doit renvoyer une valeur différente de zéro.

ReallocMem

Spécifie une fonction qui réalloue le bloc spécifié pour sa nouvelle taille. Le paramètre pointeur transmis à la fonction ReallocMem ne sera jamais nil (Delphi) ou NULL (C++), et la valeur du paramètre Size ne sera jamais zéro. La fonction ReallocMem doit réallouer le bloc spécifié pour sa nouvelle taille, en déplaçant éventuellement le bloc s'il ne peut pas être redimensionné sur place. Tout contenu existant du bloc doit être préservé, mais un espace nouvellement alloué peut être désinitialisé. La fonction ReallocMem doit renvoyer un pointeur sur le bloc réalloué, nil (Delphi) ou NULL (C++) si le bloc ne peut pas être réalloué.

AllocMem

Spécifie une fonction allouant le nombre donné d'octets et renvoie un pointeur sur le bloc nouvellement alloué, comme invoqué par la routine AllocMem.

RegisterExpectedMemoryLeak

Spécifie une fonction qui enregistre un emplacement mémoire qu'une application a alloué et ne prévoit pas de libérer, comme invoqué par la routine RegisterExpectedMemoryLeak.

UnregisterExpectedMemoryLeak

Spécifie une fonction qui retire un emplacement de mémoire de la liste des pertes de mémoire prévues du gestionnaire de mémoire, comme invoqué par la routine UnregisterExpectedMemoryLeak.



Voir aussi