OSDN Git Service

(none)
[hos/hos-v4a.git] / aplfw / library / container / automemheap / automemheap_destructor.c
1 /** 
2  *  Hyper Operating System  Application Framework
3  *
4  * @file  automemheap_free.c
5  * @brief %jp{固定サイズメモリヒープクラス}%en{fixed size memory heap class}
6  *
7  * Copyright (C) 2006-2008 by Project HOS
8  * http://sourceforge.jp/projects/hos/
9  */
10
11
12 #include <stdio.h>
13 #include "automemheap_local.h"
14
15
16 /** デストラクタ */
17 void AutoMemHeap_Destructor(C_AUTOMEMHEAP *self)                                                        
18 {
19         T_AUTOMEMHEAP_FIX       *pFixHeap;
20         T_AUTOMEMHEAP_FIX       *pFixHeapNext;
21         T_AUTOMEMHEAP_VAL       *pValHeap;
22         T_AUTOMEMHEAP_VAL       *pValHeapNext;
23         T_AUTOMEMHEAP_MEM       *pMemHeap;
24         T_AUTOMEMHEAP_MEM       *pMemHeapNext;
25         
26         
27         /* 固定長メモリヒープ開放 */
28         for ( pFixHeap = self->pFixList; pFixHeap != NULL; pFixHeap = pFixHeapNext )
29         {
30                 pFixHeapNext = pFixHeap->pNext;
31                 MemHeap_Free(self->pMemHeap, pFixHeap);
32         }
33         
34         /* 可変長メモリヒープに無いか探索 */
35         for ( pValHeap = self->pValList; pValHeap != NULL; pValHeap = pValHeapNext )
36         {
37                 pValHeapNext = pValHeap->pNext;
38                 MemHeap_Free(self->pMemHeap, pValHeap);
39         }
40         
41         /* 基底ヒープに開放 */
42         for ( pMemHeap = self->pMemList; pMemHeap != NULL; pMemHeap = pMemHeapNext )
43         {
44                 pMemHeapNext = pMemHeap->pNext;
45                 MemHeap_Free(self->pMemHeap, pMemHeap);
46         }
47 }
48
49
50 /* end of file */