IPB

> Переменные Heap (модуль System)
Чат
Форум
Загрузка...
 

Язык:
Русский
English

 Переменные Heap     (модуль System)


 HeapBlock, HeapError, HeapLimit, и HeapList, HeapAllocFlags, HeapEnd,

HeapOrg, HeapPtr

Диспетчер кучи использует переменные HeapList, HeapLimit, HeapBlock и HeapError при работе подпрограмм динамического распределения памяти.

Переменная HeapLimit определяет порог между "меньшим (small)" и "большим (large)" блоками кучи. Переменная HeapBlock определяет размер, который диспетчер кучи использует при распределении блоков, назначенных к подпрограмме распределения.

Вам нет причин изменять значения переменных HeapLimit и HeapBlock, но если вы все-таки хотите это сделать, удостоверьтесь, что HeapBlock по крайней мере в 4 раза превышает размер HeapLimit.

Переменная HeapError содержит адрес функции ошибки кучи, которая вызывается всякий раз, когда диспетчер кучи не может выполнить запрос распределения.

HeapError - это указатель, который указывает на функцию с таким заголовком:

    Function HeapFunc (Size : Word) : Integer;
    Far;

Функция ошибки кучи устанавливается назначением ее адреса переменной HeapError следующим образом:

    HeapError := @HeapFunc;

Функция ошибки кучи вызывается всякий раз, когда при обращении к New или GetMem запрос распределения памяти не может быть завершен.

Параметр Size содержит размер блока, который не может быть распределен, и функция ошибки кучи пытается освободить блок по крайней мере этого размера.

Перед вызовом функции ошибки кучи, диспетчер кучи пытается распределить блок внутри его свободного пространства подраспределения также как через прямое обращение к функции Windows GlobalAlloc.

Функция HeapError возвращает

 ■ 0 для указания ошибки, и вызывает ошибку времени выполнения.
 ■ 1 для указания ошибки, и засталяет New или GetMem возвратить NIL.
 ■ 2 для указания успеха, и вызывает повторение (которое может также
   вызвать другое обращение к функции ошибки кучи).

HeapAllocFlags используется с gmem_Moveable.

HeapEnd, HeapOrg и HeapPtr - указатели на конец, начало и текущий указатель кучи, соответственно.

Переменные кучи для Windows

  HeapList
  HeapLimit
  HeapBlock
  HeapAllocFlags
  HeapError

Переменные кучи для реального режима DOS

  HeapEnd
  HeapOrg
  HeapPtr
  HeapError

Переменные кучи для защищенного режима DOS

  HeapList
  HeapLimit
  HeapBlock
  HeapAllocFlags

 
 К началу страницы 
 

Код для вставки: :: :: :: ГОСТ ::
Поделиться: //
 



-
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"