この章では、メモリ管理を行う際に利用することになるグローバル関数やマクロについて解説しています。NSPR はおなじみの malloc(), calloc(), realloc() や free() にマップされているヒープベースのメモリ管理関数を提供しています。
NSPR は自身にヒープ領域を確保しており、これらの関数はそのヒープ領域に対して動作します。ライブラリは Netscape security libraries などといった NSPR の最初に作成され、これらの関数をメモリの確保や開放に利用しています。これらのライブラリで利用するためにメモリを確保する場合や、これらのライブラリで確保されたメモリを開放する場合は、libc の同等の関数ではなく、必ず NSPR の関数を利用する必要があります。
メモリ割り当て関数は次のものになります :
PR_Malloc(), PR_Calloc(), PR_Realloc() や PR_Free() は、その libc の同等の関数である malloc(), calloc(), realloc() や free() と同じ定数を利用し、同等の動作を行います。(ただし、引数の型の size_t は PRUint32 に変換されています。) PR_Malloc(), PR_Calloc() や PR_Realloc() で確保されたメモリ領域は、必ず PR_Free() で開放される必要があります。
Page last modified 06:21, 2007年1月24日 by Shimono