Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.sao.ru/cats/~satr/JS/plugin/mem.htm
Дата изменения: Wed Jan 15 23:17:18 1997 Дата индексирования: Tue Oct 2 05:25:44 2012 Кодировка: Поисковые слова: agn |
This chapter describes the Plug-in API functions that allocate and free memory as needed by the plug-in.
NPN_MemAlloc
allocates memory from Communicator's memory space. Use this function to allocate memory dynamically.
NPN_MemFree
requests that Communicator free a specified block of memory. Use this function to free memory allocated with NPN_MemAlloc
.
NPN_MemFlush
requests Communicator to free up a specified amount of memory if not enough is currently available for the plug-in's requirements.
[Top]
NPN_MemAlloc
NPN_MemFree
NPN_MemAlloc
.
NPN_MemAlloc
function instead of the standard malloc
function to allocate dynamic memory. Using NPN_MemAlloc
offers several advantages to the plug-in.
NPN_MemAlloc
automatically frees
cached information if necessary to fulfill a request for memory, calls to
NPN_MemAlloc
may succeed where direct calls to NewPtr
fail. §
The
NPN_MemAlloc
method has the following syntax:
void *NPN_MemAlloc (uint32 size);
The size
parameter is an unsigned long integer that represents the amount of memory, in bytes, to allocate in Communicator's memory space. This function returns a pointer to the allocated memory or null
if not enough memory is available.
The NPN_MemFree
method deallocates a block of memory that was allocated using NPN_MemAlloc
only. NPN_MemFree
does not free memory allocated by other means.
void NPN_MemFree (void *ptr);
The ptr
parameter represents a block of memory previously allocated using NPN_MemAlloc
.
[Top] [Allocating and Freeing Memory]
NPN_MemFlush
method frees a specified amount of memory. Normally, plug-ins should use NPN_MemAlloc
, which automatically frees nonessential memory if necessary to fulfill the request. For Communicator 4.0 and later versions, this function is not necessary for the Mac OS platform; NPN_MemAlloc
now performs memory flushing internally. You need to use NPN_MemFlush
only when it is not possible to call NPN_MemAlloc
, for example, when calling system methods that allocate memory indirectly. If NPN_MemAlloc
is called, calls to NPN_MemFlush
have no effect.
For example, suppose that the plug-in calls NewGWorld
, and that the call fails because of insufficient memory. The plug-in should try calling NPN_MemFlush
to free enough memory. If NPN_MemFlush
returns a value indicating that enough memory was freed, the plug-in can call NewGWorld
again. Calling NPN_MemFlush
is particularly important to systems with small amounts of RAM and with virtual memory turned off.
To request that Communicator free as much memory as possible, call NPN_MemFlush
repeatedly until it returns 0.
uint32(uint32 size); TheNPN_MemFlush
size
parameter is an unsigned long integer that represents the amount of memory, in bytes, to free in Communicator's memory space. This function returns the amount of freed memory, in bytes, or 0 if no memory could be freed.
[Top] [Flushing Memory (Mac OS only)]
Last Updated: 01/15/97 16:36:57