Back to index

lightning-sunbird  0.9+nobinonly
Public Member Functions
nsIMemory Interface Reference

nsIMemory: interface to allocate and deallocate memory. More...

import "nsIMemory.idl";

Inheritance diagram for nsIMemory:
Inheritance graph
[legend]
Collaboration diagram for nsIMemory:
Collaboration graph
[legend]

List of all members.

Public Member Functions

voidPtr alloc (in size_t size)
 Allocates a block of memory of a particular size.
voidPtr realloc (in voidPtr ptr, in size_t newSize)
 Reallocates a block of memory to a new size.
void free (in voidPtr ptr)
 Frees a block of memory.
void heapMinimize (in boolean immediate)
 Attempts to shrink the heap.
boolean isLowMemory ()
 This predicate can be used to determine if we're in a low-memory situation (what constitutes low-memory is platform dependent).

Detailed Description

nsIMemory: interface to allocate and deallocate memory.

Also provides for notifications in low-memory situations.

The frozen exported symbols NS_Alloc, NS_Realloc, and NS_Free provide a more efficient way to access XPCOM memory allocation. Using those symbols is preferred to using the methods on this interface.

A client that wishes to be notified of low memory situations (for example, because the client maintains a large memory cache that could be released when memory is tight) should register with the observer service (see nsIObserverService) using the topic "memory-pressure". There are three specific types of notications that can occur. These types will be passed as the |aData| parameter of the of the "memory-pressure" notification:

"low-memory" This will be passed as the extra data when the pressure observer is being asked to flush for low-memory conditions.

"heap-minimize" This will be passed as the extra data when the pressure observer is being asked to flush because of a heap minimize call.

"alloc-failure" This will be passed as the extra data when the pressure observer has been asked to flush because a malloc() or realloc() has failed.

FROZEN

Definition at line 75 of file nsIMemory.idl.


Member Function Documentation

voidPtr nsIMemory::alloc ( in size_t  size)

Allocates a block of memory of a particular size.

If the memory cannot be allocated (because of an out-of-memory condition), null is returned.

Parameters:
size- the size of the block to allocate
Returns:
the block of memory
void nsIMemory::free ( in voidPtr  ptr)

Frees a block of memory.

Null is a permissible value, in which case nothing happens.

Parameters:
ptr- the block of memory to free

Attempts to shrink the heap.

Parameters:
immediate- if true, heap minimization will occur immediately if the call was made on the main thread. If false, the flush will be scheduled to happen when the app is idle.
Returns:
NS_ERROR_FAILURE if 'immediate' is set an the call was not on the application's main thread.

This predicate can be used to determine if we're in a low-memory situation (what constitutes low-memory is platform dependent).

This can be used to trigger the memory pressure observers.

voidPtr nsIMemory::realloc ( in voidPtr  ptr,
in size_t  newSize 
)

Reallocates a block of memory to a new size.

Parameters:
ptr- the block of memory to reallocate
size- the new size
Returns:
the reallocated block of memory

If ptr is null, this function behaves like malloc. If s is the size of the block to which ptr points, the first min(s, size) bytes of ptr's block are copied to the new block. If the allocation succeeds, ptr is freed and a pointer to the new block returned. If the allocation fails, ptr is not freed and null is returned. The returned value may be the same as ptr.


The documentation for this interface was generated from the following file: